diff --git a/abi/0.26.0/BytesLib.json b/abi/0.26.0/BytesLib.json new file mode 100644 index 00000000..82b42f69 --- /dev/null +++ b/abi/0.26.0/BytesLib.json @@ -0,0 +1,4 @@ +{ + "contractName": "BytesLib", + "abi": [] +} \ No newline at end of file diff --git a/abi/0.26.0/DetailedERC20.json b/abi/0.26.0/DetailedERC20.json new file mode 100644 index 00000000..d3614c74 --- /dev/null +++ b/abi/0.26.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.26.0/ERC20.json b/abi/0.26.0/ERC20.json new file mode 100644 index 00000000..ff46b7ae --- /dev/null +++ b/abi/0.26.0/ERC20.json @@ -0,0 +1,178 @@ +{ + "contractName": "ERC20", + "abi": [ + { + "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" + }, + { + "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" + }, + { + "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": "_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": "_value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.26.0/ERC20Basic.json b/abi/0.26.0/ERC20Basic.json new file mode 100644 index 00000000..629d88c8 --- /dev/null +++ b/abi/0.26.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.26.0/FundAccount.json b/abi/0.26.0/FundAccount.json new file mode 100644 index 00000000..0d3ddb9d --- /dev/null +++ b/abi/0.26.0/FundAccount.json @@ -0,0 +1,24 @@ +{ + "contractName": "FundAccount", + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "_account", + "type": "FundAccount.Account storage" + } + ], + "name": "symbolsList", + "outputs": [ + { + "name": "", + "type": "bytes32[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.26.0/IPricerRole.json b/abi/0.26.0/IPricerRole.json new file mode 100644 index 00000000..df579945 --- /dev/null +++ b/abi/0.26.0/IPricerRole.json @@ -0,0 +1,52 @@ +{ + "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" + } + ] +} \ No newline at end of file diff --git a/abi/0.26.0/IRates.json b/abi/0.26.0/IRates.json new file mode 100644 index 00000000..5161ef80 --- /dev/null +++ b/abi/0.26.0/IRates.json @@ -0,0 +1,280 @@ +{ + "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": true, + "inputs": [], + "name": "owner", + "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" + }, + { + "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" + }, + { + "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.26.0/ISymbols.json b/abi/0.26.0/ISymbols.json new file mode 100644 index 00000000..cb25b867 --- /dev/null +++ b/abi/0.26.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.26.0/ITokenExchange.json b/abi/0.26.0/ITokenExchange.json new file mode 100644 index 00000000..ddf1a84f --- /dev/null +++ b/abi/0.26.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.26.0/ITokenExchanger.json b/abi/0.26.0/ITokenExchanger.json new file mode 100644 index 00000000..a78a9b4d --- /dev/null +++ b/abi/0.26.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": "wTokenAddress", + "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": "tokenAddress", + "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.26.0/ITokenLedger.json b/abi/0.26.0/ITokenLedger.json new file mode 100644 index 00000000..07dde53a --- /dev/null +++ b/abi/0.26.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": "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.26.0/IW12AtomicSwap.json b/abi/0.26.0/IW12AtomicSwap.json new file mode 100644 index 00000000..606bae0d --- /dev/null +++ b/abi/0.26.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.26.0/IW12Crowdsale.json b/abi/0.26.0/IW12Crowdsale.json new file mode 100644 index 00000000..b98dcd54 --- /dev/null +++ b/abi/0.26.0/IW12Crowdsale.json @@ -0,0 +1,292 @@ +{ + "contractName": "IW12Crowdsale", + "abi": [ + { + "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": "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": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.26.0/IW12CrowdsaleFactory.json b/abi/0.26.0/IW12CrowdsaleFactory.json new file mode 100644 index 00000000..d4b93701 --- /dev/null +++ b/abi/0.26.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": "owner", + "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.26.0/IW12Fund.json b/abi/0.26.0/IW12Fund.json new file mode 100644 index 00000000..d410a7c2 --- /dev/null +++ b/abi/0.26.0/IW12Fund.json @@ -0,0 +1,91 @@ +{ + "contractName": "IW12Fund", + "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": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "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.26.0/IW12FundFactory.json b/abi/0.26.0/IW12FundFactory.json new file mode 100644 index 00000000..e6dd020d --- /dev/null +++ b/abi/0.26.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.26.0/IWToken.json b/abi/0.26.0/IWToken.json new file mode 100644 index 00000000..f679b9fb --- /dev/null +++ b/abi/0.26.0/IWToken.json @@ -0,0 +1,441 @@ +{ + "contractName": "IWToken", + "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": "", + "type": "address" + } + ], + "name": "balances", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "decimals", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + }, + { + "name": "", + "type": "uint256" + } + ], + "name": "vestingBalanceOf", + "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": "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" + }, + { + "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" + }, + { + "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": false, + "inputs": [ + { + "name": "caller", + "type": "address" + } + ], + "name": "addTrustedAccount", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "caller", + "type": "address" + } + ], + "name": "removeTrustedAccount", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.26.0/IWallets.json b/abi/0.26.0/IWallets.json new file mode 100644 index 00000000..8572ee3d --- /dev/null +++ b/abi/0.26.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.26.0/Migrations.json b/abi/0.26.0/Migrations.json new file mode 100644 index 00000000..98b6772e --- /dev/null +++ b/abi/0.26.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.26.0/Ownable.json b/abi/0.26.0/Ownable.json new file mode 100644 index 00000000..3920387a --- /dev/null +++ b/abi/0.26.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.26.0/PaymentMethods.json b/abi/0.26.0/PaymentMethods.json new file mode 100644 index 00000000..07339471 --- /dev/null +++ b/abi/0.26.0/PaymentMethods.json @@ -0,0 +1,4 @@ +{ + "contractName": "PaymentMethods", + "abi": [] +} \ No newline at end of file diff --git a/abi/0.26.0/Percent.json b/abi/0.26.0/Percent.json new file mode 100644 index 00000000..6934b6e3 --- /dev/null +++ b/abi/0.26.0/Percent.json @@ -0,0 +1,61 @@ +{ + "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" + } + ] +} \ No newline at end of file diff --git a/abi/0.26.0/PercentMock.json b/abi/0.26.0/PercentMock.json new file mode 100644 index 00000000..ad2e2b91 --- /dev/null +++ b/abi/0.26.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.26.0/PricerRole.json b/abi/0.26.0/PricerRole.json new file mode 100644 index 00000000..3c5c8bd9 --- /dev/null +++ b/abi/0.26.0/PricerRole.json @@ -0,0 +1,82 @@ +{ + "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": "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" + } + ] +} \ No newline at end of file diff --git a/abi/0.26.0/PurchaseProcessing.json b/abi/0.26.0/PurchaseProcessing.json new file mode 100644 index 00000000..47b3d7be --- /dev/null +++ b/abi/0.26.0/PurchaseProcessing.json @@ -0,0 +1,4 @@ +{ + "contractName": "PurchaseProcessing", + "abi": [] +} \ No newline at end of file diff --git a/abi/0.26.0/PurchaseProcessingMock.json b/abi/0.26.0/PurchaseProcessingMock.json new file mode 100644 index 00000000..c4b324ed --- /dev/null +++ b/abi/0.26.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.26.0/RBAC.json b/abi/0.26.0/RBAC.json new file mode 100644 index 00000000..b8a3a7f7 --- /dev/null +++ b/abi/0.26.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.26.0/Rates.json b/abi/0.26.0/Rates.json new file mode 100644 index 00000000..f90bd626 --- /dev/null +++ b/abi/0.26.0/Rates.json @@ -0,0 +1,333 @@ +{ + "contractName": "Rates", + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "uint256" + } + ], + "name": "symbolsList", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceOwnership", + "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": "owner", + "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" + }, + { + "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", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "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.26.0/ReentrancyGuard.json b/abi/0.26.0/ReentrancyGuard.json new file mode 100644 index 00000000..4bb562c4 --- /dev/null +++ b/abi/0.26.0/ReentrancyGuard.json @@ -0,0 +1,4 @@ +{ + "contractName": "ReentrancyGuard", + "abi": [] +} \ No newline at end of file diff --git a/abi/0.26.0/Roles.json b/abi/0.26.0/Roles.json new file mode 100644 index 00000000..567239e8 --- /dev/null +++ b/abi/0.26.0/Roles.json @@ -0,0 +1,4 @@ +{ + "contractName": "Roles", + "abi": [] +} \ No newline at end of file diff --git a/abi/0.26.0/SafeERC20.json b/abi/0.26.0/SafeERC20.json new file mode 100644 index 00000000..083544f8 --- /dev/null +++ b/abi/0.26.0/SafeERC20.json @@ -0,0 +1,4 @@ +{ + "contractName": "SafeERC20", + "abi": [] +} \ No newline at end of file diff --git a/abi/0.26.0/SafeMath.json b/abi/0.26.0/SafeMath.json new file mode 100644 index 00000000..c474f9a5 --- /dev/null +++ b/abi/0.26.0/SafeMath.json @@ -0,0 +1,4 @@ +{ + "contractName": "SafeMath", + "abi": [] +} \ No newline at end of file diff --git a/abi/0.26.0/StandardToken.json b/abi/0.26.0/StandardToken.json new file mode 100644 index 00000000..d131c381 --- /dev/null +++ b/abi/0.26.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.26.0/Symbols.json b/abi/0.26.0/Symbols.json new file mode 100644 index 00000000..5cacb2ea --- /dev/null +++ b/abi/0.26.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.26.0/TokenExchanger.json b/abi/0.26.0/TokenExchanger.json new file mode 100644 index 00000000..a9df717b --- /dev/null +++ b/abi/0.26.0/TokenExchanger.json @@ -0,0 +1,285 @@ +{ + "contractName": "TokenExchanger", + "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": "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": "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" + }, + { + "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.26.0/Utils.json b/abi/0.26.0/Utils.json new file mode 100644 index 00000000..7bad70b9 --- /dev/null +++ b/abi/0.26.0/Utils.json @@ -0,0 +1,59 @@ +{ + "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" + } + ] +} \ No newline at end of file diff --git a/abi/0.26.0/UtilsMock.json b/abi/0.26.0/UtilsMock.json new file mode 100644 index 00000000..fda5d129 --- /dev/null +++ b/abi/0.26.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.26.0/Versionable.json b/abi/0.26.0/Versionable.json new file mode 100644 index 00000000..43ea6b23 --- /dev/null +++ b/abi/0.26.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.26.0/VersionsLedger.json b/abi/0.26.0/VersionsLedger.json new file mode 100644 index 00000000..1974c877 --- /dev/null +++ b/abi/0.26.0/VersionsLedger.json @@ -0,0 +1,192 @@ +{ + "contractName": "VersionsLedger", + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "uint256" + } + ], + "name": "addressByVersion", + "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": "", + "type": "uint256" + } + ], + "name": "versions", + "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" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + } + ], + "name": "versionByAddress", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "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", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "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.26.0/W12AtomicSwap.json b/abi/0.26.0/W12AtomicSwap.json new file mode 100644 index 00000000..21e5d364 --- /dev/null +++ b/abi/0.26.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.26.0/W12Crowdsale.json b/abi/0.26.0/W12Crowdsale.json new file mode 100644 index 00000000..c817d6cb --- /dev/null +++ b/abi/0.26.0/W12Crowdsale.json @@ -0,0 +1,799 @@ +{ + "contractName": "W12Crowdsale", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "originToken", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "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": false, + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "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": "owner", + "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": "fund", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "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": "_newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "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": [ + { + "indexed": true, + "name": "owner", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "UnsoldTokenReturned", + "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": 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": "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.26.0/W12CrowdsaleFactory.json b/abi/0.26.0/W12CrowdsaleFactory.json new file mode 100644 index 00000000..a789f744 --- /dev/null +++ b/abi/0.26.0/W12CrowdsaleFactory.json @@ -0,0 +1,116 @@ +{ + "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": "owner", + "type": "address" + }, + { + "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": "owner", + "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.26.0/W12CrowdsaleFundStub.json b/abi/0.26.0/W12CrowdsaleFundStub.json new file mode 100644 index 00000000..7e64e63e --- /dev/null +++ b/abi/0.26.0/W12CrowdsaleFundStub.json @@ -0,0 +1,139 @@ +{ + "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": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "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.26.0/W12CrowdsaleStub.json b/abi/0.26.0/W12CrowdsaleStub.json new file mode 100644 index 00000000..b22ed1b7 --- /dev/null +++ b/abi/0.26.0/W12CrowdsaleStub.json @@ -0,0 +1,850 @@ +{ + "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": true, + "inputs": [ + { + "name": "value", + "type": "uint256" + } + ], + "name": "getSaleVolumeBonus", + "outputs": [ + { + "name": "bonus", + "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": "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": 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": "renounceOwnership", + "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": true, + "inputs": [], + "name": "owner", + "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": "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": "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": "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": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "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": [ + { + "indexed": true, + "name": "owner", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "UnsoldTokenReturned", + "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": "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.26.0/W12Fund.json b/abi/0.26.0/W12Fund.json new file mode 100644 index 00000000..a0a69a2d --- /dev/null +++ b/abi/0.26.0/W12Fund.json @@ -0,0 +1,618 @@ +{ + "contractName": "W12Fund", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "wToken", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalTranchePercentReleased", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "uint256" + } + ], + "name": "completedTranches", + "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": false, + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "swap", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "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": "trancheFeePercent", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalTokenBought", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalTokenRefunded", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "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": 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": "_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": "_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.26.0/W12FundCrowdsaleStub.json b/abi/0.26.0/W12FundCrowdsaleStub.json new file mode 100644 index 00000000..103e38c7 --- /dev/null +++ b/abi/0.26.0/W12FundCrowdsaleStub.json @@ -0,0 +1,462 @@ +{ + "contractName": "W12FundCrowdsaleStub", + "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": 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" + }, + { + "payable": true, + "stateMutability": "payable", + "type": "fallback" + }, + { + "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": "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.26.0/W12FundFactory.json b/abi/0.26.0/W12FundFactory.json new file mode 100644 index 00000000..4484431d --- /dev/null +++ b/abi/0.26.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.26.0/W12FundStub.json b/abi/0.26.0/W12FundStub.json new file mode 100644 index 00000000..cc210f47 --- /dev/null +++ b/abi/0.26.0/W12FundStub.json @@ -0,0 +1,657 @@ +{ + "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": true, + "inputs": [], + "name": "totalTranchePercentReleased", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "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": false, + "inputs": [ + { + "name": "tokenAmount", + "type": "uint256" + } + ], + "name": "refund", + "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": "renounceOwnership", + "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": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "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": "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": 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": "_investor", + "type": "address" + }, + { + "name": "_symbol", + "type": "bytes32" + } + ], + "name": "getInvestorFundedAmount", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "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": 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": "_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.26.0/W12Lister.json b/abi/0.26.0/W12Lister.json new file mode 100644 index 00000000..231bbf73 --- /dev/null +++ b/abi/0.26.0/W12Lister.json @@ -0,0 +1,635 @@ +{ + "contractName": "W12Lister", + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "_operator", + "type": "address" + }, + { + "name": "_role", + "type": "string" + } + ], + "name": "checkRole", + "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", + "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" + }, + { + "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": "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": "approvedTokensLength", + "outputs": [ + { + "name": "", + "type": "uint16" + } + ], + "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": "", + "type": "address" + }, + { + "name": "", + "type": "address" + } + ], + "name": "approvedTokensIndex", + "outputs": [ + { + "name": "", + "type": "uint16" + } + ], + "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": "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": [ + { + "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" + }, + { + "indexed": false, + "name": "name", + "type": "string" + }, + { + "indexed": false, + "name": "symbol", + "type": "string" + } + ], + "name": "OwnerWhitelisted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "originalTokenAddress", + "type": "address" + }, + { + "indexed": true, + "name": "tokenOwner", + "type": "address" + }, + { + "indexed": false, + "name": "tokenAmount", + "type": "uint256" + }, + { + "indexed": false, + "name": "placedTokenAddress", + "type": "address" + } + ], + "name": "TokenPlaced", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "tokenAddress", + "type": "address" + }, + { + "indexed": true, + "name": "tokenOwner", + "type": "address" + }, + { + "indexed": false, + "name": "amountForSale", + "type": "uint256" + } + ], + "name": "CrowdsaleInitialized", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "tokenAddress", + "type": "address" + }, + { + "indexed": true, + "name": "tokenOwner", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "CrowdsaleTokenMinted", + "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" + }, + { + "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": false, + "inputs": [ + { + "name": "_operator", + "type": "address" + } + ], + "name": "addAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_operator", + "type": "address" + } + ], + "name": "removeAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "tokenOwner", + "type": "address" + }, + { + "name": "tokenAddress", + "type": "address" + }, + { + "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": "whitelistToken", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "tokenAddress", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "placeToken", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "tokenAddress", + "type": "address" + }, + { + "name": "amountForSale", + "type": "uint256" + }, + { + "name": "price", + "type": "uint256" + } + ], + "name": "initCrowdsale", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "tokenAddress", + "type": "address" + }, + { + "name": "amountForSale", + "type": "uint256" + } + ], + "name": "addTokensToCrowdsale", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "tokenAddress", + "type": "address" + }, + { + "name": "ownerAddress", + "type": "address" + } + ], + "name": "getTokenCrowdsale", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "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": "getExchanger", + "outputs": [ + { + "name": "", + "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.26.0/W12ListerStub.json b/abi/0.26.0/W12ListerStub.json new file mode 100644 index 00000000..ab5291a0 --- /dev/null +++ b/abi/0.26.0/W12ListerStub.json @@ -0,0 +1,612 @@ +{ + "contractName": "W12ListerStub", + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "tokenAddress", + "type": "address" + }, + { + "name": "amountForSale", + "type": "uint256" + }, + { + "name": "price", + "type": "uint256" + } + ], + "name": "initCrowdsale", + "outputs": [], + "payable": false, + "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", + "type": "address" + } + ], + "name": "removeAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "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", + "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" + }, + { + "constant": false, + "inputs": [ + { + "name": "tokenOwner", + "type": "address" + }, + { + "name": "tokenAddress", + "type": "address" + }, + { + "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": "whitelistToken", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "tokenAddress", + "type": "address" + }, + { + "name": "ownerAddress", + "type": "address" + } + ], + "name": "getTokenCrowdsale", + "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": false, + "inputs": [ + { + "name": "tokenAddress", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "placeToken", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_operator", + "type": "address" + } + ], + "name": "addAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceOwnership", + "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": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "approvedTokensLength", + "outputs": [ + { + "name": "", + "type": "uint16" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "tokenAddress", + "type": "address" + }, + { + "name": "amountForSale", + "type": "uint256" + } + ], + "name": "addTokensToCrowdsale", + "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": "", + "type": "address" + }, + { + "name": "", + "type": "address" + } + ], + "name": "approvedTokensIndex", + "outputs": [ + { + "name": "", + "type": "uint16" + } + ], + "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": "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" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "tokenAddress", + "type": "address" + }, + { + "indexed": true, + "name": "tokenOwner", + "type": "address" + }, + { + "indexed": false, + "name": "name", + "type": "string" + }, + { + "indexed": false, + "name": "symbol", + "type": "string" + } + ], + "name": "OwnerWhitelisted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "originalTokenAddress", + "type": "address" + }, + { + "indexed": true, + "name": "tokenOwner", + "type": "address" + }, + { + "indexed": false, + "name": "tokenAmount", + "type": "uint256" + }, + { + "indexed": false, + "name": "placedTokenAddress", + "type": "address" + } + ], + "name": "TokenPlaced", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "tokenAddress", + "type": "address" + }, + { + "indexed": true, + "name": "tokenOwner", + "type": "address" + }, + { + "indexed": false, + "name": "amountForSale", + "type": "uint256" + } + ], + "name": "CrowdsaleInitialized", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "tokenAddress", + "type": "address" + }, + { + "indexed": true, + "name": "tokenOwner", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "CrowdsaleTokenMinted", + "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" + }, + { + "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" + } + ] +} \ No newline at end of file diff --git a/abi/0.26.0/W12TokenLedger.json b/abi/0.26.0/W12TokenLedger.json new file mode 100644 index 00000000..c5ab4cdf --- /dev/null +++ b/abi/0.26.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.26.0/WToken.json b/abi/0.26.0/WToken.json new file mode 100644 index 00000000..68bde90d --- /dev/null +++ b/abi/0.26.0/WToken.json @@ -0,0 +1,570 @@ +{ + "contractName": "WToken", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "name", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + } + ], + "name": "balances", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "decimals", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + }, + { + "name": "", + "type": "uint256" + } + ], + "name": "vestingBalanceOf", + "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": "symbol", + "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": [ + { + "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": "VestingTransfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "burner", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Burn", + "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" + }, + { + "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" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "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": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + }, + { + "name": "_vestingTime", + "type": "uint32" + } + ], + "name": "vestingTransfer", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "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", + "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": "_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", + "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": false, + "inputs": [ + { + "name": "caller", + "type": "address" + } + ], + "name": "addTrustedAccount", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "caller", + "type": "address" + } + ], + "name": "removeTrustedAccount", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ] +} \ No newline at end of file diff --git a/abi/0.26.0/WTokenStub.json b/abi/0.26.0/WTokenStub.json new file mode 100644 index 00000000..eede3f0c --- /dev/null +++ b/abi/0.26.0/WTokenStub.json @@ -0,0 +1,570 @@ +{ + "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": 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": "", + "type": "address" + } + ], + "name": "balances", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "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": "_value", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + }, + { + "name": "", + "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": true, + "inputs": [ + { + "name": "_owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "balance", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceOwnership", + "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": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "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": "_vestingTime", + "type": "uint32" + } + ], + "name": "vestingTransfer", + "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": false, + "inputs": [ + { + "name": "caller", + "type": "address" + } + ], + "name": "removeTrustedAccount", + "outputs": [], + "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": true, + "inputs": [ + { + "name": "_address", + "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": false, + "inputs": [ + { + "name": "caller", + "type": "address" + } + ], + "name": "addTrustedAccount", + "outputs": [], + "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": "_newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "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": "VestingTransfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "burner", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Burn", + "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" + }, + { + "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.26.0/WTokenTestHelper.json b/abi/0.26.0/WTokenTestHelper.json new file mode 100644 index 00000000..8b3c7f25 --- /dev/null +++ b/abi/0.26.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.26.0/Wallets.json b/abi/0.26.0/Wallets.json new file mode 100644 index 00000000..609f9af5 --- /dev/null +++ b/abi/0.26.0/Wallets.json @@ -0,0 +1,145 @@ +{ + "contractName": "Wallets", + "abi": [ + { + "constant": false, + "inputs": [], + "name": "renounceOwnership", + "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": "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": [], + "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": 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": "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/BytesLib.json b/build/contracts/BytesLib.json index f7b6505b..cc587406 100644 --- a/build/contracts/BytesLib.json +++ b/build/contracts/BytesLib.json @@ -3,22 +3,22 @@ "abi": [], "bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820c56bc2c56eb23f565dbdb65da5dccbd72fc855f5112d4da72147433b3307ff540029", "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820c56bc2c56eb23f565dbdb65da5dccbd72fc855f5112d4da72147433b3307ff540029", - "sourceMap": "326:16501:36:-;;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:36:-;;;;;;;;", + "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:-;;;;;;;;", "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": [ - 7279 + 10027 ] }, - "id": 7280, + "id": 10028, "nodeType": "SourceUnit", "nodes": [ { - "id": 7113, + "id": 9861, "literals": [ "solidity", "^", @@ -26,7 +26,7 @@ ".19" ], "nodeType": "PragmaDirective", - "src": "299:24:36" + "src": "299:24:50" }, { "baseContracts": [], @@ -34,29 +34,29 @@ "contractKind": "library", "documentation": null, "fullyImplemented": true, - "id": 7279, + "id": 10027, "linearizedBaseContracts": [ - 7279 + 10027 ], "name": "BytesLib", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 7128, + "id": 9876, "nodeType": "Block", - "src": "444:2804:36", + "src": "444:2804:50", "statements": [ { "assignments": [], "declarations": [ { "constant": false, - "id": 7123, + "id": 9871, "name": "tempBytes", "nodeType": "VariableDeclaration", - "scope": 7129, - "src": "454:22:36", + "scope": 9877, + "src": "454:22:50", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -64,10 +64,10 @@ "typeString": "bytes" }, "typeName": { - "id": 7122, + "id": 9870, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "454:5:36", + "src": "454:5:50", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -77,132 +77,132 @@ "visibility": "internal" } ], - "id": 7124, + "id": 9872, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "454:22:36" + "src": "454:22:50" }, { "externalReferences": [ { "tempBytes": { - "declaration": 7123, + "declaration": 9871, "isOffset": false, "isSlot": false, - "src": "640:9:36", + "src": "640:9:50", "valueSize": 1 } }, { "_preBytes": { - "declaration": 7115, + "declaration": 9863, "isOffset": false, "isSlot": false, - "src": "816:9:36", + "src": "816:9:50", "valueSize": 1 } }, { "tempBytes": { - "declaration": 7123, + "declaration": 9871, "isOffset": false, "isSlot": false, - "src": "846:9:36", + "src": "846:9:50", "valueSize": 1 } }, { "_preBytes": { - "declaration": 7115, + "declaration": 9863, "isOffset": false, "isSlot": false, - "src": "1431:9:36", + "src": "1431:9:50", "valueSize": 1 } }, { "tempBytes": { - "declaration": 7123, + "declaration": 9871, "isOffset": false, "isSlot": false, - "src": "1088:9:36", + "src": "1088:9:50", "valueSize": 1 } }, { "_postBytes": { - "declaration": 7117, + "declaration": 9865, "isOffset": false, "isSlot": false, - "src": "2429:10:36", + "src": "2429:10:50", "valueSize": 1 } }, { "_postBytes": { - "declaration": 7117, + "declaration": 9865, "isOffset": false, "isSlot": false, - "src": "2011:10:36", + "src": "2011:10:50", "valueSize": 1 } }, { "tempBytes": { - "declaration": 7123, + "declaration": 9871, "isOffset": false, "isSlot": false, - "src": "2042:9:36", + "src": "2042:9:50", "valueSize": 1 } }, { "tempBytes": { - "declaration": 7123, + "declaration": 9871, "isOffset": false, "isSlot": false, - "src": "2071:9:36", + "src": "2071:9:50", "valueSize": 1 } }, { "_preBytes": { - "declaration": 7115, + "declaration": 9863, "isOffset": false, "isSlot": false, - "src": "3110:9:36", + "src": "3110:9:50", "valueSize": 1 } } ], - "id": 7125, + "id": 9873, "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:36" + "src": "487:2744:50" }, { "expression": { "argumentTypes": null, - "id": 7126, + "id": 9874, "name": "tempBytes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7123, - "src": "3232:9:36", + "referencedDeclaration": 9871, + "src": "3232:9:50", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "functionReturnParameters": 7121, - "id": 7127, + "functionReturnParameters": 9869, + "id": 9875, "nodeType": "Return", - "src": "3225:16:36" + "src": "3225:16:50" } ] }, "documentation": null, - "id": 7129, + "id": 9877, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -210,16 +210,16 @@ "name": "concat", "nodeType": "FunctionDefinition", "parameters": { - "id": 7118, + "id": 9866, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7115, + "id": 9863, "name": "_preBytes", "nodeType": "VariableDeclaration", - "scope": 7129, - "src": "365:22:36", + "scope": 9877, + "src": "365:22:50", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -227,10 +227,10 @@ "typeString": "bytes" }, "typeName": { - "id": 7114, + "id": 9862, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "365:5:36", + "src": "365:5:50", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -241,11 +241,11 @@ }, { "constant": false, - "id": 7117, + "id": 9865, "name": "_postBytes", "nodeType": "VariableDeclaration", - "scope": 7129, - "src": "389:23:36", + "scope": 9877, + "src": "389:23:50", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -253,10 +253,10 @@ "typeString": "bytes" }, "typeName": { - "id": 7116, + "id": 9864, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "389:5:36", + "src": "389:5:50", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -266,20 +266,20 @@ "visibility": "internal" } ], - "src": "364:49:36" + "src": "364:49:50" }, "payable": false, "returnParameters": { - "id": 7121, + "id": 9869, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7120, + "id": 9868, "name": "", "nodeType": "VariableDeclaration", - "scope": 7129, - "src": "437:5:36", + "scope": 9877, + "src": "437:5:50", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -287,10 +287,10 @@ "typeString": "bytes" }, "typeName": { - "id": 7119, + "id": 9867, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "437:5:36", + "src": "437:5:50", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -300,140 +300,140 @@ "visibility": "internal" } ], - "src": "436:7:36" + "src": "436:7:50" }, - "scope": 7279, - "src": "349:2899:36", + "scope": 10027, + "src": "349:2899:50", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 7137, + "id": 9885, "nodeType": "Block", - "src": "3336:6032:36", + "src": "3336:6032:50", "statements": [ { "externalReferences": [ { "_preBytes_slot": { - "declaration": 7131, + "declaration": 9879, "isOffset": false, "isSlot": true, - "src": "3597:14:36", + "src": "3597:14:50", "valueSize": 1 } }, { "_postBytes": { - "declaration": 7133, + "declaration": 9881, "isOffset": false, "isSlot": false, - "src": "4215:10:36", + "src": "4215:10:50", "valueSize": 1 } }, { "_postBytes": { - "declaration": 7133, + "declaration": 9881, "isOffset": false, "isSlot": false, - "src": "7216:10:36", + "src": "7216:10:50", "valueSize": 1 } }, { "_postBytes": { - "declaration": 7133, + "declaration": 9881, "isOffset": false, "isSlot": false, - "src": "7165:10:36", + "src": "7165:10:50", "valueSize": 1 } }, { "_postBytes": { - "declaration": 7133, + "declaration": 9881, "isOffset": false, "isSlot": false, - "src": "8729:10:36", + "src": "8729:10:50", "valueSize": 1 } }, { "_postBytes": { - "declaration": 7133, + "declaration": 9881, "isOffset": false, "isSlot": false, - "src": "8780:10:36", + "src": "8780:10:50", "valueSize": 1 } }, { "_preBytes_slot": { - "declaration": 7131, + "declaration": 9879, "isOffset": false, "isSlot": true, - "src": "4891:14:36", + "src": "4891:14:50", "valueSize": 1 } }, { "_postBytes": { - "declaration": 7133, + "declaration": 9881, "isOffset": false, "isSlot": false, - "src": "5421:10:36", + "src": "5421:10:50", "valueSize": 1 } }, { "_preBytes_slot": { - "declaration": 7131, + "declaration": 9879, "isOffset": false, "isSlot": true, - "src": "6329:14:36", + "src": "6329:14:50", "valueSize": 1 } }, { "_preBytes_slot": { - "declaration": 7131, + "declaration": 9879, "isOffset": false, "isSlot": true, - "src": "6474:14:36", + "src": "6474:14:50", "valueSize": 1 } }, { "_preBytes_slot": { - "declaration": 7131, + "declaration": 9879, "isOffset": false, "isSlot": true, - "src": "8173:14:36", + "src": "8173:14:50", "valueSize": 1 } }, { "_preBytes_slot": { - "declaration": 7131, + "declaration": 9879, "isOffset": false, "isSlot": true, - "src": "8394:14:36", + "src": "8394:14:50", "valueSize": 1 } } ], - "id": 7136, + "id": 9884, "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:36" + "src": "3346:6022:50" } ] }, "documentation": null, - "id": 7138, + "id": 9886, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -441,16 +441,16 @@ "name": "concatStorage", "nodeType": "FunctionDefinition", "parameters": { - "id": 7134, + "id": 9882, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7131, + "id": 9879, "name": "_preBytes", "nodeType": "VariableDeclaration", - "scope": 7138, - "src": "3277:23:36", + "scope": 9886, + "src": "3277:23:50", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { @@ -458,10 +458,10 @@ "typeString": "bytes" }, "typeName": { - "id": 7130, + "id": 9878, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "3277:5:36", + "src": "3277:5:50", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -472,11 +472,11 @@ }, { "constant": false, - "id": 7133, + "id": 9881, "name": "_postBytes", "nodeType": "VariableDeclaration", - "scope": 7138, - "src": "3302:23:36", + "scope": 9886, + "src": "3302:23:50", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -484,10 +484,10 @@ "typeString": "bytes" }, "typeName": { - "id": 7132, + "id": 9880, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "3302:5:36", + "src": "3302:5:50", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -497,26 +497,26 @@ "visibility": "internal" } ], - "src": "3276:50:36" + "src": "3276:50:50" }, "payable": false, "returnParameters": { - "id": 7135, + "id": 9883, "nodeType": "ParameterList", "parameters": [], - "src": "3336:0:36" + "src": "3336:0:50" }, - "scope": 7279, - "src": "3254:6114:36", + "scope": 10027, + "src": "3254:6114:50", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 7165, + "id": 9913, "nodeType": "Block", - "src": "9461:2378:36", + "src": "9461:2378:50", "statements": [ { "expression": { @@ -528,7 +528,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 7156, + "id": 9904, "isConstant": false, "isLValue": false, "isPure": false, @@ -537,18 +537,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 7150, + "id": 9898, "name": "_bytes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7140, - "src": "9479:6:36", + "referencedDeclaration": 9888, + "src": "9479:6:50", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 7151, + "id": 9899, "isConstant": false, "isLValue": false, "isPure": false, @@ -556,7 +556,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "9479:13:36", + "src": "9479:13:50", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -573,19 +573,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 7154, + "id": 9902, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 7152, + "id": 9900, "name": "_start", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7142, - "src": "9497:6:36", + "referencedDeclaration": 9890, + "src": "9497:6:50", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -595,38 +595,38 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 7153, + "id": 9901, "name": "_length", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7144, - "src": "9506:7:36", + "referencedDeclaration": 9892, + "src": "9506:7:50", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9497:16:36", + "src": "9497:16:50", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 7155, + "id": 9903, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "9496:18:36", + "src": "9496:18:50", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9479:35:36", + "src": "9479:35:50", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -640,21 +640,21 @@ "typeString": "bool" } ], - "id": 7149, + "id": 9897, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "9471:7:36", + "referencedDeclaration": 10045, + "src": "9471:7:50", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 7157, + "id": 9905, "isConstant": false, "isLValue": false, "isPure": false, @@ -662,26 +662,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9471:44:36", + "src": "9471:44:50", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 7158, + "id": 9906, "nodeType": "ExpressionStatement", - "src": "9471:44:36" + "src": "9471:44:50" }, { "assignments": [], "declarations": [ { "constant": false, - "id": 7160, + "id": 9908, "name": "tempBytes", "nodeType": "VariableDeclaration", - "scope": 7166, - "src": "9526:22:36", + "scope": 9914, + "src": "9526:22:50", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -689,10 +689,10 @@ "typeString": "bytes" }, "typeName": { - "id": 7159, + "id": 9907, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "9526:5:36", + "src": "9526:5:50", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -702,141 +702,141 @@ "visibility": "internal" } ], - "id": 7161, + "id": 9909, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "9526:22:36" + "src": "9526:22:50" }, { "externalReferences": [ { "tempBytes": { - "declaration": 7160, + "declaration": 9908, "isOffset": false, "isSlot": false, - "src": "11706:9:36", + "src": "11706:9:50", "valueSize": 1 } }, { "tempBytes": { - "declaration": 7160, + "declaration": 9908, "isOffset": false, "isSlot": false, - "src": "10800:9:36", + "src": "10800:9:50", "valueSize": 1 } }, { "_length": { - "declaration": 7144, + "declaration": 9892, "isOffset": false, "isSlot": false, - "src": "10888:7:36", + "src": "10888:7:50", "valueSize": 1 } }, { "tempBytes": { - "declaration": 7160, + "declaration": 9908, "isOffset": false, "isSlot": false, - "src": "9780:9:36", + "src": "9780:9:50", "valueSize": 1 } }, { "_length": { - "declaration": 7144, + "declaration": 9892, "isOffset": false, "isSlot": false, - "src": "10449:7:36", + "src": "10449:7:50", "valueSize": 1 } }, { "_length": { - "declaration": 7144, + "declaration": 9892, "isOffset": false, "isSlot": false, - "src": "9596:7:36", + "src": "9596:7:50", "valueSize": 1 } }, { "tempBytes": { - "declaration": 7160, + "declaration": 9908, "isOffset": false, "isSlot": false, - "src": "11364:9:36", + "src": "11364:9:50", "valueSize": 1 } }, { "_length": { - "declaration": 7144, + "declaration": 9892, "isOffset": false, "isSlot": false, - "src": "11375:7:36", + "src": "11375:7:50", "valueSize": 1 } }, { "_start": { - "declaration": 7142, + "declaration": 9890, "isOffset": false, "isSlot": false, - "src": "11140:6:36", + "src": "11140:6:50", "valueSize": 1 } }, { "_bytes": { - "declaration": 7140, + "declaration": 9888, "isOffset": false, "isSlot": false, - "src": "11089:6:36", + "src": "11089:6:50", "valueSize": 1 } }, { "tempBytes": { - "declaration": 7160, + "declaration": 9908, "isOffset": false, "isSlot": false, - "src": "11765:9:36", + "src": "11765:9:50", "valueSize": 1 } } ], - "id": 7162, + "id": 9910, "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:36" + "src": "9559:2263:50" }, { "expression": { "argumentTypes": null, - "id": 7163, + "id": 9911, "name": "tempBytes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7160, - "src": "11823:9:36", + "referencedDeclaration": 9908, + "src": "11823:9:50", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "functionReturnParameters": 7148, - "id": 7164, + "functionReturnParameters": 9896, + "id": 9912, "nodeType": "Return", - "src": "11816:16:36" + "src": "11816:16:50" } ] }, "documentation": null, - "id": 7166, + "id": 9914, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -844,16 +844,16 @@ "name": "slice", "nodeType": "FunctionDefinition", "parameters": { - "id": 7145, + "id": 9893, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7140, + "id": 9888, "name": "_bytes", "nodeType": "VariableDeclaration", - "scope": 7166, - "src": "9389:12:36", + "scope": 9914, + "src": "9389:12:50", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -861,10 +861,10 @@ "typeString": "bytes" }, "typeName": { - "id": 7139, + "id": 9887, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "9389:5:36", + "src": "9389:5:50", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -875,11 +875,11 @@ }, { "constant": false, - "id": 7142, + "id": 9890, "name": "_start", "nodeType": "VariableDeclaration", - "scope": 7166, - "src": "9403:11:36", + "scope": 9914, + "src": "9403:11:50", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -887,10 +887,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7141, + "id": 9889, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "9403:4:36", + "src": "9403:4:50", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -901,11 +901,11 @@ }, { "constant": false, - "id": 7144, + "id": 9892, "name": "_length", "nodeType": "VariableDeclaration", - "scope": 7166, - "src": "9416:12:36", + "scope": 9914, + "src": "9416:12:50", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -913,10 +913,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7143, + "id": 9891, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "9416:4:36", + "src": "9416:4:50", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -926,20 +926,20 @@ "visibility": "internal" } ], - "src": "9388:41:36" + "src": "9388:41:50" }, "payable": false, "returnParameters": { - "id": 7148, + "id": 9896, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7147, + "id": 9895, "name": "", "nodeType": "VariableDeclaration", - "scope": 7166, - "src": "9454:5:36", + "scope": 9914, + "src": "9454:5:50", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -947,10 +947,10 @@ "typeString": "bytes" }, "typeName": { - "id": 7146, + "id": 9894, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "9454:5:36", + "src": "9454:5:50", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -960,19 +960,19 @@ "visibility": "internal" } ], - "src": "9453:7:36" + "src": "9453:7:50" }, - "scope": 7279, - "src": "9374:2465:36", + "scope": 10027, + "src": "9374:2465:50", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 7191, + "id": 9939, "nodeType": "Block", - "src": "11924:243:36", + "src": "11924:243:50", "statements": [ { "expression": { @@ -984,7 +984,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 7182, + "id": 9930, "isConstant": false, "isLValue": false, "isPure": false, @@ -993,18 +993,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 7176, + "id": 9924, "name": "_bytes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7168, - "src": "11942:6:36", + "referencedDeclaration": 9916, + "src": "11942:6:50", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 7177, + "id": 9925, "isConstant": false, "isLValue": false, "isPure": false, @@ -1012,7 +1012,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11942:13:36", + "src": "11942:13:50", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1029,19 +1029,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 7180, + "id": 9928, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 7178, + "id": 9926, "name": "_start", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7170, - "src": "11960:6:36", + "referencedDeclaration": 9918, + "src": "11960:6:50", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1052,14 +1052,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "3230", - "id": 7179, + "id": 9927, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11969:2:36", + "src": "11969:2:50", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_20_by_1", @@ -1067,27 +1067,27 @@ }, "value": "20" }, - "src": "11960:11:36", + "src": "11960:11:50", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 7181, + "id": 9929, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "11959:13:36", + "src": "11959:13:50", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "11942:30:36", + "src": "11942:30:50", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1101,21 +1101,21 @@ "typeString": "bool" } ], - "id": 7175, + "id": 9923, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "11934:7:36", + "referencedDeclaration": 10045, + "src": "11934:7:50", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 7183, + "id": 9931, "isConstant": false, "isLValue": false, "isPure": false, @@ -1123,26 +1123,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11934:39:36", + "src": "11934:39:50", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 7184, + "id": 9932, "nodeType": "ExpressionStatement", - "src": "11934:39:36" + "src": "11934:39:50" }, { "assignments": [], "declarations": [ { "constant": false, - "id": 7186, + "id": 9934, "name": "tempAddress", "nodeType": "VariableDeclaration", - "scope": 7192, - "src": "11983:19:36", + "scope": 9940, + "src": "11983:19:50", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1150,10 +1150,10 @@ "typeString": "address" }, "typeName": { - "id": 7185, + "id": 9933, "name": "address", "nodeType": "ElementaryTypeName", - "src": "11983:7:36", + "src": "11983:7:50", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1163,69 +1163,69 @@ "visibility": "internal" } ], - "id": 7187, + "id": 9935, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "11983:19:36" + "src": "11983:19:50" }, { "externalReferences": [ { "tempAddress": { - "declaration": 7186, + "declaration": 9934, "isOffset": false, "isSlot": false, - "src": "12036:11:36", + "src": "12036:11:50", "valueSize": 1 } }, { "_start": { - "declaration": 7170, + "declaration": 9918, "isOffset": false, "isSlot": false, - "src": "12084:6:36", + "src": "12084:6:50", "valueSize": 1 } }, { "_bytes": { - "declaration": 7168, + "declaration": 9916, "isOffset": false, "isSlot": false, - "src": "12069:6:36", + "src": "12069:6:50", "valueSize": 1 } } ], - "id": 7188, + "id": 9936, "nodeType": "InlineAssembly", "operations": "{\n tempAddress := div(mload(add(add(_bytes, 0x20), _start)), 0x1000000000000000000000000)\n}", - "src": "12013:135:36" + "src": "12013:135:50" }, { "expression": { "argumentTypes": null, - "id": 7189, + "id": 9937, "name": "tempAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7186, - "src": "12149:11:36", + "referencedDeclaration": 9934, + "src": "12149:11:50", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "functionReturnParameters": 7174, - "id": 7190, + "functionReturnParameters": 9922, + "id": 9938, "nodeType": "Return", - "src": "12142:18:36" + "src": "12142:18:50" } ] }, "documentation": null, - "id": 7192, + "id": 9940, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1233,16 +1233,16 @@ "name": "toAddress", "nodeType": "FunctionDefinition", "parameters": { - "id": 7171, + "id": 9919, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7168, + "id": 9916, "name": "_bytes", "nodeType": "VariableDeclaration", - "scope": 7192, - "src": "11864:12:36", + "scope": 9940, + "src": "11864:12:50", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1250,10 +1250,10 @@ "typeString": "bytes" }, "typeName": { - "id": 7167, + "id": 9915, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "11864:5:36", + "src": "11864:5:50", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1264,11 +1264,11 @@ }, { "constant": false, - "id": 7170, + "id": 9918, "name": "_start", "nodeType": "VariableDeclaration", - "scope": 7192, - "src": "11878:11:36", + "scope": 9940, + "src": "11878:11:50", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1276,10 +1276,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7169, + "id": 9917, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "11878:4:36", + "src": "11878:4:50", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1289,20 +1289,20 @@ "visibility": "internal" } ], - "src": "11863:27:36" + "src": "11863:27:50" }, "payable": false, "returnParameters": { - "id": 7174, + "id": 9922, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7173, + "id": 9921, "name": "", "nodeType": "VariableDeclaration", - "scope": 7192, - "src": "11915:7:36", + "scope": 9940, + "src": "11915:7:50", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1310,10 +1310,10 @@ "typeString": "address" }, "typeName": { - "id": 7172, + "id": 9920, "name": "address", "nodeType": "ElementaryTypeName", - "src": "11915:7:36", + "src": "11915:7:50", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1323,19 +1323,19 @@ "visibility": "internal" } ], - "src": "11914:9:36" + "src": "11914:9:50" }, - "scope": 7279, - "src": "11845:322:36", + "scope": 10027, + "src": "11845:322:50", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 7217, + "id": 9965, "nodeType": "Block", - "src": "12249:200:36", + "src": "12249:200:50", "statements": [ { "expression": { @@ -1347,7 +1347,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 7208, + "id": 9956, "isConstant": false, "isLValue": false, "isPure": false, @@ -1356,18 +1356,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 7202, + "id": 9950, "name": "_bytes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7194, - "src": "12267:6:36", + "referencedDeclaration": 9942, + "src": "12267:6:50", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 7203, + "id": 9951, "isConstant": false, "isLValue": false, "isPure": false, @@ -1375,7 +1375,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "12267:13:36", + "src": "12267:13:50", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1392,19 +1392,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 7206, + "id": 9954, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 7204, + "id": 9952, "name": "_start", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7196, - "src": "12285:6:36", + "referencedDeclaration": 9944, + "src": "12285:6:50", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1415,14 +1415,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "3332", - "id": 7205, + "id": 9953, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12294:2:36", + "src": "12294:2:50", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", @@ -1430,27 +1430,27 @@ }, "value": "32" }, - "src": "12285:11:36", + "src": "12285:11:50", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 7207, + "id": 9955, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "12284:13:36", + "src": "12284:13:50", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "12267:30:36", + "src": "12267:30:50", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1464,21 +1464,21 @@ "typeString": "bool" } ], - "id": 7201, + "id": 9949, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "12259:7:36", + "referencedDeclaration": 10045, + "src": "12259:7:50", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 7209, + "id": 9957, "isConstant": false, "isLValue": false, "isPure": false, @@ -1486,26 +1486,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12259:39:36", + "src": "12259:39:50", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 7210, + "id": 9958, "nodeType": "ExpressionStatement", - "src": "12259:39:36" + "src": "12259:39:50" }, { "assignments": [], "declarations": [ { "constant": false, - "id": 7212, + "id": 9960, "name": "tempUint", "nodeType": "VariableDeclaration", - "scope": 7218, - "src": "12308:16:36", + "scope": 9966, + "src": "12308:16:50", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1513,10 +1513,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7211, + "id": 9959, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "12308:7:36", + "src": "12308:7:50", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1526,69 +1526,69 @@ "visibility": "internal" } ], - "id": 7213, + "id": 9961, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "12308:16:36" + "src": "12308:16:50" }, { "externalReferences": [ { "_start": { - "declaration": 7196, + "declaration": 9944, "isOffset": false, "isSlot": false, - "src": "12399:6:36", + "src": "12399:6:50", "valueSize": 1 } }, { "tempUint": { - "declaration": 7212, + "declaration": 9960, "isOffset": false, "isSlot": false, - "src": "12358:8:36", + "src": "12358:8:50", "valueSize": 1 } }, { "_bytes": { - "declaration": 7194, + "declaration": 9942, "isOffset": false, "isSlot": false, - "src": "12384:6:36", + "src": "12384:6:50", "valueSize": 1 } } ], - "id": 7214, + "id": 9962, "nodeType": "InlineAssembly", "operations": "{\n tempUint := mload(add(add(_bytes, 0x20), _start))\n}", - "src": "12335:98:36" + "src": "12335:98:50" }, { "expression": { "argumentTypes": null, - "id": 7215, + "id": 9963, "name": "tempUint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7212, - "src": "12434:8:36", + "referencedDeclaration": 9960, + "src": "12434:8:50", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 7200, - "id": 7216, + "functionReturnParameters": 9948, + "id": 9964, "nodeType": "Return", - "src": "12427:15:36" + "src": "12427:15:50" } ] }, "documentation": null, - "id": 7218, + "id": 9966, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1596,16 +1596,16 @@ "name": "toUint", "nodeType": "FunctionDefinition", "parameters": { - "id": 7197, + "id": 9945, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7194, + "id": 9942, "name": "_bytes", "nodeType": "VariableDeclaration", - "scope": 7218, - "src": "12189:12:36", + "scope": 9966, + "src": "12189:12:50", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1613,10 +1613,10 @@ "typeString": "bytes" }, "typeName": { - "id": 7193, + "id": 9941, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "12189:5:36", + "src": "12189:5:50", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1627,11 +1627,11 @@ }, { "constant": false, - "id": 7196, + "id": 9944, "name": "_start", "nodeType": "VariableDeclaration", - "scope": 7218, - "src": "12203:11:36", + "scope": 9966, + "src": "12203:11:50", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1639,10 +1639,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7195, + "id": 9943, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "12203:4:36", + "src": "12203:4:50", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1652,20 +1652,20 @@ "visibility": "internal" } ], - "src": "12188:27:36" + "src": "12188:27:50" }, "payable": false, "returnParameters": { - "id": 7200, + "id": 9948, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7199, + "id": 9947, "name": "", "nodeType": "VariableDeclaration", - "scope": 7218, - "src": "12240:7:36", + "scope": 9966, + "src": "12240:7:50", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1673,10 +1673,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7198, + "id": 9946, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "12240:7:36", + "src": "12240:7:50", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1686,19 +1686,19 @@ "visibility": "internal" } ], - "src": "12239:9:36" + "src": "12239:9:50" }, - "scope": 7279, - "src": "12173:276:36", + "scope": 10027, + "src": "12173:276:50", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 7243, + "id": 9991, "nodeType": "Block", - "src": "12534:209:36", + "src": "12534:209:50", "statements": [ { "expression": { @@ -1710,7 +1710,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 7234, + "id": 9982, "isConstant": false, "isLValue": false, "isPure": false, @@ -1719,18 +1719,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 7228, + "id": 9976, "name": "_bytes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7220, - "src": "12552:6:36", + "referencedDeclaration": 9968, + "src": "12552:6:50", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 7229, + "id": 9977, "isConstant": false, "isLValue": false, "isPure": false, @@ -1738,7 +1738,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "12552:13:36", + "src": "12552:13:50", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1755,19 +1755,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 7232, + "id": 9980, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 7230, + "id": 9978, "name": "_start", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7222, - "src": "12570:6:36", + "referencedDeclaration": 9970, + "src": "12570:6:50", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1778,14 +1778,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "3332", - "id": 7231, + "id": 9979, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12579:2:36", + "src": "12579:2:50", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", @@ -1793,27 +1793,27 @@ }, "value": "32" }, - "src": "12570:11:36", + "src": "12570:11:50", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 7233, + "id": 9981, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "12569:13:36", + "src": "12569:13:50", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "12552:30:36", + "src": "12552:30:50", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1827,21 +1827,21 @@ "typeString": "bool" } ], - "id": 7227, + "id": 9975, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "12544:7:36", + "referencedDeclaration": 10045, + "src": "12544:7:50", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 7235, + "id": 9983, "isConstant": false, "isLValue": false, "isPure": false, @@ -1849,26 +1849,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12544:39:36", + "src": "12544:39:50", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 7236, + "id": 9984, "nodeType": "ExpressionStatement", - "src": "12544:39:36" + "src": "12544:39:50" }, { "assignments": [], "declarations": [ { "constant": false, - "id": 7238, + "id": 9986, "name": "tempBytes32", "nodeType": "VariableDeclaration", - "scope": 7244, - "src": "12593:19:36", + "scope": 9992, + "src": "12593:19:50", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1876,10 +1876,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 7237, + "id": 9985, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "12593:7:36", + "src": "12593:7:50", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1889,69 +1889,69 @@ "visibility": "internal" } ], - "id": 7239, + "id": 9987, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "12593:19:36" + "src": "12593:19:50" }, { "externalReferences": [ { "_start": { - "declaration": 7222, + "declaration": 9970, "isOffset": false, "isSlot": false, - "src": "12690:6:36", + "src": "12690:6:50", "valueSize": 1 } }, { "tempBytes32": { - "declaration": 7238, + "declaration": 9986, "isOffset": false, "isSlot": false, - "src": "12646:11:36", + "src": "12646:11:50", "valueSize": 1 } }, { "_bytes": { - "declaration": 7220, + "declaration": 9968, "isOffset": false, "isSlot": false, - "src": "12675:6:36", + "src": "12675:6:50", "valueSize": 1 } } ], - "id": 7240, + "id": 9988, "nodeType": "InlineAssembly", "operations": "{\n tempBytes32 := mload(add(add(_bytes, 0x20), _start))\n}", - "src": "12623:101:36" + "src": "12623:101:50" }, { "expression": { "argumentTypes": null, - "id": 7241, + "id": 9989, "name": "tempBytes32", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7238, - "src": "12725:11:36", + "referencedDeclaration": 9986, + "src": "12725:11:50", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "functionReturnParameters": 7226, - "id": 7242, + "functionReturnParameters": 9974, + "id": 9990, "nodeType": "Return", - "src": "12718:18:36" + "src": "12718:18:50" } ] }, "documentation": null, - "id": 7244, + "id": 9992, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1959,16 +1959,16 @@ "name": "toBytes32", "nodeType": "FunctionDefinition", "parameters": { - "id": 7223, + "id": 9971, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7220, + "id": 9968, "name": "_bytes", "nodeType": "VariableDeclaration", - "scope": 7244, - "src": "12474:12:36", + "scope": 9992, + "src": "12474:12:50", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1976,10 +1976,10 @@ "typeString": "bytes" }, "typeName": { - "id": 7219, + "id": 9967, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "12474:5:36", + "src": "12474:5:50", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1990,11 +1990,11 @@ }, { "constant": false, - "id": 7222, + "id": 9970, "name": "_start", "nodeType": "VariableDeclaration", - "scope": 7244, - "src": "12488:11:36", + "scope": 9992, + "src": "12488:11:50", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2002,10 +2002,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7221, + "id": 9969, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "12488:4:36", + "src": "12488:4:50", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2015,20 +2015,20 @@ "visibility": "internal" } ], - "src": "12473:27:36" + "src": "12473:27:50" }, "payable": false, "returnParameters": { - "id": 7226, + "id": 9974, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7225, + "id": 9973, "name": "", "nodeType": "VariableDeclaration", - "scope": 7244, - "src": "12525:7:36", + "scope": 9992, + "src": "12525:7:50", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2036,10 +2036,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 7224, + "id": 9972, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "12525:7:36", + "src": "12525:7:50", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2049,32 +2049,32 @@ "visibility": "internal" } ], - "src": "12524:9:36" + "src": "12524:9:50" }, - "scope": 7279, - "src": "12455:288:36", + "scope": 10027, + "src": "12455:288:50", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 7260, + "id": 10008, "nodeType": "Block", - "src": "12842:1320:36", + "src": "12842:1320:50", "statements": [ { "assignments": [ - 7254 + 10002 ], "declarations": [ { "constant": false, - "id": 7254, + "id": 10002, "name": "success", "nodeType": "VariableDeclaration", - "scope": 7261, - "src": "12852:12:36", + "scope": 10009, + "src": "12852:12:50", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2082,10 +2082,10 @@ "typeString": "bool" }, "typeName": { - "id": 7253, + "id": 10001, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "12852:4:36", + "src": "12852:4:50", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2095,18 +2095,18 @@ "visibility": "internal" } ], - "id": 7256, + "id": 10004, "initialValue": { "argumentTypes": null, "hexValue": "74727565", - "id": 7255, + "id": 10003, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "12867:4:36", + "src": "12867:4:50", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2115,93 +2115,93 @@ "value": "true" }, "nodeType": "VariableDeclarationStatement", - "src": "12852:19:36" + "src": "12852:19:50" }, { "externalReferences": [ { "_preBytes": { - "declaration": 7246, + "declaration": 9994, "isOffset": false, "isSlot": false, - "src": "12925:9:36", + "src": "12925:9:50", "valueSize": 1 } }, { "_postBytes": { - "declaration": 7248, + "declaration": 9996, "isOffset": false, "isSlot": false, - "src": "13036:10:36", + "src": "13036:10:50", "valueSize": 1 } }, { "_preBytes": { - "declaration": 7246, + "declaration": 9994, "isOffset": false, "isSlot": false, - "src": "13340:9:36", + "src": "13340:9:50", "valueSize": 1 } }, { "_postBytes": { - "declaration": 7248, + "declaration": 9996, "isOffset": false, "isSlot": false, - "src": "13457:10:36", + "src": "13457:10:50", "valueSize": 1 } }, { "success": { - "declaration": 7254, + "declaration": 10002, "isOffset": false, "isSlot": false, - "src": "13928:7:36", + "src": "13928:7:50", "valueSize": 1 } }, { "success": { - "declaration": 7254, + "declaration": 10002, "isOffset": false, "isSlot": false, - "src": "14095:7:36", + "src": "14095:7:50", "valueSize": 1 } } ], - "id": 7257, + "id": 10005, "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:36" + "src": "12882:1265:50" }, { "expression": { "argumentTypes": null, - "id": 7258, + "id": 10006, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7254, - "src": "14148:7:36", + "referencedDeclaration": 10002, + "src": "14148:7:50", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 7252, - "id": 7259, + "functionReturnParameters": 10000, + "id": 10007, "nodeType": "Return", - "src": "14141:14:36" + "src": "14141:14:50" } ] }, "documentation": null, - "id": 7261, + "id": 10009, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2209,16 +2209,16 @@ "name": "equal", "nodeType": "FunctionDefinition", "parameters": { - "id": 7249, + "id": 9997, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7246, + "id": 9994, "name": "_preBytes", "nodeType": "VariableDeclaration", - "scope": 7261, - "src": "12764:22:36", + "scope": 10009, + "src": "12764:22:50", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -2226,10 +2226,10 @@ "typeString": "bytes" }, "typeName": { - "id": 7245, + "id": 9993, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "12764:5:36", + "src": "12764:5:50", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2240,11 +2240,11 @@ }, { "constant": false, - "id": 7248, + "id": 9996, "name": "_postBytes", "nodeType": "VariableDeclaration", - "scope": 7261, - "src": "12788:23:36", + "scope": 10009, + "src": "12788:23:50", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -2252,10 +2252,10 @@ "typeString": "bytes" }, "typeName": { - "id": 7247, + "id": 9995, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "12788:5:36", + "src": "12788:5:50", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2265,20 +2265,20 @@ "visibility": "internal" } ], - "src": "12763:49:36" + "src": "12763:49:50" }, "payable": false, "returnParameters": { - "id": 7252, + "id": 10000, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7251, + "id": 9999, "name": "", "nodeType": "VariableDeclaration", - "scope": 7261, - "src": "12836:4:36", + "scope": 10009, + "src": "12836:4:50", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2286,10 +2286,10 @@ "typeString": "bool" }, "typeName": { - "id": 7250, + "id": 9998, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "12836:4:36", + "src": "12836:4:50", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2299,32 +2299,32 @@ "visibility": "internal" } ], - "src": "12835:6:36" + "src": "12835:6:50" }, - "scope": 7279, - "src": "12749:1413:36", + "scope": 10027, + "src": "12749:1413:50", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 7277, + "id": 10025, "nodeType": "Block", - "src": "14269:2556:36", + "src": "14269:2556:50", "statements": [ { "assignments": [ - 7271 + 10019 ], "declarations": [ { "constant": false, - "id": 7271, + "id": 10019, "name": "success", "nodeType": "VariableDeclaration", - "scope": 7278, - "src": "14279:12:36", + "scope": 10026, + "src": "14279:12:50", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2332,10 +2332,10 @@ "typeString": "bool" }, "typeName": { - "id": 7270, + "id": 10018, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "14279:4:36", + "src": "14279:4:50", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2345,18 +2345,18 @@ "visibility": "internal" } ], - "id": 7273, + "id": 10021, "initialValue": { "argumentTypes": null, "hexValue": "74727565", - "id": 7272, + "id": 10020, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "14294:4:36", + "src": "14294:4:50", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2365,111 +2365,111 @@ "value": "true" }, "nodeType": "VariableDeclarationStatement", - "src": "14279:19:36" + "src": "14279:19:50" }, { "externalReferences": [ { "_preBytes_slot": { - "declaration": 7263, + "declaration": 10011, "isOffset": false, "isSlot": true, - "src": "14396:14:36", + "src": "14396:14:50", "valueSize": 1 } }, { "_postBytes": { - "declaration": 7265, + "declaration": 10013, "isOffset": false, "isSlot": false, - "src": "14612:10:36", + "src": "14612:10:50", "valueSize": 1 } }, { "_postBytes": { - "declaration": 7265, + "declaration": 10013, "isOffset": false, "isSlot": false, - "src": "15317:10:36", + "src": "15317:10:50", "valueSize": 1 } }, { "success": { - "declaration": 7271, + "declaration": 10019, "isOffset": false, "isSlot": false, - "src": "16527:7:36", + "src": "16527:7:50", "valueSize": 1 } }, { "_postBytes": { - "declaration": 7265, + "declaration": 10013, "isOffset": false, "isSlot": false, - "src": "16007:10:36", + "src": "16007:10:50", "valueSize": 1 } }, { "success": { - "declaration": 7271, + "declaration": 10019, "isOffset": false, "isSlot": false, - "src": "15410:7:36", + "src": "15410:7:50", "valueSize": 1 } }, { "_preBytes_slot": { - "declaration": 7263, + "declaration": 10011, "isOffset": false, "isSlot": true, - "src": "15897:14:36", + "src": "15897:14:50", "valueSize": 1 } }, { "success": { - "declaration": 7271, + "declaration": 10019, "isOffset": false, "isSlot": false, - "src": "16758:7:36", + "src": "16758:7:50", "valueSize": 1 } } ], - "id": 7274, + "id": 10022, "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:36" + "src": "14309:2501:50" }, { "expression": { "argumentTypes": null, - "id": 7275, + "id": 10023, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7271, - "src": "16811:7:36", + "referencedDeclaration": 10019, + "src": "16811:7:50", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 7269, - "id": 7276, + "functionReturnParameters": 10017, + "id": 10024, "nodeType": "Return", - "src": "16804:14:36" + "src": "16804:14:50" } ] }, "documentation": null, - "id": 7278, + "id": 10026, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2477,16 +2477,16 @@ "name": "equalStorage", "nodeType": "FunctionDefinition", "parameters": { - "id": 7266, + "id": 10014, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7263, + "id": 10011, "name": "_preBytes", "nodeType": "VariableDeclaration", - "scope": 7278, - "src": "14190:23:36", + "scope": 10026, + "src": "14190:23:50", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { @@ -2494,10 +2494,10 @@ "typeString": "bytes" }, "typeName": { - "id": 7262, + "id": 10010, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "14190:5:36", + "src": "14190:5:50", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2508,11 +2508,11 @@ }, { "constant": false, - "id": 7265, + "id": 10013, "name": "_postBytes", "nodeType": "VariableDeclaration", - "scope": 7278, - "src": "14215:23:36", + "scope": 10026, + "src": "14215:23:50", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -2520,10 +2520,10 @@ "typeString": "bytes" }, "typeName": { - "id": 7264, + "id": 10012, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "14215:5:36", + "src": "14215:5:50", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2533,20 +2533,20 @@ "visibility": "internal" } ], - "src": "14189:50:36" + "src": "14189:50:50" }, "payable": false, "returnParameters": { - "id": 7269, + "id": 10017, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7268, + "id": 10016, "name": "", "nodeType": "VariableDeclaration", - "scope": 7278, - "src": "14263:4:36", + "scope": 10026, + "src": "14263:4:50", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2554,10 +2554,10 @@ "typeString": "bool" }, "typeName": { - "id": 7267, + "id": 10015, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "14263:4:36", + "src": "14263:4:50", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2567,33 +2567,33 @@ "visibility": "internal" } ], - "src": "14262:6:36" + "src": "14262:6:50" }, - "scope": 7279, - "src": "14168:2657:36", + "scope": 10027, + "src": "14168:2657:50", "stateMutability": "view", "superFunction": null, "visibility": "internal" } ], - "scope": 7280, - "src": "326:16501:36" + "scope": 10028, + "src": "326:16501:50" } ], - "src": "299:16529:36" + "src": "299:16529:50" }, "legacyAST": { "absolutePath": "solidity-bytes-utils/contracts/BytesLib.sol", "exportedSymbols": { "BytesLib": [ - 7279 + 10027 ] }, - "id": 7280, + "id": 10028, "nodeType": "SourceUnit", "nodes": [ { - "id": 7113, + "id": 9861, "literals": [ "solidity", "^", @@ -2601,7 +2601,7 @@ ".19" ], "nodeType": "PragmaDirective", - "src": "299:24:36" + "src": "299:24:50" }, { "baseContracts": [], @@ -2609,29 +2609,29 @@ "contractKind": "library", "documentation": null, "fullyImplemented": true, - "id": 7279, + "id": 10027, "linearizedBaseContracts": [ - 7279 + 10027 ], "name": "BytesLib", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 7128, + "id": 9876, "nodeType": "Block", - "src": "444:2804:36", + "src": "444:2804:50", "statements": [ { "assignments": [], "declarations": [ { "constant": false, - "id": 7123, + "id": 9871, "name": "tempBytes", "nodeType": "VariableDeclaration", - "scope": 7129, - "src": "454:22:36", + "scope": 9877, + "src": "454:22:50", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -2639,10 +2639,10 @@ "typeString": "bytes" }, "typeName": { - "id": 7122, + "id": 9870, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "454:5:36", + "src": "454:5:50", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2652,132 +2652,132 @@ "visibility": "internal" } ], - "id": 7124, + "id": 9872, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "454:22:36" + "src": "454:22:50" }, { "externalReferences": [ { "tempBytes": { - "declaration": 7123, + "declaration": 9871, "isOffset": false, "isSlot": false, - "src": "640:9:36", + "src": "640:9:50", "valueSize": 1 } }, { "_preBytes": { - "declaration": 7115, + "declaration": 9863, "isOffset": false, "isSlot": false, - "src": "816:9:36", + "src": "816:9:50", "valueSize": 1 } }, { "tempBytes": { - "declaration": 7123, + "declaration": 9871, "isOffset": false, "isSlot": false, - "src": "846:9:36", + "src": "846:9:50", "valueSize": 1 } }, { "_preBytes": { - "declaration": 7115, + "declaration": 9863, "isOffset": false, "isSlot": false, - "src": "1431:9:36", + "src": "1431:9:50", "valueSize": 1 } }, { "tempBytes": { - "declaration": 7123, + "declaration": 9871, "isOffset": false, "isSlot": false, - "src": "1088:9:36", + "src": "1088:9:50", "valueSize": 1 } }, { "_postBytes": { - "declaration": 7117, + "declaration": 9865, "isOffset": false, "isSlot": false, - "src": "2429:10:36", + "src": "2429:10:50", "valueSize": 1 } }, { "_postBytes": { - "declaration": 7117, + "declaration": 9865, "isOffset": false, "isSlot": false, - "src": "2011:10:36", + "src": "2011:10:50", "valueSize": 1 } }, { "tempBytes": { - "declaration": 7123, + "declaration": 9871, "isOffset": false, "isSlot": false, - "src": "2042:9:36", + "src": "2042:9:50", "valueSize": 1 } }, { "tempBytes": { - "declaration": 7123, + "declaration": 9871, "isOffset": false, "isSlot": false, - "src": "2071:9:36", + "src": "2071:9:50", "valueSize": 1 } }, { "_preBytes": { - "declaration": 7115, + "declaration": 9863, "isOffset": false, "isSlot": false, - "src": "3110:9:36", + "src": "3110:9:50", "valueSize": 1 } } ], - "id": 7125, + "id": 9873, "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:36" + "src": "487:2744:50" }, { "expression": { "argumentTypes": null, - "id": 7126, + "id": 9874, "name": "tempBytes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7123, - "src": "3232:9:36", + "referencedDeclaration": 9871, + "src": "3232:9:50", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "functionReturnParameters": 7121, - "id": 7127, + "functionReturnParameters": 9869, + "id": 9875, "nodeType": "Return", - "src": "3225:16:36" + "src": "3225:16:50" } ] }, "documentation": null, - "id": 7129, + "id": 9877, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2785,16 +2785,16 @@ "name": "concat", "nodeType": "FunctionDefinition", "parameters": { - "id": 7118, + "id": 9866, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7115, + "id": 9863, "name": "_preBytes", "nodeType": "VariableDeclaration", - "scope": 7129, - "src": "365:22:36", + "scope": 9877, + "src": "365:22:50", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -2802,10 +2802,10 @@ "typeString": "bytes" }, "typeName": { - "id": 7114, + "id": 9862, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "365:5:36", + "src": "365:5:50", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2816,11 +2816,11 @@ }, { "constant": false, - "id": 7117, + "id": 9865, "name": "_postBytes", "nodeType": "VariableDeclaration", - "scope": 7129, - "src": "389:23:36", + "scope": 9877, + "src": "389:23:50", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -2828,10 +2828,10 @@ "typeString": "bytes" }, "typeName": { - "id": 7116, + "id": 9864, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "389:5:36", + "src": "389:5:50", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2841,20 +2841,20 @@ "visibility": "internal" } ], - "src": "364:49:36" + "src": "364:49:50" }, "payable": false, "returnParameters": { - "id": 7121, + "id": 9869, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7120, + "id": 9868, "name": "", "nodeType": "VariableDeclaration", - "scope": 7129, - "src": "437:5:36", + "scope": 9877, + "src": "437:5:50", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2862,10 +2862,10 @@ "typeString": "bytes" }, "typeName": { - "id": 7119, + "id": 9867, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "437:5:36", + "src": "437:5:50", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2875,140 +2875,140 @@ "visibility": "internal" } ], - "src": "436:7:36" + "src": "436:7:50" }, - "scope": 7279, - "src": "349:2899:36", + "scope": 10027, + "src": "349:2899:50", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 7137, + "id": 9885, "nodeType": "Block", - "src": "3336:6032:36", + "src": "3336:6032:50", "statements": [ { "externalReferences": [ { "_preBytes_slot": { - "declaration": 7131, + "declaration": 9879, "isOffset": false, "isSlot": true, - "src": "3597:14:36", + "src": "3597:14:50", "valueSize": 1 } }, { "_postBytes": { - "declaration": 7133, + "declaration": 9881, "isOffset": false, "isSlot": false, - "src": "4215:10:36", + "src": "4215:10:50", "valueSize": 1 } }, { "_postBytes": { - "declaration": 7133, + "declaration": 9881, "isOffset": false, "isSlot": false, - "src": "7216:10:36", + "src": "7216:10:50", "valueSize": 1 } }, { "_postBytes": { - "declaration": 7133, + "declaration": 9881, "isOffset": false, "isSlot": false, - "src": "7165:10:36", + "src": "7165:10:50", "valueSize": 1 } }, { "_postBytes": { - "declaration": 7133, + "declaration": 9881, "isOffset": false, "isSlot": false, - "src": "8729:10:36", + "src": "8729:10:50", "valueSize": 1 } }, { "_postBytes": { - "declaration": 7133, + "declaration": 9881, "isOffset": false, "isSlot": false, - "src": "8780:10:36", + "src": "8780:10:50", "valueSize": 1 } }, { "_preBytes_slot": { - "declaration": 7131, + "declaration": 9879, "isOffset": false, "isSlot": true, - "src": "4891:14:36", + "src": "4891:14:50", "valueSize": 1 } }, { "_postBytes": { - "declaration": 7133, + "declaration": 9881, "isOffset": false, "isSlot": false, - "src": "5421:10:36", + "src": "5421:10:50", "valueSize": 1 } }, { "_preBytes_slot": { - "declaration": 7131, + "declaration": 9879, "isOffset": false, "isSlot": true, - "src": "6329:14:36", + "src": "6329:14:50", "valueSize": 1 } }, { "_preBytes_slot": { - "declaration": 7131, + "declaration": 9879, "isOffset": false, "isSlot": true, - "src": "6474:14:36", + "src": "6474:14:50", "valueSize": 1 } }, { "_preBytes_slot": { - "declaration": 7131, + "declaration": 9879, "isOffset": false, "isSlot": true, - "src": "8173:14:36", + "src": "8173:14:50", "valueSize": 1 } }, { "_preBytes_slot": { - "declaration": 7131, + "declaration": 9879, "isOffset": false, "isSlot": true, - "src": "8394:14:36", + "src": "8394:14:50", "valueSize": 1 } } ], - "id": 7136, + "id": 9884, "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:36" + "src": "3346:6022:50" } ] }, "documentation": null, - "id": 7138, + "id": 9886, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -3016,16 +3016,16 @@ "name": "concatStorage", "nodeType": "FunctionDefinition", "parameters": { - "id": 7134, + "id": 9882, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7131, + "id": 9879, "name": "_preBytes", "nodeType": "VariableDeclaration", - "scope": 7138, - "src": "3277:23:36", + "scope": 9886, + "src": "3277:23:50", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { @@ -3033,10 +3033,10 @@ "typeString": "bytes" }, "typeName": { - "id": 7130, + "id": 9878, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "3277:5:36", + "src": "3277:5:50", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -3047,11 +3047,11 @@ }, { "constant": false, - "id": 7133, + "id": 9881, "name": "_postBytes", "nodeType": "VariableDeclaration", - "scope": 7138, - "src": "3302:23:36", + "scope": 9886, + "src": "3302:23:50", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -3059,10 +3059,10 @@ "typeString": "bytes" }, "typeName": { - "id": 7132, + "id": 9880, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "3302:5:36", + "src": "3302:5:50", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -3072,26 +3072,26 @@ "visibility": "internal" } ], - "src": "3276:50:36" + "src": "3276:50:50" }, "payable": false, "returnParameters": { - "id": 7135, + "id": 9883, "nodeType": "ParameterList", "parameters": [], - "src": "3336:0:36" + "src": "3336:0:50" }, - "scope": 7279, - "src": "3254:6114:36", + "scope": 10027, + "src": "3254:6114:50", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 7165, + "id": 9913, "nodeType": "Block", - "src": "9461:2378:36", + "src": "9461:2378:50", "statements": [ { "expression": { @@ -3103,7 +3103,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 7156, + "id": 9904, "isConstant": false, "isLValue": false, "isPure": false, @@ -3112,18 +3112,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 7150, + "id": 9898, "name": "_bytes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7140, - "src": "9479:6:36", + "referencedDeclaration": 9888, + "src": "9479:6:50", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 7151, + "id": 9899, "isConstant": false, "isLValue": false, "isPure": false, @@ -3131,7 +3131,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "9479:13:36", + "src": "9479:13:50", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3148,19 +3148,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 7154, + "id": 9902, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 7152, + "id": 9900, "name": "_start", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7142, - "src": "9497:6:36", + "referencedDeclaration": 9890, + "src": "9497:6:50", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3170,38 +3170,38 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 7153, + "id": 9901, "name": "_length", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7144, - "src": "9506:7:36", + "referencedDeclaration": 9892, + "src": "9506:7:50", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9497:16:36", + "src": "9497:16:50", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 7155, + "id": 9903, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "9496:18:36", + "src": "9496:18:50", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9479:35:36", + "src": "9479:35:50", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3215,21 +3215,21 @@ "typeString": "bool" } ], - "id": 7149, + "id": 9897, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "9471:7:36", + "referencedDeclaration": 10045, + "src": "9471:7:50", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 7157, + "id": 9905, "isConstant": false, "isLValue": false, "isPure": false, @@ -3237,26 +3237,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9471:44:36", + "src": "9471:44:50", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 7158, + "id": 9906, "nodeType": "ExpressionStatement", - "src": "9471:44:36" + "src": "9471:44:50" }, { "assignments": [], "declarations": [ { "constant": false, - "id": 7160, + "id": 9908, "name": "tempBytes", "nodeType": "VariableDeclaration", - "scope": 7166, - "src": "9526:22:36", + "scope": 9914, + "src": "9526:22:50", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -3264,10 +3264,10 @@ "typeString": "bytes" }, "typeName": { - "id": 7159, + "id": 9907, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "9526:5:36", + "src": "9526:5:50", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -3277,141 +3277,141 @@ "visibility": "internal" } ], - "id": 7161, + "id": 9909, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "9526:22:36" + "src": "9526:22:50" }, { "externalReferences": [ { "tempBytes": { - "declaration": 7160, + "declaration": 9908, "isOffset": false, "isSlot": false, - "src": "11706:9:36", + "src": "11706:9:50", "valueSize": 1 } }, { "tempBytes": { - "declaration": 7160, + "declaration": 9908, "isOffset": false, "isSlot": false, - "src": "10800:9:36", + "src": "10800:9:50", "valueSize": 1 } }, { "_length": { - "declaration": 7144, + "declaration": 9892, "isOffset": false, "isSlot": false, - "src": "10888:7:36", + "src": "10888:7:50", "valueSize": 1 } }, { "tempBytes": { - "declaration": 7160, + "declaration": 9908, "isOffset": false, "isSlot": false, - "src": "9780:9:36", + "src": "9780:9:50", "valueSize": 1 } }, { "_length": { - "declaration": 7144, + "declaration": 9892, "isOffset": false, "isSlot": false, - "src": "10449:7:36", + "src": "10449:7:50", "valueSize": 1 } }, { "_length": { - "declaration": 7144, + "declaration": 9892, "isOffset": false, "isSlot": false, - "src": "9596:7:36", + "src": "9596:7:50", "valueSize": 1 } }, { "tempBytes": { - "declaration": 7160, + "declaration": 9908, "isOffset": false, "isSlot": false, - "src": "11364:9:36", + "src": "11364:9:50", "valueSize": 1 } }, { "_length": { - "declaration": 7144, + "declaration": 9892, "isOffset": false, "isSlot": false, - "src": "11375:7:36", + "src": "11375:7:50", "valueSize": 1 } }, { "_start": { - "declaration": 7142, + "declaration": 9890, "isOffset": false, "isSlot": false, - "src": "11140:6:36", + "src": "11140:6:50", "valueSize": 1 } }, { "_bytes": { - "declaration": 7140, + "declaration": 9888, "isOffset": false, "isSlot": false, - "src": "11089:6:36", + "src": "11089:6:50", "valueSize": 1 } }, { "tempBytes": { - "declaration": 7160, + "declaration": 9908, "isOffset": false, "isSlot": false, - "src": "11765:9:36", + "src": "11765:9:50", "valueSize": 1 } } ], - "id": 7162, + "id": 9910, "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:36" + "src": "9559:2263:50" }, { "expression": { "argumentTypes": null, - "id": 7163, + "id": 9911, "name": "tempBytes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7160, - "src": "11823:9:36", + "referencedDeclaration": 9908, + "src": "11823:9:50", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "functionReturnParameters": 7148, - "id": 7164, + "functionReturnParameters": 9896, + "id": 9912, "nodeType": "Return", - "src": "11816:16:36" + "src": "11816:16:50" } ] }, "documentation": null, - "id": 7166, + "id": 9914, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -3419,16 +3419,16 @@ "name": "slice", "nodeType": "FunctionDefinition", "parameters": { - "id": 7145, + "id": 9893, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7140, + "id": 9888, "name": "_bytes", "nodeType": "VariableDeclaration", - "scope": 7166, - "src": "9389:12:36", + "scope": 9914, + "src": "9389:12:50", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3436,10 +3436,10 @@ "typeString": "bytes" }, "typeName": { - "id": 7139, + "id": 9887, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "9389:5:36", + "src": "9389:5:50", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -3450,11 +3450,11 @@ }, { "constant": false, - "id": 7142, + "id": 9890, "name": "_start", "nodeType": "VariableDeclaration", - "scope": 7166, - "src": "9403:11:36", + "scope": 9914, + "src": "9403:11:50", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3462,10 +3462,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7141, + "id": 9889, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "9403:4:36", + "src": "9403:4:50", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3476,11 +3476,11 @@ }, { "constant": false, - "id": 7144, + "id": 9892, "name": "_length", "nodeType": "VariableDeclaration", - "scope": 7166, - "src": "9416:12:36", + "scope": 9914, + "src": "9416:12:50", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3488,10 +3488,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7143, + "id": 9891, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "9416:4:36", + "src": "9416:4:50", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3501,20 +3501,20 @@ "visibility": "internal" } ], - "src": "9388:41:36" + "src": "9388:41:50" }, "payable": false, "returnParameters": { - "id": 7148, + "id": 9896, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7147, + "id": 9895, "name": "", "nodeType": "VariableDeclaration", - "scope": 7166, - "src": "9454:5:36", + "scope": 9914, + "src": "9454:5:50", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3522,10 +3522,10 @@ "typeString": "bytes" }, "typeName": { - "id": 7146, + "id": 9894, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "9454:5:36", + "src": "9454:5:50", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -3535,19 +3535,19 @@ "visibility": "internal" } ], - "src": "9453:7:36" + "src": "9453:7:50" }, - "scope": 7279, - "src": "9374:2465:36", + "scope": 10027, + "src": "9374:2465:50", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 7191, + "id": 9939, "nodeType": "Block", - "src": "11924:243:36", + "src": "11924:243:50", "statements": [ { "expression": { @@ -3559,7 +3559,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 7182, + "id": 9930, "isConstant": false, "isLValue": false, "isPure": false, @@ -3568,18 +3568,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 7176, + "id": 9924, "name": "_bytes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7168, - "src": "11942:6:36", + "referencedDeclaration": 9916, + "src": "11942:6:50", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 7177, + "id": 9925, "isConstant": false, "isLValue": false, "isPure": false, @@ -3587,7 +3587,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "11942:13:36", + "src": "11942:13:50", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3604,19 +3604,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 7180, + "id": 9928, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 7178, + "id": 9926, "name": "_start", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7170, - "src": "11960:6:36", + "referencedDeclaration": 9918, + "src": "11960:6:50", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3627,14 +3627,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "3230", - "id": 7179, + "id": 9927, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11969:2:36", + "src": "11969:2:50", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_20_by_1", @@ -3642,27 +3642,27 @@ }, "value": "20" }, - "src": "11960:11:36", + "src": "11960:11:50", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 7181, + "id": 9929, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "11959:13:36", + "src": "11959:13:50", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "11942:30:36", + "src": "11942:30:50", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3676,21 +3676,21 @@ "typeString": "bool" } ], - "id": 7175, + "id": 9923, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "11934:7:36", + "referencedDeclaration": 10045, + "src": "11934:7:50", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 7183, + "id": 9931, "isConstant": false, "isLValue": false, "isPure": false, @@ -3698,26 +3698,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11934:39:36", + "src": "11934:39:50", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 7184, + "id": 9932, "nodeType": "ExpressionStatement", - "src": "11934:39:36" + "src": "11934:39:50" }, { "assignments": [], "declarations": [ { "constant": false, - "id": 7186, + "id": 9934, "name": "tempAddress", "nodeType": "VariableDeclaration", - "scope": 7192, - "src": "11983:19:36", + "scope": 9940, + "src": "11983:19:50", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3725,10 +3725,10 @@ "typeString": "address" }, "typeName": { - "id": 7185, + "id": 9933, "name": "address", "nodeType": "ElementaryTypeName", - "src": "11983:7:36", + "src": "11983:7:50", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3738,69 +3738,69 @@ "visibility": "internal" } ], - "id": 7187, + "id": 9935, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "11983:19:36" + "src": "11983:19:50" }, { "externalReferences": [ { "tempAddress": { - "declaration": 7186, + "declaration": 9934, "isOffset": false, "isSlot": false, - "src": "12036:11:36", + "src": "12036:11:50", "valueSize": 1 } }, { "_start": { - "declaration": 7170, + "declaration": 9918, "isOffset": false, "isSlot": false, - "src": "12084:6:36", + "src": "12084:6:50", "valueSize": 1 } }, { "_bytes": { - "declaration": 7168, + "declaration": 9916, "isOffset": false, "isSlot": false, - "src": "12069:6:36", + "src": "12069:6:50", "valueSize": 1 } } ], - "id": 7188, + "id": 9936, "nodeType": "InlineAssembly", "operations": "{\n tempAddress := div(mload(add(add(_bytes, 0x20), _start)), 0x1000000000000000000000000)\n}", - "src": "12013:135:36" + "src": "12013:135:50" }, { "expression": { "argumentTypes": null, - "id": 7189, + "id": 9937, "name": "tempAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7186, - "src": "12149:11:36", + "referencedDeclaration": 9934, + "src": "12149:11:50", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "functionReturnParameters": 7174, - "id": 7190, + "functionReturnParameters": 9922, + "id": 9938, "nodeType": "Return", - "src": "12142:18:36" + "src": "12142:18:50" } ] }, "documentation": null, - "id": 7192, + "id": 9940, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -3808,16 +3808,16 @@ "name": "toAddress", "nodeType": "FunctionDefinition", "parameters": { - "id": 7171, + "id": 9919, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7168, + "id": 9916, "name": "_bytes", "nodeType": "VariableDeclaration", - "scope": 7192, - "src": "11864:12:36", + "scope": 9940, + "src": "11864:12:50", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3825,10 +3825,10 @@ "typeString": "bytes" }, "typeName": { - "id": 7167, + "id": 9915, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "11864:5:36", + "src": "11864:5:50", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -3839,11 +3839,11 @@ }, { "constant": false, - "id": 7170, + "id": 9918, "name": "_start", "nodeType": "VariableDeclaration", - "scope": 7192, - "src": "11878:11:36", + "scope": 9940, + "src": "11878:11:50", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3851,10 +3851,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7169, + "id": 9917, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "11878:4:36", + "src": "11878:4:50", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3864,20 +3864,20 @@ "visibility": "internal" } ], - "src": "11863:27:36" + "src": "11863:27:50" }, "payable": false, "returnParameters": { - "id": 7174, + "id": 9922, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7173, + "id": 9921, "name": "", "nodeType": "VariableDeclaration", - "scope": 7192, - "src": "11915:7:36", + "scope": 9940, + "src": "11915:7:50", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3885,10 +3885,10 @@ "typeString": "address" }, "typeName": { - "id": 7172, + "id": 9920, "name": "address", "nodeType": "ElementaryTypeName", - "src": "11915:7:36", + "src": "11915:7:50", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3898,19 +3898,19 @@ "visibility": "internal" } ], - "src": "11914:9:36" + "src": "11914:9:50" }, - "scope": 7279, - "src": "11845:322:36", + "scope": 10027, + "src": "11845:322:50", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 7217, + "id": 9965, "nodeType": "Block", - "src": "12249:200:36", + "src": "12249:200:50", "statements": [ { "expression": { @@ -3922,7 +3922,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 7208, + "id": 9956, "isConstant": false, "isLValue": false, "isPure": false, @@ -3931,18 +3931,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 7202, + "id": 9950, "name": "_bytes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7194, - "src": "12267:6:36", + "referencedDeclaration": 9942, + "src": "12267:6:50", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 7203, + "id": 9951, "isConstant": false, "isLValue": false, "isPure": false, @@ -3950,7 +3950,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "12267:13:36", + "src": "12267:13:50", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3967,19 +3967,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 7206, + "id": 9954, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 7204, + "id": 9952, "name": "_start", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7196, - "src": "12285:6:36", + "referencedDeclaration": 9944, + "src": "12285:6:50", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3990,14 +3990,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "3332", - "id": 7205, + "id": 9953, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12294:2:36", + "src": "12294:2:50", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", @@ -4005,27 +4005,27 @@ }, "value": "32" }, - "src": "12285:11:36", + "src": "12285:11:50", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 7207, + "id": 9955, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "12284:13:36", + "src": "12284:13:50", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "12267:30:36", + "src": "12267:30:50", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4039,21 +4039,21 @@ "typeString": "bool" } ], - "id": 7201, + "id": 9949, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "12259:7:36", + "referencedDeclaration": 10045, + "src": "12259:7:50", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 7209, + "id": 9957, "isConstant": false, "isLValue": false, "isPure": false, @@ -4061,26 +4061,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12259:39:36", + "src": "12259:39:50", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 7210, + "id": 9958, "nodeType": "ExpressionStatement", - "src": "12259:39:36" + "src": "12259:39:50" }, { "assignments": [], "declarations": [ { "constant": false, - "id": 7212, + "id": 9960, "name": "tempUint", "nodeType": "VariableDeclaration", - "scope": 7218, - "src": "12308:16:36", + "scope": 9966, + "src": "12308:16:50", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4088,10 +4088,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7211, + "id": 9959, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "12308:7:36", + "src": "12308:7:50", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4101,69 +4101,69 @@ "visibility": "internal" } ], - "id": 7213, + "id": 9961, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "12308:16:36" + "src": "12308:16:50" }, { "externalReferences": [ { "_start": { - "declaration": 7196, + "declaration": 9944, "isOffset": false, "isSlot": false, - "src": "12399:6:36", + "src": "12399:6:50", "valueSize": 1 } }, { "tempUint": { - "declaration": 7212, + "declaration": 9960, "isOffset": false, "isSlot": false, - "src": "12358:8:36", + "src": "12358:8:50", "valueSize": 1 } }, { "_bytes": { - "declaration": 7194, + "declaration": 9942, "isOffset": false, "isSlot": false, - "src": "12384:6:36", + "src": "12384:6:50", "valueSize": 1 } } ], - "id": 7214, + "id": 9962, "nodeType": "InlineAssembly", "operations": "{\n tempUint := mload(add(add(_bytes, 0x20), _start))\n}", - "src": "12335:98:36" + "src": "12335:98:50" }, { "expression": { "argumentTypes": null, - "id": 7215, + "id": 9963, "name": "tempUint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7212, - "src": "12434:8:36", + "referencedDeclaration": 9960, + "src": "12434:8:50", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 7200, - "id": 7216, + "functionReturnParameters": 9948, + "id": 9964, "nodeType": "Return", - "src": "12427:15:36" + "src": "12427:15:50" } ] }, "documentation": null, - "id": 7218, + "id": 9966, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -4171,16 +4171,16 @@ "name": "toUint", "nodeType": "FunctionDefinition", "parameters": { - "id": 7197, + "id": 9945, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7194, + "id": 9942, "name": "_bytes", "nodeType": "VariableDeclaration", - "scope": 7218, - "src": "12189:12:36", + "scope": 9966, + "src": "12189:12:50", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4188,10 +4188,10 @@ "typeString": "bytes" }, "typeName": { - "id": 7193, + "id": 9941, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "12189:5:36", + "src": "12189:5:50", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -4202,11 +4202,11 @@ }, { "constant": false, - "id": 7196, + "id": 9944, "name": "_start", "nodeType": "VariableDeclaration", - "scope": 7218, - "src": "12203:11:36", + "scope": 9966, + "src": "12203:11:50", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4214,10 +4214,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7195, + "id": 9943, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "12203:4:36", + "src": "12203:4:50", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4227,20 +4227,20 @@ "visibility": "internal" } ], - "src": "12188:27:36" + "src": "12188:27:50" }, "payable": false, "returnParameters": { - "id": 7200, + "id": 9948, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7199, + "id": 9947, "name": "", "nodeType": "VariableDeclaration", - "scope": 7218, - "src": "12240:7:36", + "scope": 9966, + "src": "12240:7:50", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4248,10 +4248,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7198, + "id": 9946, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "12240:7:36", + "src": "12240:7:50", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4261,19 +4261,19 @@ "visibility": "internal" } ], - "src": "12239:9:36" + "src": "12239:9:50" }, - "scope": 7279, - "src": "12173:276:36", + "scope": 10027, + "src": "12173:276:50", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 7243, + "id": 9991, "nodeType": "Block", - "src": "12534:209:36", + "src": "12534:209:50", "statements": [ { "expression": { @@ -4285,7 +4285,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 7234, + "id": 9982, "isConstant": false, "isLValue": false, "isPure": false, @@ -4294,18 +4294,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 7228, + "id": 9976, "name": "_bytes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7220, - "src": "12552:6:36", + "referencedDeclaration": 9968, + "src": "12552:6:50", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 7229, + "id": 9977, "isConstant": false, "isLValue": false, "isPure": false, @@ -4313,7 +4313,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "12552:13:36", + "src": "12552:13:50", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4330,19 +4330,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 7232, + "id": 9980, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 7230, + "id": 9978, "name": "_start", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7222, - "src": "12570:6:36", + "referencedDeclaration": 9970, + "src": "12570:6:50", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4353,14 +4353,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "3332", - "id": 7231, + "id": 9979, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12579:2:36", + "src": "12579:2:50", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", @@ -4368,27 +4368,27 @@ }, "value": "32" }, - "src": "12570:11:36", + "src": "12570:11:50", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 7233, + "id": 9981, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "12569:13:36", + "src": "12569:13:50", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "12552:30:36", + "src": "12552:30:50", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4402,21 +4402,21 @@ "typeString": "bool" } ], - "id": 7227, + "id": 9975, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "12544:7:36", + "referencedDeclaration": 10045, + "src": "12544:7:50", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 7235, + "id": 9983, "isConstant": false, "isLValue": false, "isPure": false, @@ -4424,26 +4424,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12544:39:36", + "src": "12544:39:50", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 7236, + "id": 9984, "nodeType": "ExpressionStatement", - "src": "12544:39:36" + "src": "12544:39:50" }, { "assignments": [], "declarations": [ { "constant": false, - "id": 7238, + "id": 9986, "name": "tempBytes32", "nodeType": "VariableDeclaration", - "scope": 7244, - "src": "12593:19:36", + "scope": 9992, + "src": "12593:19:50", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4451,10 +4451,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 7237, + "id": 9985, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "12593:7:36", + "src": "12593:7:50", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4464,69 +4464,69 @@ "visibility": "internal" } ], - "id": 7239, + "id": 9987, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "12593:19:36" + "src": "12593:19:50" }, { "externalReferences": [ { "_start": { - "declaration": 7222, + "declaration": 9970, "isOffset": false, "isSlot": false, - "src": "12690:6:36", + "src": "12690:6:50", "valueSize": 1 } }, { "tempBytes32": { - "declaration": 7238, + "declaration": 9986, "isOffset": false, "isSlot": false, - "src": "12646:11:36", + "src": "12646:11:50", "valueSize": 1 } }, { "_bytes": { - "declaration": 7220, + "declaration": 9968, "isOffset": false, "isSlot": false, - "src": "12675:6:36", + "src": "12675:6:50", "valueSize": 1 } } ], - "id": 7240, + "id": 9988, "nodeType": "InlineAssembly", "operations": "{\n tempBytes32 := mload(add(add(_bytes, 0x20), _start))\n}", - "src": "12623:101:36" + "src": "12623:101:50" }, { "expression": { "argumentTypes": null, - "id": 7241, + "id": 9989, "name": "tempBytes32", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7238, - "src": "12725:11:36", + "referencedDeclaration": 9986, + "src": "12725:11:50", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "functionReturnParameters": 7226, - "id": 7242, + "functionReturnParameters": 9974, + "id": 9990, "nodeType": "Return", - "src": "12718:18:36" + "src": "12718:18:50" } ] }, "documentation": null, - "id": 7244, + "id": 9992, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -4534,16 +4534,16 @@ "name": "toBytes32", "nodeType": "FunctionDefinition", "parameters": { - "id": 7223, + "id": 9971, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7220, + "id": 9968, "name": "_bytes", "nodeType": "VariableDeclaration", - "scope": 7244, - "src": "12474:12:36", + "scope": 9992, + "src": "12474:12:50", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4551,10 +4551,10 @@ "typeString": "bytes" }, "typeName": { - "id": 7219, + "id": 9967, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "12474:5:36", + "src": "12474:5:50", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -4565,11 +4565,11 @@ }, { "constant": false, - "id": 7222, + "id": 9970, "name": "_start", "nodeType": "VariableDeclaration", - "scope": 7244, - "src": "12488:11:36", + "scope": 9992, + "src": "12488:11:50", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4577,10 +4577,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7221, + "id": 9969, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "12488:4:36", + "src": "12488:4:50", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4590,20 +4590,20 @@ "visibility": "internal" } ], - "src": "12473:27:36" + "src": "12473:27:50" }, "payable": false, "returnParameters": { - "id": 7226, + "id": 9974, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7225, + "id": 9973, "name": "", "nodeType": "VariableDeclaration", - "scope": 7244, - "src": "12525:7:36", + "scope": 9992, + "src": "12525:7:50", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4611,10 +4611,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 7224, + "id": 9972, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "12525:7:36", + "src": "12525:7:50", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4624,32 +4624,32 @@ "visibility": "internal" } ], - "src": "12524:9:36" + "src": "12524:9:50" }, - "scope": 7279, - "src": "12455:288:36", + "scope": 10027, + "src": "12455:288:50", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 7260, + "id": 10008, "nodeType": "Block", - "src": "12842:1320:36", + "src": "12842:1320:50", "statements": [ { "assignments": [ - 7254 + 10002 ], "declarations": [ { "constant": false, - "id": 7254, + "id": 10002, "name": "success", "nodeType": "VariableDeclaration", - "scope": 7261, - "src": "12852:12:36", + "scope": 10009, + "src": "12852:12:50", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4657,10 +4657,10 @@ "typeString": "bool" }, "typeName": { - "id": 7253, + "id": 10001, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "12852:4:36", + "src": "12852:4:50", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4670,18 +4670,18 @@ "visibility": "internal" } ], - "id": 7256, + "id": 10004, "initialValue": { "argumentTypes": null, "hexValue": "74727565", - "id": 7255, + "id": 10003, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "12867:4:36", + "src": "12867:4:50", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -4690,93 +4690,93 @@ "value": "true" }, "nodeType": "VariableDeclarationStatement", - "src": "12852:19:36" + "src": "12852:19:50" }, { "externalReferences": [ { "_preBytes": { - "declaration": 7246, + "declaration": 9994, "isOffset": false, "isSlot": false, - "src": "12925:9:36", + "src": "12925:9:50", "valueSize": 1 } }, { "_postBytes": { - "declaration": 7248, + "declaration": 9996, "isOffset": false, "isSlot": false, - "src": "13036:10:36", + "src": "13036:10:50", "valueSize": 1 } }, { "_preBytes": { - "declaration": 7246, + "declaration": 9994, "isOffset": false, "isSlot": false, - "src": "13340:9:36", + "src": "13340:9:50", "valueSize": 1 } }, { "_postBytes": { - "declaration": 7248, + "declaration": 9996, "isOffset": false, "isSlot": false, - "src": "13457:10:36", + "src": "13457:10:50", "valueSize": 1 } }, { "success": { - "declaration": 7254, + "declaration": 10002, "isOffset": false, "isSlot": false, - "src": "13928:7:36", + "src": "13928:7:50", "valueSize": 1 } }, { "success": { - "declaration": 7254, + "declaration": 10002, "isOffset": false, "isSlot": false, - "src": "14095:7:36", + "src": "14095:7:50", "valueSize": 1 } } ], - "id": 7257, + "id": 10005, "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:36" + "src": "12882:1265:50" }, { "expression": { "argumentTypes": null, - "id": 7258, + "id": 10006, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7254, - "src": "14148:7:36", + "referencedDeclaration": 10002, + "src": "14148:7:50", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 7252, - "id": 7259, + "functionReturnParameters": 10000, + "id": 10007, "nodeType": "Return", - "src": "14141:14:36" + "src": "14141:14:50" } ] }, "documentation": null, - "id": 7261, + "id": 10009, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -4784,16 +4784,16 @@ "name": "equal", "nodeType": "FunctionDefinition", "parameters": { - "id": 7249, + "id": 9997, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7246, + "id": 9994, "name": "_preBytes", "nodeType": "VariableDeclaration", - "scope": 7261, - "src": "12764:22:36", + "scope": 10009, + "src": "12764:22:50", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -4801,10 +4801,10 @@ "typeString": "bytes" }, "typeName": { - "id": 7245, + "id": 9993, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "12764:5:36", + "src": "12764:5:50", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -4815,11 +4815,11 @@ }, { "constant": false, - "id": 7248, + "id": 9996, "name": "_postBytes", "nodeType": "VariableDeclaration", - "scope": 7261, - "src": "12788:23:36", + "scope": 10009, + "src": "12788:23:50", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -4827,10 +4827,10 @@ "typeString": "bytes" }, "typeName": { - "id": 7247, + "id": 9995, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "12788:5:36", + "src": "12788:5:50", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -4840,20 +4840,20 @@ "visibility": "internal" } ], - "src": "12763:49:36" + "src": "12763:49:50" }, "payable": false, "returnParameters": { - "id": 7252, + "id": 10000, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7251, + "id": 9999, "name": "", "nodeType": "VariableDeclaration", - "scope": 7261, - "src": "12836:4:36", + "scope": 10009, + "src": "12836:4:50", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4861,10 +4861,10 @@ "typeString": "bool" }, "typeName": { - "id": 7250, + "id": 9998, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "12836:4:36", + "src": "12836:4:50", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4874,32 +4874,32 @@ "visibility": "internal" } ], - "src": "12835:6:36" + "src": "12835:6:50" }, - "scope": 7279, - "src": "12749:1413:36", + "scope": 10027, + "src": "12749:1413:50", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 7277, + "id": 10025, "nodeType": "Block", - "src": "14269:2556:36", + "src": "14269:2556:50", "statements": [ { "assignments": [ - 7271 + 10019 ], "declarations": [ { "constant": false, - "id": 7271, + "id": 10019, "name": "success", "nodeType": "VariableDeclaration", - "scope": 7278, - "src": "14279:12:36", + "scope": 10026, + "src": "14279:12:50", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4907,10 +4907,10 @@ "typeString": "bool" }, "typeName": { - "id": 7270, + "id": 10018, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "14279:4:36", + "src": "14279:4:50", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4920,18 +4920,18 @@ "visibility": "internal" } ], - "id": 7273, + "id": 10021, "initialValue": { "argumentTypes": null, "hexValue": "74727565", - "id": 7272, + "id": 10020, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "14294:4:36", + "src": "14294:4:50", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -4940,111 +4940,111 @@ "value": "true" }, "nodeType": "VariableDeclarationStatement", - "src": "14279:19:36" + "src": "14279:19:50" }, { "externalReferences": [ { "_preBytes_slot": { - "declaration": 7263, + "declaration": 10011, "isOffset": false, "isSlot": true, - "src": "14396:14:36", + "src": "14396:14:50", "valueSize": 1 } }, { "_postBytes": { - "declaration": 7265, + "declaration": 10013, "isOffset": false, "isSlot": false, - "src": "14612:10:36", + "src": "14612:10:50", "valueSize": 1 } }, { "_postBytes": { - "declaration": 7265, + "declaration": 10013, "isOffset": false, "isSlot": false, - "src": "15317:10:36", + "src": "15317:10:50", "valueSize": 1 } }, { "success": { - "declaration": 7271, + "declaration": 10019, "isOffset": false, "isSlot": false, - "src": "16527:7:36", + "src": "16527:7:50", "valueSize": 1 } }, { "_postBytes": { - "declaration": 7265, + "declaration": 10013, "isOffset": false, "isSlot": false, - "src": "16007:10:36", + "src": "16007:10:50", "valueSize": 1 } }, { "success": { - "declaration": 7271, + "declaration": 10019, "isOffset": false, "isSlot": false, - "src": "15410:7:36", + "src": "15410:7:50", "valueSize": 1 } }, { "_preBytes_slot": { - "declaration": 7263, + "declaration": 10011, "isOffset": false, "isSlot": true, - "src": "15897:14:36", + "src": "15897:14:50", "valueSize": 1 } }, { "success": { - "declaration": 7271, + "declaration": 10019, "isOffset": false, "isSlot": false, - "src": "16758:7:36", + "src": "16758:7:50", "valueSize": 1 } } ], - "id": 7274, + "id": 10022, "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:36" + "src": "14309:2501:50" }, { "expression": { "argumentTypes": null, - "id": 7275, + "id": 10023, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7271, - "src": "16811:7:36", + "referencedDeclaration": 10019, + "src": "16811:7:50", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 7269, - "id": 7276, + "functionReturnParameters": 10017, + "id": 10024, "nodeType": "Return", - "src": "16804:14:36" + "src": "16804:14:50" } ] }, "documentation": null, - "id": 7278, + "id": 10026, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -5052,16 +5052,16 @@ "name": "equalStorage", "nodeType": "FunctionDefinition", "parameters": { - "id": 7266, + "id": 10014, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7263, + "id": 10011, "name": "_preBytes", "nodeType": "VariableDeclaration", - "scope": 7278, - "src": "14190:23:36", + "scope": 10026, + "src": "14190:23:50", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { @@ -5069,10 +5069,10 @@ "typeString": "bytes" }, "typeName": { - "id": 7262, + "id": 10010, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "14190:5:36", + "src": "14190:5:50", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -5083,11 +5083,11 @@ }, { "constant": false, - "id": 7265, + "id": 10013, "name": "_postBytes", "nodeType": "VariableDeclaration", - "scope": 7278, - "src": "14215:23:36", + "scope": 10026, + "src": "14215:23:50", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -5095,10 +5095,10 @@ "typeString": "bytes" }, "typeName": { - "id": 7264, + "id": 10012, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "14215:5:36", + "src": "14215:5:50", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -5108,20 +5108,20 @@ "visibility": "internal" } ], - "src": "14189:50:36" + "src": "14189:50:50" }, "payable": false, "returnParameters": { - "id": 7269, + "id": 10017, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7268, + "id": 10016, "name": "", "nodeType": "VariableDeclaration", - "scope": 7278, - "src": "14263:4:36", + "scope": 10026, + "src": "14263:4:50", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5129,10 +5129,10 @@ "typeString": "bool" }, "typeName": { - "id": 7267, + "id": 10015, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "14263:4:36", + "src": "14263:4:50", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5142,20 +5142,20 @@ "visibility": "internal" } ], - "src": "14262:6:36" + "src": "14262:6:50" }, - "scope": 7279, - "src": "14168:2657:36", + "scope": 10027, + "src": "14168:2657:50", "stateMutability": "view", "superFunction": null, "visibility": "internal" } ], - "scope": 7280, - "src": "326:16501:36" + "scope": 10028, + "src": "326:16501:50" } ], - "src": "299:16529:36" + "src": "299:16529:50" }, "compiler": { "name": "solc", @@ -5163,5 +5163,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-02T11:52:56.804Z" + "updatedAt": "2018-10-22T07:56:01.699Z" } \ No newline at end of file diff --git a/build/contracts/DetailedERC20.json b/build/contracts/DetailedERC20.json index c3dab6d9..db7e92f6 100644 --- a/build/contracts/DetailedERC20.json +++ b/build/contracts/DetailedERC20.json @@ -246,14 +246,14 @@ "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/DetailedERC20.sol", "exportedSymbols": { "DetailedERC20": [ - 6974 + 9722 ] }, - "id": 6975, + "id": 9723, "nodeType": "SourceUnit", "nodes": [ { - "id": 6942, + "id": 9690, "literals": [ "solidity", "^", @@ -261,16 +261,16 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:32" + "src": "0:24:46" }, { "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", "file": "./ERC20.sol", - "id": 6943, + "id": 9691, "nodeType": "ImportDirective", - "scope": 6975, - "sourceUnit": 7018, - "src": "26:21:32", + "scope": 9723, + "sourceUnit": 9766, + "src": "26:21:46", "symbolAliases": [], "unitAlias": "" }, @@ -280,44 +280,44 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 6944, + "id": 9692, "name": "ERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7017, - "src": "309:5:32", + "referencedDeclaration": 9765, + "src": "309:5:46", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, - "id": 6945, + "id": 9693, "nodeType": "InheritanceSpecifier", - "src": "309:5:32" + "src": "309:5:46" } ], "contractDependencies": [ - 7017, - 7049 + 9765, + 9797 ], "contractKind": "contract", "documentation": "@title DetailedERC20 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": 6974, + "id": 9722, "linearizedBaseContracts": [ - 6974, - 7017, - 7049 + 9722, + 9765, + 9797 ], "name": "DetailedERC20", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 6947, + "id": 9695, "name": "name", "nodeType": "VariableDeclaration", - "scope": 6974, - "src": "319:18:32", + "scope": 9722, + "src": "319:18:46", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -325,10 +325,10 @@ "typeString": "string" }, "typeName": { - "id": 6946, + "id": 9694, "name": "string", "nodeType": "ElementaryTypeName", - "src": "319:6:32", + "src": "319:6:46", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -339,11 +339,11 @@ }, { "constant": false, - "id": 6949, + "id": 9697, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 6974, - "src": "341:20:32", + "scope": 9722, + "src": "341:20:46", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -351,10 +351,10 @@ "typeString": "string" }, "typeName": { - "id": 6948, + "id": 9696, "name": "string", "nodeType": "ElementaryTypeName", - "src": "341:6:32", + "src": "341:6:46", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -365,11 +365,11 @@ }, { "constant": false, - "id": 6951, + "id": 9699, "name": "decimals", "nodeType": "VariableDeclaration", - "scope": 6974, - "src": "365:21:32", + "scope": 9722, + "src": "365:21:46", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -377,10 +377,10 @@ "typeString": "uint8" }, "typeName": { - "id": 6950, + "id": 9698, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "365:5:32", + "src": "365:5:46", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -391,26 +391,26 @@ }, { "body": { - "id": 6972, + "id": 9720, "nodeType": "Block", - "src": "457:71:32", + "src": "457:71:46", "statements": [ { "expression": { "argumentTypes": null, - "id": 6962, + "id": 9710, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 6960, + "id": 9708, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6947, - "src": "463:4:32", + "referencedDeclaration": 9695, + "src": "463:4:46", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -420,43 +420,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 6961, + "id": 9709, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6953, - "src": "470:5:32", + "referencedDeclaration": 9701, + "src": "470:5:46", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, - "src": "463:12:32", + "src": "463:12:46", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 6963, + "id": 9711, "nodeType": "ExpressionStatement", - "src": "463:12:32" + "src": "463:12:46" }, { "expression": { "argumentTypes": null, - "id": 6966, + "id": 9714, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 6964, + "id": 9712, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6949, - "src": "481:6:32", + "referencedDeclaration": 9697, + "src": "481:6:46", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -466,43 +466,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 6965, + "id": 9713, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6955, - "src": "490:7:32", + "referencedDeclaration": 9703, + "src": "490:7:46", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, - "src": "481:16:32", + "src": "481:16:46", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 6967, + "id": 9715, "nodeType": "ExpressionStatement", - "src": "481:16:32" + "src": "481:16:46" }, { "expression": { "argumentTypes": null, - "id": 6970, + "id": 9718, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 6968, + "id": 9716, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6951, - "src": "503:8:32", + "referencedDeclaration": 9699, + "src": "503:8:46", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -512,31 +512,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 6969, + "id": 9717, "name": "_decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6957, - "src": "514:9:32", + "referencedDeclaration": 9705, + "src": "514:9:46", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "503:20:32", + "src": "503:20:46", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 6971, + "id": 9719, "nodeType": "ExpressionStatement", - "src": "503:20:32" + "src": "503:20:46" } ] }, "documentation": null, - "id": 6973, + "id": 9721, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -544,16 +544,16 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 6958, + "id": 9706, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6953, + "id": 9701, "name": "_name", "nodeType": "VariableDeclaration", - "scope": 6973, - "src": "403:12:32", + "scope": 9721, + "src": "403:12:46", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -561,10 +561,10 @@ "typeString": "string" }, "typeName": { - "id": 6952, + "id": 9700, "name": "string", "nodeType": "ElementaryTypeName", - "src": "403:6:32", + "src": "403:6:46", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -575,11 +575,11 @@ }, { "constant": false, - "id": 6955, + "id": 9703, "name": "_symbol", "nodeType": "VariableDeclaration", - "scope": 6973, - "src": "417:14:32", + "scope": 9721, + "src": "417:14:46", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -587,10 +587,10 @@ "typeString": "string" }, "typeName": { - "id": 6954, + "id": 9702, "name": "string", "nodeType": "ElementaryTypeName", - "src": "417:6:32", + "src": "417:6:46", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -601,11 +601,11 @@ }, { "constant": false, - "id": 6957, + "id": 9705, "name": "_decimals", "nodeType": "VariableDeclaration", - "scope": 6973, - "src": "433:15:32", + "scope": 9721, + "src": "433:15:46", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -613,10 +613,10 @@ "typeString": "uint8" }, "typeName": { - "id": 6956, + "id": 9704, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "433:5:32", + "src": "433:5:46", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -626,40 +626,40 @@ "visibility": "internal" } ], - "src": "402:47:32" + "src": "402:47:46" }, "payable": false, "returnParameters": { - "id": 6959, + "id": 9707, "nodeType": "ParameterList", "parameters": [], - "src": "457:0:32" + "src": "457:0:46" }, - "scope": 6974, - "src": "391:137:32", + "scope": 9722, + "src": "391:137:46", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 6975, - "src": "283:247:32" + "scope": 9723, + "src": "283:247:46" } ], - "src": "0:531:32" + "src": "0:531:46" }, "legacyAST": { "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/DetailedERC20.sol", "exportedSymbols": { "DetailedERC20": [ - 6974 + 9722 ] }, - "id": 6975, + "id": 9723, "nodeType": "SourceUnit", "nodes": [ { - "id": 6942, + "id": 9690, "literals": [ "solidity", "^", @@ -667,16 +667,16 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:32" + "src": "0:24:46" }, { "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", "file": "./ERC20.sol", - "id": 6943, + "id": 9691, "nodeType": "ImportDirective", - "scope": 6975, - "sourceUnit": 7018, - "src": "26:21:32", + "scope": 9723, + "sourceUnit": 9766, + "src": "26:21:46", "symbolAliases": [], "unitAlias": "" }, @@ -686,44 +686,44 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 6944, + "id": 9692, "name": "ERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7017, - "src": "309:5:32", + "referencedDeclaration": 9765, + "src": "309:5:46", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, - "id": 6945, + "id": 9693, "nodeType": "InheritanceSpecifier", - "src": "309:5:32" + "src": "309:5:46" } ], "contractDependencies": [ - 7017, - 7049 + 9765, + 9797 ], "contractKind": "contract", "documentation": "@title DetailedERC20 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": 6974, + "id": 9722, "linearizedBaseContracts": [ - 6974, - 7017, - 7049 + 9722, + 9765, + 9797 ], "name": "DetailedERC20", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 6947, + "id": 9695, "name": "name", "nodeType": "VariableDeclaration", - "scope": 6974, - "src": "319:18:32", + "scope": 9722, + "src": "319:18:46", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -731,10 +731,10 @@ "typeString": "string" }, "typeName": { - "id": 6946, + "id": 9694, "name": "string", "nodeType": "ElementaryTypeName", - "src": "319:6:32", + "src": "319:6:46", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -745,11 +745,11 @@ }, { "constant": false, - "id": 6949, + "id": 9697, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 6974, - "src": "341:20:32", + "scope": 9722, + "src": "341:20:46", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -757,10 +757,10 @@ "typeString": "string" }, "typeName": { - "id": 6948, + "id": 9696, "name": "string", "nodeType": "ElementaryTypeName", - "src": "341:6:32", + "src": "341:6:46", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -771,11 +771,11 @@ }, { "constant": false, - "id": 6951, + "id": 9699, "name": "decimals", "nodeType": "VariableDeclaration", - "scope": 6974, - "src": "365:21:32", + "scope": 9722, + "src": "365:21:46", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -783,10 +783,10 @@ "typeString": "uint8" }, "typeName": { - "id": 6950, + "id": 9698, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "365:5:32", + "src": "365:5:46", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -797,26 +797,26 @@ }, { "body": { - "id": 6972, + "id": 9720, "nodeType": "Block", - "src": "457:71:32", + "src": "457:71:46", "statements": [ { "expression": { "argumentTypes": null, - "id": 6962, + "id": 9710, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 6960, + "id": 9708, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6947, - "src": "463:4:32", + "referencedDeclaration": 9695, + "src": "463:4:46", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -826,43 +826,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 6961, + "id": 9709, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6953, - "src": "470:5:32", + "referencedDeclaration": 9701, + "src": "470:5:46", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, - "src": "463:12:32", + "src": "463:12:46", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 6963, + "id": 9711, "nodeType": "ExpressionStatement", - "src": "463:12:32" + "src": "463:12:46" }, { "expression": { "argumentTypes": null, - "id": 6966, + "id": 9714, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 6964, + "id": 9712, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6949, - "src": "481:6:32", + "referencedDeclaration": 9697, + "src": "481:6:46", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -872,43 +872,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 6965, + "id": 9713, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6955, - "src": "490:7:32", + "referencedDeclaration": 9703, + "src": "490:7:46", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, - "src": "481:16:32", + "src": "481:16:46", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 6967, + "id": 9715, "nodeType": "ExpressionStatement", - "src": "481:16:32" + "src": "481:16:46" }, { "expression": { "argumentTypes": null, - "id": 6970, + "id": 9718, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 6968, + "id": 9716, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6951, - "src": "503:8:32", + "referencedDeclaration": 9699, + "src": "503:8:46", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -918,31 +918,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 6969, + "id": 9717, "name": "_decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6957, - "src": "514:9:32", + "referencedDeclaration": 9705, + "src": "514:9:46", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "503:20:32", + "src": "503:20:46", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 6971, + "id": 9719, "nodeType": "ExpressionStatement", - "src": "503:20:32" + "src": "503:20:46" } ] }, "documentation": null, - "id": 6973, + "id": 9721, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -950,16 +950,16 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 6958, + "id": 9706, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6953, + "id": 9701, "name": "_name", "nodeType": "VariableDeclaration", - "scope": 6973, - "src": "403:12:32", + "scope": 9721, + "src": "403:12:46", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -967,10 +967,10 @@ "typeString": "string" }, "typeName": { - "id": 6952, + "id": 9700, "name": "string", "nodeType": "ElementaryTypeName", - "src": "403:6:32", + "src": "403:6:46", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -981,11 +981,11 @@ }, { "constant": false, - "id": 6955, + "id": 9703, "name": "_symbol", "nodeType": "VariableDeclaration", - "scope": 6973, - "src": "417:14:32", + "scope": 9721, + "src": "417:14:46", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -993,10 +993,10 @@ "typeString": "string" }, "typeName": { - "id": 6954, + "id": 9702, "name": "string", "nodeType": "ElementaryTypeName", - "src": "417:6:32", + "src": "417:6:46", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -1007,11 +1007,11 @@ }, { "constant": false, - "id": 6957, + "id": 9705, "name": "_decimals", "nodeType": "VariableDeclaration", - "scope": 6973, - "src": "433:15:32", + "scope": 9721, + "src": "433:15:46", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1019,10 +1019,10 @@ "typeString": "uint8" }, "typeName": { - "id": 6956, + "id": 9704, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "433:5:32", + "src": "433:5:46", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1032,27 +1032,27 @@ "visibility": "internal" } ], - "src": "402:47:32" + "src": "402:47:46" }, "payable": false, "returnParameters": { - "id": 6959, + "id": 9707, "nodeType": "ParameterList", "parameters": [], - "src": "457:0:32" + "src": "457:0:46" }, - "scope": 6974, - "src": "391:137:32", + "scope": 9722, + "src": "391:137:46", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 6975, - "src": "283:247:32" + "scope": 9723, + "src": "283:247:46" } ], - "src": "0:531:32" + "src": "0:531:46" }, "compiler": { "name": "solc", @@ -1060,5 +1060,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-02T11:52:56.773Z" + "updatedAt": "2018-10-22T07:56:01.693Z" } \ No newline at end of file diff --git a/build/contracts/ERC20.json b/build/contracts/ERC20.json index 01f1956a..d000d1ad 100644 --- a/build/contracts/ERC20.json +++ b/build/contracts/ERC20.json @@ -185,14 +185,14 @@ "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", "exportedSymbols": { "ERC20": [ - 7017 + 9765 ] }, - "id": 7018, + "id": 9766, "nodeType": "SourceUnit", "nodes": [ { - "id": 6976, + "id": 9724, "literals": [ "solidity", "^", @@ -200,16 +200,16 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:33" + "src": "0:24:47" }, { "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Basic.sol", "file": "./ERC20Basic.sol", - "id": 6977, + "id": 9725, "nodeType": "ImportDirective", - "scope": 7018, - "sourceUnit": 7050, - "src": "26:26:33", + "scope": 9766, + "sourceUnit": 9798, + "src": "26:26:47", "symbolAliases": [], "unitAlias": "" }, @@ -219,31 +219,31 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 6978, + "id": 9726, "name": "ERC20Basic", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7049, - "src": "162:10:33", + "referencedDeclaration": 9797, + "src": "162:10:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Basic_$7049", + "typeIdentifier": "t_contract$_ERC20Basic_$9797", "typeString": "contract ERC20Basic" } }, - "id": 6979, + "id": 9727, "nodeType": "InheritanceSpecifier", - "src": "162:10:33" + "src": "162:10:47" } ], "contractDependencies": [ - 7049 + 9797 ], "contractKind": "contract", "documentation": "@title ERC20 interface\n@dev see https://github.com/ethereum/EIPs/issues/20", "fullyImplemented": false, - "id": 7017, + "id": 9765, "linearizedBaseContracts": [ - 7017, - 7049 + 9765, + 9797 ], "name": "ERC20", "nodeType": "ContractDefinition", @@ -251,7 +251,7 @@ { "body": null, "documentation": null, - "id": 6988, + "id": 9736, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -259,16 +259,16 @@ "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 6984, + "id": 9732, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6981, + "id": 9729, "name": "_owner", "nodeType": "VariableDeclaration", - "scope": 6988, - "src": "196:14:33", + "scope": 9736, + "src": "196:14:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -276,10 +276,10 @@ "typeString": "address" }, "typeName": { - "id": 6980, + "id": 9728, "name": "address", "nodeType": "ElementaryTypeName", - "src": "196:7:33", + "src": "196:7:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -290,11 +290,11 @@ }, { "constant": false, - "id": 6983, + "id": 9731, "name": "_spender", "nodeType": "VariableDeclaration", - "scope": 6988, - "src": "212:16:33", + "scope": 9736, + "src": "212:16:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -302,10 +302,10 @@ "typeString": "address" }, "typeName": { - "id": 6982, + "id": 9730, "name": "address", "nodeType": "ElementaryTypeName", - "src": "212:7:33", + "src": "212:7:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -315,20 +315,20 @@ "visibility": "internal" } ], - "src": "195:34:33" + "src": "195:34:47" }, "payable": false, "returnParameters": { - "id": 6987, + "id": 9735, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6986, + "id": 9734, "name": "", "nodeType": "VariableDeclaration", - "scope": 6988, - "src": "255:7:33", + "scope": 9736, + "src": "255:7:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -336,10 +336,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6985, + "id": 9733, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "255:7:33", + "src": "255:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -349,10 +349,10 @@ "visibility": "internal" } ], - "src": "254:9:33" + "src": "254:9:47" }, - "scope": 7017, - "src": "177:87:33", + "scope": 9765, + "src": "177:87:47", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -360,7 +360,7 @@ { "body": null, "documentation": null, - "id": 6999, + "id": 9747, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -368,16 +368,16 @@ "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 6995, + "id": 9743, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6990, + "id": 9738, "name": "_from", "nodeType": "VariableDeclaration", - "scope": 6999, - "src": "290:13:33", + "scope": 9747, + "src": "290:13:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -385,10 +385,10 @@ "typeString": "address" }, "typeName": { - "id": 6989, + "id": 9737, "name": "address", "nodeType": "ElementaryTypeName", - "src": "290:7:33", + "src": "290:7:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -399,11 +399,11 @@ }, { "constant": false, - "id": 6992, + "id": 9740, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 6999, - "src": "305:11:33", + "scope": 9747, + "src": "305:11:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -411,10 +411,10 @@ "typeString": "address" }, "typeName": { - "id": 6991, + "id": 9739, "name": "address", "nodeType": "ElementaryTypeName", - "src": "305:7:33", + "src": "305:7:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -425,11 +425,11 @@ }, { "constant": false, - "id": 6994, + "id": 9742, "name": "_value", "nodeType": "VariableDeclaration", - "scope": 6999, - "src": "318:14:33", + "scope": 9747, + "src": "318:14:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -437,10 +437,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6993, + "id": 9741, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "318:7:33", + "src": "318:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -450,20 +450,20 @@ "visibility": "internal" } ], - "src": "289:44:33" + "src": "289:44:47" }, "payable": false, "returnParameters": { - "id": 6998, + "id": 9746, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6997, + "id": 9745, "name": "", "nodeType": "VariableDeclaration", - "scope": 6999, - "src": "354:4:33", + "scope": 9747, + "src": "354:4:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -471,10 +471,10 @@ "typeString": "bool" }, "typeName": { - "id": 6996, + "id": 9744, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "354:4:33", + "src": "354:4:47", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -484,10 +484,10 @@ "visibility": "internal" } ], - "src": "353:6:33" + "src": "353:6:47" }, - "scope": 7017, - "src": "268:92:33", + "scope": 9765, + "src": "268:92:47", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -495,7 +495,7 @@ { "body": null, "documentation": null, - "id": 7008, + "id": 9756, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -503,16 +503,16 @@ "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 7004, + "id": 9752, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7001, + "id": 9749, "name": "_spender", "nodeType": "VariableDeclaration", - "scope": 7008, - "src": "381:16:33", + "scope": 9756, + "src": "381:16:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -520,10 +520,10 @@ "typeString": "address" }, "typeName": { - "id": 7000, + "id": 9748, "name": "address", "nodeType": "ElementaryTypeName", - "src": "381:7:33", + "src": "381:7:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -534,11 +534,11 @@ }, { "constant": false, - "id": 7003, + "id": 9751, "name": "_value", "nodeType": "VariableDeclaration", - "scope": 7008, - "src": "399:14:33", + "scope": 9756, + "src": "399:14:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -546,10 +546,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7002, + "id": 9750, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "399:7:33", + "src": "399:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -559,20 +559,20 @@ "visibility": "internal" } ], - "src": "380:34:33" + "src": "380:34:47" }, "payable": false, "returnParameters": { - "id": 7007, + "id": 9755, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7006, + "id": 9754, "name": "", "nodeType": "VariableDeclaration", - "scope": 7008, - "src": "431:4:33", + "scope": 9756, + "src": "431:4:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -580,10 +580,10 @@ "typeString": "bool" }, "typeName": { - "id": 7005, + "id": 9753, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "431:4:33", + "src": "431:4:47", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -593,10 +593,10 @@ "visibility": "internal" } ], - "src": "430:6:33" + "src": "430:6:47" }, - "scope": 7017, - "src": "364:73:33", + "scope": 9765, + "src": "364:73:47", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -604,21 +604,21 @@ { "anonymous": false, "documentation": null, - "id": 7016, + "id": 9764, "name": "Approval", "nodeType": "EventDefinition", "parameters": { - "id": 7015, + "id": 9763, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7010, + "id": 9758, "indexed": true, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 7016, - "src": "460:21:33", + "scope": 9764, + "src": "460:21:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -626,10 +626,10 @@ "typeString": "address" }, "typeName": { - "id": 7009, + "id": 9757, "name": "address", "nodeType": "ElementaryTypeName", - "src": "460:7:33", + "src": "460:7:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -640,12 +640,12 @@ }, { "constant": false, - "id": 7012, + "id": 9760, "indexed": true, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 7016, - "src": "487:23:33", + "scope": 9764, + "src": "487:23:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -653,10 +653,10 @@ "typeString": "address" }, "typeName": { - "id": 7011, + "id": 9759, "name": "address", "nodeType": "ElementaryTypeName", - "src": "487:7:33", + "src": "487:7:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -667,12 +667,12 @@ }, { "constant": false, - "id": 7014, + "id": 9762, "indexed": false, "name": "value", "nodeType": "VariableDeclaration", - "scope": 7016, - "src": "516:13:33", + "scope": 9764, + "src": "516:13:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -680,10 +680,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7013, + "id": 9761, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "516:7:33", + "src": "516:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -693,29 +693,29 @@ "visibility": "internal" } ], - "src": "454:79:33" + "src": "454:79:47" }, - "src": "440:94:33" + "src": "440:94:47" } ], - "scope": 7018, - "src": "144:392:33" + "scope": 9766, + "src": "144:392:47" } ], - "src": "0:537:33" + "src": "0:537:47" }, "legacyAST": { "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", "exportedSymbols": { "ERC20": [ - 7017 + 9765 ] }, - "id": 7018, + "id": 9766, "nodeType": "SourceUnit", "nodes": [ { - "id": 6976, + "id": 9724, "literals": [ "solidity", "^", @@ -723,16 +723,16 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:33" + "src": "0:24:47" }, { "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Basic.sol", "file": "./ERC20Basic.sol", - "id": 6977, + "id": 9725, "nodeType": "ImportDirective", - "scope": 7018, - "sourceUnit": 7050, - "src": "26:26:33", + "scope": 9766, + "sourceUnit": 9798, + "src": "26:26:47", "symbolAliases": [], "unitAlias": "" }, @@ -742,31 +742,31 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 6978, + "id": 9726, "name": "ERC20Basic", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7049, - "src": "162:10:33", + "referencedDeclaration": 9797, + "src": "162:10:47", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Basic_$7049", + "typeIdentifier": "t_contract$_ERC20Basic_$9797", "typeString": "contract ERC20Basic" } }, - "id": 6979, + "id": 9727, "nodeType": "InheritanceSpecifier", - "src": "162:10:33" + "src": "162:10:47" } ], "contractDependencies": [ - 7049 + 9797 ], "contractKind": "contract", "documentation": "@title ERC20 interface\n@dev see https://github.com/ethereum/EIPs/issues/20", "fullyImplemented": false, - "id": 7017, + "id": 9765, "linearizedBaseContracts": [ - 7017, - 7049 + 9765, + 9797 ], "name": "ERC20", "nodeType": "ContractDefinition", @@ -774,7 +774,7 @@ { "body": null, "documentation": null, - "id": 6988, + "id": 9736, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -782,16 +782,16 @@ "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 6984, + "id": 9732, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6981, + "id": 9729, "name": "_owner", "nodeType": "VariableDeclaration", - "scope": 6988, - "src": "196:14:33", + "scope": 9736, + "src": "196:14:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -799,10 +799,10 @@ "typeString": "address" }, "typeName": { - "id": 6980, + "id": 9728, "name": "address", "nodeType": "ElementaryTypeName", - "src": "196:7:33", + "src": "196:7:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -813,11 +813,11 @@ }, { "constant": false, - "id": 6983, + "id": 9731, "name": "_spender", "nodeType": "VariableDeclaration", - "scope": 6988, - "src": "212:16:33", + "scope": 9736, + "src": "212:16:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -825,10 +825,10 @@ "typeString": "address" }, "typeName": { - "id": 6982, + "id": 9730, "name": "address", "nodeType": "ElementaryTypeName", - "src": "212:7:33", + "src": "212:7:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -838,20 +838,20 @@ "visibility": "internal" } ], - "src": "195:34:33" + "src": "195:34:47" }, "payable": false, "returnParameters": { - "id": 6987, + "id": 9735, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6986, + "id": 9734, "name": "", "nodeType": "VariableDeclaration", - "scope": 6988, - "src": "255:7:33", + "scope": 9736, + "src": "255:7:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -859,10 +859,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6985, + "id": 9733, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "255:7:33", + "src": "255:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -872,10 +872,10 @@ "visibility": "internal" } ], - "src": "254:9:33" + "src": "254:9:47" }, - "scope": 7017, - "src": "177:87:33", + "scope": 9765, + "src": "177:87:47", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -883,7 +883,7 @@ { "body": null, "documentation": null, - "id": 6999, + "id": 9747, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -891,16 +891,16 @@ "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 6995, + "id": 9743, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6990, + "id": 9738, "name": "_from", "nodeType": "VariableDeclaration", - "scope": 6999, - "src": "290:13:33", + "scope": 9747, + "src": "290:13:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -908,10 +908,10 @@ "typeString": "address" }, "typeName": { - "id": 6989, + "id": 9737, "name": "address", "nodeType": "ElementaryTypeName", - "src": "290:7:33", + "src": "290:7:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -922,11 +922,11 @@ }, { "constant": false, - "id": 6992, + "id": 9740, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 6999, - "src": "305:11:33", + "scope": 9747, + "src": "305:11:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -934,10 +934,10 @@ "typeString": "address" }, "typeName": { - "id": 6991, + "id": 9739, "name": "address", "nodeType": "ElementaryTypeName", - "src": "305:7:33", + "src": "305:7:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -948,11 +948,11 @@ }, { "constant": false, - "id": 6994, + "id": 9742, "name": "_value", "nodeType": "VariableDeclaration", - "scope": 6999, - "src": "318:14:33", + "scope": 9747, + "src": "318:14:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -960,10 +960,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6993, + "id": 9741, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "318:7:33", + "src": "318:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -973,20 +973,20 @@ "visibility": "internal" } ], - "src": "289:44:33" + "src": "289:44:47" }, "payable": false, "returnParameters": { - "id": 6998, + "id": 9746, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6997, + "id": 9745, "name": "", "nodeType": "VariableDeclaration", - "scope": 6999, - "src": "354:4:33", + "scope": 9747, + "src": "354:4:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -994,10 +994,10 @@ "typeString": "bool" }, "typeName": { - "id": 6996, + "id": 9744, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "354:4:33", + "src": "354:4:47", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1007,10 +1007,10 @@ "visibility": "internal" } ], - "src": "353:6:33" + "src": "353:6:47" }, - "scope": 7017, - "src": "268:92:33", + "scope": 9765, + "src": "268:92:47", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -1018,7 +1018,7 @@ { "body": null, "documentation": null, - "id": 7008, + "id": 9756, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -1026,16 +1026,16 @@ "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 7004, + "id": 9752, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7001, + "id": 9749, "name": "_spender", "nodeType": "VariableDeclaration", - "scope": 7008, - "src": "381:16:33", + "scope": 9756, + "src": "381:16:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1043,10 +1043,10 @@ "typeString": "address" }, "typeName": { - "id": 7000, + "id": 9748, "name": "address", "nodeType": "ElementaryTypeName", - "src": "381:7:33", + "src": "381:7:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1057,11 +1057,11 @@ }, { "constant": false, - "id": 7003, + "id": 9751, "name": "_value", "nodeType": "VariableDeclaration", - "scope": 7008, - "src": "399:14:33", + "scope": 9756, + "src": "399:14:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1069,10 +1069,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7002, + "id": 9750, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "399:7:33", + "src": "399:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1082,20 +1082,20 @@ "visibility": "internal" } ], - "src": "380:34:33" + "src": "380:34:47" }, "payable": false, "returnParameters": { - "id": 7007, + "id": 9755, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7006, + "id": 9754, "name": "", "nodeType": "VariableDeclaration", - "scope": 7008, - "src": "431:4:33", + "scope": 9756, + "src": "431:4:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1103,10 +1103,10 @@ "typeString": "bool" }, "typeName": { - "id": 7005, + "id": 9753, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "431:4:33", + "src": "431:4:47", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1116,10 +1116,10 @@ "visibility": "internal" } ], - "src": "430:6:33" + "src": "430:6:47" }, - "scope": 7017, - "src": "364:73:33", + "scope": 9765, + "src": "364:73:47", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -1127,21 +1127,21 @@ { "anonymous": false, "documentation": null, - "id": 7016, + "id": 9764, "name": "Approval", "nodeType": "EventDefinition", "parameters": { - "id": 7015, + "id": 9763, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7010, + "id": 9758, "indexed": true, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 7016, - "src": "460:21:33", + "scope": 9764, + "src": "460:21:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1149,10 +1149,10 @@ "typeString": "address" }, "typeName": { - "id": 7009, + "id": 9757, "name": "address", "nodeType": "ElementaryTypeName", - "src": "460:7:33", + "src": "460:7:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1163,12 +1163,12 @@ }, { "constant": false, - "id": 7012, + "id": 9760, "indexed": true, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 7016, - "src": "487:23:33", + "scope": 9764, + "src": "487:23:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1176,10 +1176,10 @@ "typeString": "address" }, "typeName": { - "id": 7011, + "id": 9759, "name": "address", "nodeType": "ElementaryTypeName", - "src": "487:7:33", + "src": "487:7:47", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1190,12 +1190,12 @@ }, { "constant": false, - "id": 7014, + "id": 9762, "indexed": false, "name": "value", "nodeType": "VariableDeclaration", - "scope": 7016, - "src": "516:13:33", + "scope": 9764, + "src": "516:13:47", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1203,10 +1203,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7013, + "id": 9761, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "516:7:33", + "src": "516:7:47", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1216,16 +1216,16 @@ "visibility": "internal" } ], - "src": "454:79:33" + "src": "454:79:47" }, - "src": "440:94:33" + "src": "440:94:47" } ], - "scope": 7018, - "src": "144:392:33" + "scope": 9766, + "src": "144:392:47" } ], - "src": "0:537:33" + "src": "0:537:47" }, "compiler": { "name": "solc", @@ -1233,5 +1233,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-02T11:52:56.786Z" + "updatedAt": "2018-10-22T07:56:01.695Z" } \ No newline at end of file diff --git a/build/contracts/ERC20Basic.json b/build/contracts/ERC20Basic.json index 260535d8..8c892ddc 100644 --- a/build/contracts/ERC20Basic.json +++ b/build/contracts/ERC20Basic.json @@ -90,14 +90,14 @@ "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Basic.sol", "exportedSymbols": { "ERC20Basic": [ - 7049 + 9797 ] }, - "id": 7050, + "id": 9798, "nodeType": "SourceUnit", "nodes": [ { - "id": 7019, + "id": 9767, "literals": [ "solidity", "^", @@ -105,7 +105,7 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:34" + "src": "0:24:48" }, { "baseContracts": [], @@ -113,9 +113,9 @@ "contractKind": "contract", "documentation": "@title ERC20Basic\n@dev Simpler version of ERC20 interface\nSee https://github.com/ethereum/EIPs/issues/179", "fullyImplemented": false, - "id": 7049, + "id": 9797, "linearizedBaseContracts": [ - 7049 + 9797 ], "name": "ERC20Basic", "nodeType": "ContractDefinition", @@ -123,7 +123,7 @@ { "body": null, "documentation": null, - "id": 7024, + "id": 9772, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -131,23 +131,23 @@ "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { - "id": 7020, + "id": 9768, "nodeType": "ParameterList", "parameters": [], - "src": "194:2:34" + "src": "194:2:48" }, "payable": false, "returnParameters": { - "id": 7023, + "id": 9771, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7022, + "id": 9770, "name": "", "nodeType": "VariableDeclaration", - "scope": 7024, - "src": "218:7:34", + "scope": 9772, + "src": "218:7:48", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -155,10 +155,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7021, + "id": 9769, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "218:7:34", + "src": "218:7:48", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -168,10 +168,10 @@ "visibility": "internal" } ], - "src": "217:9:34" + "src": "217:9:48" }, - "scope": 7049, - "src": "174:53:34", + "scope": 9797, + "src": "174:53:48", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -179,7 +179,7 @@ { "body": null, "documentation": null, - "id": 7031, + "id": 9779, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -187,16 +187,16 @@ "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 7027, + "id": 9775, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7026, + "id": 9774, "name": "_who", "nodeType": "VariableDeclaration", - "scope": 7031, - "src": "249:12:34", + "scope": 9779, + "src": "249:12:48", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -204,10 +204,10 @@ "typeString": "address" }, "typeName": { - "id": 7025, + "id": 9773, "name": "address", "nodeType": "ElementaryTypeName", - "src": "249:7:34", + "src": "249:7:48", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -217,20 +217,20 @@ "visibility": "internal" } ], - "src": "248:14:34" + "src": "248:14:48" }, "payable": false, "returnParameters": { - "id": 7030, + "id": 9778, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7029, + "id": 9777, "name": "", "nodeType": "VariableDeclaration", - "scope": 7031, - "src": "284:7:34", + "scope": 9779, + "src": "284:7:48", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -238,10 +238,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7028, + "id": 9776, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "284:7:34", + "src": "284:7:48", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -251,10 +251,10 @@ "visibility": "internal" } ], - "src": "283:9:34" + "src": "283:9:48" }, - "scope": 7049, - "src": "230:63:34", + "scope": 9797, + "src": "230:63:48", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -262,7 +262,7 @@ { "body": null, "documentation": null, - "id": 7040, + "id": 9788, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -270,16 +270,16 @@ "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 7036, + "id": 9784, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7033, + "id": 9781, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 7040, - "src": "314:11:34", + "scope": 9788, + "src": "314:11:48", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -287,10 +287,10 @@ "typeString": "address" }, "typeName": { - "id": 7032, + "id": 9780, "name": "address", "nodeType": "ElementaryTypeName", - "src": "314:7:34", + "src": "314:7:48", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -301,11 +301,11 @@ }, { "constant": false, - "id": 7035, + "id": 9783, "name": "_value", "nodeType": "VariableDeclaration", - "scope": 7040, - "src": "327:14:34", + "scope": 9788, + "src": "327:14:48", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -313,10 +313,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7034, + "id": 9782, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "327:7:34", + "src": "327:7:48", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -326,20 +326,20 @@ "visibility": "internal" } ], - "src": "313:29:34" + "src": "313:29:48" }, "payable": false, "returnParameters": { - "id": 7039, + "id": 9787, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7038, + "id": 9786, "name": "", "nodeType": "VariableDeclaration", - "scope": 7040, - "src": "359:4:34", + "scope": 9788, + "src": "359:4:48", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -347,10 +347,10 @@ "typeString": "bool" }, "typeName": { - "id": 7037, + "id": 9785, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "359:4:34", + "src": "359:4:48", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -360,10 +360,10 @@ "visibility": "internal" } ], - "src": "358:6:34" + "src": "358:6:48" }, - "scope": 7049, - "src": "296:69:34", + "scope": 9797, + "src": "296:69:48", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -371,21 +371,21 @@ { "anonymous": false, "documentation": null, - "id": 7048, + "id": 9796, "name": "Transfer", "nodeType": "EventDefinition", "parameters": { - "id": 7047, + "id": 9795, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7042, + "id": 9790, "indexed": true, "name": "from", "nodeType": "VariableDeclaration", - "scope": 7048, - "src": "383:20:34", + "scope": 9796, + "src": "383:20:48", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -393,10 +393,10 @@ "typeString": "address" }, "typeName": { - "id": 7041, + "id": 9789, "name": "address", "nodeType": "ElementaryTypeName", - "src": "383:7:34", + "src": "383:7:48", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -407,12 +407,12 @@ }, { "constant": false, - "id": 7044, + "id": 9792, "indexed": true, "name": "to", "nodeType": "VariableDeclaration", - "scope": 7048, - "src": "405:18:34", + "scope": 9796, + "src": "405:18:48", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -420,10 +420,10 @@ "typeString": "address" }, "typeName": { - "id": 7043, + "id": 9791, "name": "address", "nodeType": "ElementaryTypeName", - "src": "405:7:34", + "src": "405:7:48", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -434,12 +434,12 @@ }, { "constant": false, - "id": 7046, + "id": 9794, "indexed": false, "name": "value", "nodeType": "VariableDeclaration", - "scope": 7048, - "src": "425:13:34", + "scope": 9796, + "src": "425:13:48", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -447,10 +447,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7045, + "id": 9793, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "425:7:34", + "src": "425:7:48", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -460,29 +460,29 @@ "visibility": "internal" } ], - "src": "382:57:34" + "src": "382:57:48" }, - "src": "368:72:34" + "src": "368:72:48" } ], - "scope": 7050, - "src": "150:292:34" + "scope": 9798, + "src": "150:292:48" } ], - "src": "0:443:34" + "src": "0:443:48" }, "legacyAST": { "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Basic.sol", "exportedSymbols": { "ERC20Basic": [ - 7049 + 9797 ] }, - "id": 7050, + "id": 9798, "nodeType": "SourceUnit", "nodes": [ { - "id": 7019, + "id": 9767, "literals": [ "solidity", "^", @@ -490,7 +490,7 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:34" + "src": "0:24:48" }, { "baseContracts": [], @@ -498,9 +498,9 @@ "contractKind": "contract", "documentation": "@title ERC20Basic\n@dev Simpler version of ERC20 interface\nSee https://github.com/ethereum/EIPs/issues/179", "fullyImplemented": false, - "id": 7049, + "id": 9797, "linearizedBaseContracts": [ - 7049 + 9797 ], "name": "ERC20Basic", "nodeType": "ContractDefinition", @@ -508,7 +508,7 @@ { "body": null, "documentation": null, - "id": 7024, + "id": 9772, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -516,23 +516,23 @@ "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { - "id": 7020, + "id": 9768, "nodeType": "ParameterList", "parameters": [], - "src": "194:2:34" + "src": "194:2:48" }, "payable": false, "returnParameters": { - "id": 7023, + "id": 9771, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7022, + "id": 9770, "name": "", "nodeType": "VariableDeclaration", - "scope": 7024, - "src": "218:7:34", + "scope": 9772, + "src": "218:7:48", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -540,10 +540,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7021, + "id": 9769, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "218:7:34", + "src": "218:7:48", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -553,10 +553,10 @@ "visibility": "internal" } ], - "src": "217:9:34" + "src": "217:9:48" }, - "scope": 7049, - "src": "174:53:34", + "scope": 9797, + "src": "174:53:48", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -564,7 +564,7 @@ { "body": null, "documentation": null, - "id": 7031, + "id": 9779, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -572,16 +572,16 @@ "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 7027, + "id": 9775, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7026, + "id": 9774, "name": "_who", "nodeType": "VariableDeclaration", - "scope": 7031, - "src": "249:12:34", + "scope": 9779, + "src": "249:12:48", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -589,10 +589,10 @@ "typeString": "address" }, "typeName": { - "id": 7025, + "id": 9773, "name": "address", "nodeType": "ElementaryTypeName", - "src": "249:7:34", + "src": "249:7:48", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -602,20 +602,20 @@ "visibility": "internal" } ], - "src": "248:14:34" + "src": "248:14:48" }, "payable": false, "returnParameters": { - "id": 7030, + "id": 9778, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7029, + "id": 9777, "name": "", "nodeType": "VariableDeclaration", - "scope": 7031, - "src": "284:7:34", + "scope": 9779, + "src": "284:7:48", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -623,10 +623,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7028, + "id": 9776, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "284:7:34", + "src": "284:7:48", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -636,10 +636,10 @@ "visibility": "internal" } ], - "src": "283:9:34" + "src": "283:9:48" }, - "scope": 7049, - "src": "230:63:34", + "scope": 9797, + "src": "230:63:48", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -647,7 +647,7 @@ { "body": null, "documentation": null, - "id": 7040, + "id": 9788, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -655,16 +655,16 @@ "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 7036, + "id": 9784, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7033, + "id": 9781, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 7040, - "src": "314:11:34", + "scope": 9788, + "src": "314:11:48", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -672,10 +672,10 @@ "typeString": "address" }, "typeName": { - "id": 7032, + "id": 9780, "name": "address", "nodeType": "ElementaryTypeName", - "src": "314:7:34", + "src": "314:7:48", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -686,11 +686,11 @@ }, { "constant": false, - "id": 7035, + "id": 9783, "name": "_value", "nodeType": "VariableDeclaration", - "scope": 7040, - "src": "327:14:34", + "scope": 9788, + "src": "327:14:48", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -698,10 +698,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7034, + "id": 9782, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "327:7:34", + "src": "327:7:48", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -711,20 +711,20 @@ "visibility": "internal" } ], - "src": "313:29:34" + "src": "313:29:48" }, "payable": false, "returnParameters": { - "id": 7039, + "id": 9787, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7038, + "id": 9786, "name": "", "nodeType": "VariableDeclaration", - "scope": 7040, - "src": "359:4:34", + "scope": 9788, + "src": "359:4:48", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -732,10 +732,10 @@ "typeString": "bool" }, "typeName": { - "id": 7037, + "id": 9785, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "359:4:34", + "src": "359:4:48", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -745,10 +745,10 @@ "visibility": "internal" } ], - "src": "358:6:34" + "src": "358:6:48" }, - "scope": 7049, - "src": "296:69:34", + "scope": 9797, + "src": "296:69:48", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" @@ -756,21 +756,21 @@ { "anonymous": false, "documentation": null, - "id": 7048, + "id": 9796, "name": "Transfer", "nodeType": "EventDefinition", "parameters": { - "id": 7047, + "id": 9795, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7042, + "id": 9790, "indexed": true, "name": "from", "nodeType": "VariableDeclaration", - "scope": 7048, - "src": "383:20:34", + "scope": 9796, + "src": "383:20:48", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -778,10 +778,10 @@ "typeString": "address" }, "typeName": { - "id": 7041, + "id": 9789, "name": "address", "nodeType": "ElementaryTypeName", - "src": "383:7:34", + "src": "383:7:48", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -792,12 +792,12 @@ }, { "constant": false, - "id": 7044, + "id": 9792, "indexed": true, "name": "to", "nodeType": "VariableDeclaration", - "scope": 7048, - "src": "405:18:34", + "scope": 9796, + "src": "405:18:48", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -805,10 +805,10 @@ "typeString": "address" }, "typeName": { - "id": 7043, + "id": 9791, "name": "address", "nodeType": "ElementaryTypeName", - "src": "405:7:34", + "src": "405:7:48", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -819,12 +819,12 @@ }, { "constant": false, - "id": 7046, + "id": 9794, "indexed": false, "name": "value", "nodeType": "VariableDeclaration", - "scope": 7048, - "src": "425:13:34", + "scope": 9796, + "src": "425:13:48", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -832,10 +832,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7045, + "id": 9793, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "425:7:34", + "src": "425:7:48", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -845,16 +845,16 @@ "visibility": "internal" } ], - "src": "382:57:34" + "src": "382:57:48" }, - "src": "368:72:34" + "src": "368:72:48" } ], - "scope": 7050, - "src": "150:292:34" + "scope": 9798, + "src": "150:292:48" } ], - "src": "0:443:34" + "src": "0:443:48" }, "compiler": { "name": "solc", @@ -862,5 +862,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-02T11:52:56.788Z" + "updatedAt": "2018-10-22T07:56:01.695Z" } \ No newline at end of file diff --git a/build/contracts/FundAccount.json b/build/contracts/FundAccount.json new file mode 100644 index 00000000..3f38f206 --- /dev/null +++ b/build/contracts/FundAccount.json @@ -0,0 +1,4040 @@ +{ + "contractName": "FundAccount", + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "_account", + "type": "FundAccount.Account storage" + } + ], + "name": "symbolsList", + "outputs": [ + { + "name": "", + "type": "bytes32[]" + } + ], + "payable": false, + "stateMutability": "view", + "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", + "sourcePath": "/home/circleci/code/contracts/libs/FundAccount.sol", + "ast": { + "absolutePath": "/home/circleci/code/contracts/libs/FundAccount.sol", + "exportedSymbols": { + "FundAccount": [ + 4841 + ] + }, + "id": 4842, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4682, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:11" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", + "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", + "id": 4683, + "nodeType": "ImportDirective", + "scope": 4842, + "sourceUnit": 9603, + "src": "26:59:11", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 4841, + "linearizedBaseContracts": [ + 4841 + ], + "name": "FundAccount", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 4686, + "libraryName": { + "contractScope": null, + "id": 4684, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9602, + "src": "119:8:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$9602", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "113:24:11", + "typeName": { + "id": 4685, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "132:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "canonicalName": "FundAccount.Account", + "id": 4698, + "members": [ + { + "constant": false, + "id": 4689, + "name": "_symbolsList", + "nodeType": "VariableDeclaration", + "scope": 4698, + "src": "168:22:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 4687, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "168:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 4688, + "length": null, + "nodeType": "ArrayTypeName", + "src": "168:9:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4693, + "name": "symbols", + "nodeType": "VariableDeclaration", + "scope": 4698, + "src": "200:35:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" + }, + "typeName": { + "id": 4692, + "keyType": { + "id": 4690, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "210:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "200:27:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" + }, + "valueType": { + "id": 4691, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "221:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4697, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 4698, + "src": "245:34:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "typeName": { + "id": 4696, + "keyType": { + "id": 4694, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "255:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "245:27:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "valueType": { + "id": 4695, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "266:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Account", + "nodeType": "StructDefinition", + "scope": 4841, + "src": "143:143:11", + "visibility": "public" + }, + { + "body": { + "id": 4726, + "nodeType": "Block", + "src": "375:123:11", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4708, + "name": "_account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4700, + "src": "398:8:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage_ptr", + "typeString": "struct FundAccount.Account storage pointer" + } + }, + { + "argumentTypes": null, + "id": 4709, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4702, + "src": "408:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Account_$4698_storage_ptr", + "typeString": "struct FundAccount.Account storage pointer" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 4707, + "name": "_writeSymbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4840, + "src": "385:12:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Account_$4698_storage_ptr_$_t_bytes32_$returns$__$", + "typeString": "function (struct FundAccount.Account storage pointer,bytes32)" + } + }, + "id": 4710, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "385:31:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4711, + "nodeType": "ExpressionStatement", + "src": "385:31:11" + }, + { + "expression": { + "argumentTypes": null, + "id": 4724, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4712, + "name": "_account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4700, + "src": "427:8:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage_ptr", + "typeString": "struct FundAccount.Account storage pointer" + } + }, + "id": 4715, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 4697, + "src": "427:15:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 4716, + "indexExpression": { + "argumentTypes": null, + "id": 4714, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4702, + "src": "443:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "427:24:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4722, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4704, + "src": "483:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4717, + "name": "_account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4700, + "src": "454:8:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage_ptr", + "typeString": "struct FundAccount.Account storage pointer" + } + }, + "id": 4718, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 4697, + "src": "454:15:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 4720, + "indexExpression": { + "argumentTypes": null, + "id": 4719, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4702, + "src": "470:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "454:24:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4721, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9601, + "src": "454:28: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": 4723, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "454:37:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "427:64:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4725, + "nodeType": "ExpressionStatement", + "src": "427:64:11" + } + ] + }, + "documentation": null, + "id": 4727, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "deposit", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4705, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4700, + "name": "_account", + "nodeType": "VariableDeclaration", + "scope": 4727, + "src": "309:24:11", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage_ptr", + "typeString": "struct FundAccount.Account" + }, + "typeName": { + "contractScope": null, + "id": 4699, + "name": "Account", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4698, + "src": "309:7:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage_ptr", + "typeString": "struct FundAccount.Account" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4702, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 4727, + "src": "335:15:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4701, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "335:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4704, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 4727, + "src": "352:12:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4703, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "352:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "308:57:11" + }, + "payable": false, + "returnParameters": { + "id": 4706, + "nodeType": "ParameterList", + "parameters": [], + "src": "375:0:11" + }, + "scope": 4841, + "src": "292:206:11", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 4766, + "nodeType": "Block", + "src": "590:189:11", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4738, + "name": "_account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4729, + "src": "621:8:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage_ptr", + "typeString": "struct FundAccount.Account storage pointer" + } + }, + { + "argumentTypes": null, + "id": 4739, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4731, + "src": "631:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Account_$4698_storage_ptr", + "typeString": "struct FundAccount.Account storage pointer" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 4737, + "name": "hasDepositIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4782, + "src": "608:12:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Account_$4698_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct FundAccount.Account storage pointer,bytes32) view returns (bool)" + } + }, + "id": 4740, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "608:31:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4736, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "600:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "600:40:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4742, + "nodeType": "ExpressionStatement", + "src": "600:40:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4749, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4745, + "name": "_account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4729, + "src": "667:8:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage_ptr", + "typeString": "struct FundAccount.Account storage pointer" + } + }, + { + "argumentTypes": null, + "id": 4746, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4731, + "src": "677:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Account_$4698_storage_ptr", + "typeString": "struct FundAccount.Account storage pointer" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 4744, + "name": "amountOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4797, + "src": "658:8:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Account_$4698_storage_ptr_$_t_bytes32_$returns$_t_uint256_$", + "typeString": "function (struct FundAccount.Account storage pointer,bytes32) view returns (uint256)" + } + }, + "id": 4747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "658:27:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 4748, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4733, + "src": "689:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "658:38:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4743, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "650:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4750, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "650:47:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4751, + "nodeType": "ExpressionStatement", + "src": "650:47:11" + }, + { + "expression": { + "argumentTypes": null, + "id": 4764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4752, + "name": "_account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4729, + "src": "708:8:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage_ptr", + "typeString": "struct FundAccount.Account storage pointer" + } + }, + "id": 4755, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 4697, + "src": "708:15:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 4756, + "indexExpression": { + "argumentTypes": null, + "id": 4754, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4731, + "src": "724:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "708:24:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4762, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4733, + "src": "764:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4757, + "name": "_account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4729, + "src": "735:8:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage_ptr", + "typeString": "struct FundAccount.Account storage pointer" + } + }, + "id": 4758, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 4697, + "src": "735:15:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 4760, + "indexExpression": { + "argumentTypes": null, + "id": 4759, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4731, + "src": "751:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "735:24:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4761, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9577, + "src": "735:28: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": 4763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "735:37:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "708:64:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4765, + "nodeType": "ExpressionStatement", + "src": "708:64:11" + } + ] + }, + "documentation": null, + "id": 4767, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "withdrawal", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4734, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4729, + "name": "_account", + "nodeType": "VariableDeclaration", + "scope": 4767, + "src": "524:24:11", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage_ptr", + "typeString": "struct FundAccount.Account" + }, + "typeName": { + "contractScope": null, + "id": 4728, + "name": "Account", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4698, + "src": "524:7:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage_ptr", + "typeString": "struct FundAccount.Account" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4731, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 4767, + "src": "550:15:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4730, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "550:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4733, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 4767, + "src": "567:12:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4732, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "567:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "523:57:11" + }, + "payable": false, + "returnParameters": { + "id": 4735, + "nodeType": "ParameterList", + "parameters": [], + "src": "590:0:11" + }, + "scope": 4841, + "src": "504:275:11", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 4781, + "nodeType": "Block", + "src": "878:49:11", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4776, + "name": "_account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4769, + "src": "895:8:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage_ptr", + "typeString": "struct FundAccount.Account storage pointer" + } + }, + "id": 4777, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "symbols", + "nodeType": "MemberAccess", + "referencedDeclaration": 4693, + "src": "895:16:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" + } + }, + "id": 4779, + "indexExpression": { + "argumentTypes": null, + "id": 4778, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4771, + "src": "912:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "895:25:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 4775, + "id": 4780, + "nodeType": "Return", + "src": "888:32:11" + } + ] + }, + "documentation": null, + "id": 4782, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "hasDepositIn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4772, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4769, + "name": "_account", + "nodeType": "VariableDeclaration", + "scope": 4782, + "src": "807:24:11", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage_ptr", + "typeString": "struct FundAccount.Account" + }, + "typeName": { + "contractScope": null, + "id": 4768, + "name": "Account", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4698, + "src": "807:7:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage_ptr", + "typeString": "struct FundAccount.Account" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4771, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 4782, + "src": "833:15:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4770, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "833:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "806:43:11" + }, + "payable": false, + "returnParameters": { + "id": 4775, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4774, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4782, + "src": "872:4:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4773, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "872:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "871:6:11" + }, + "scope": 4841, + "src": "785:142:11", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 4796, + "nodeType": "Block", + "src": "1022:48:11", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4791, + "name": "_account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4784, + "src": "1039:8:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage_ptr", + "typeString": "struct FundAccount.Account storage pointer" + } + }, + "id": 4792, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 4697, + "src": "1039:15:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 4794, + "indexExpression": { + "argumentTypes": null, + "id": 4793, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4786, + "src": "1055:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1039:24:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 4790, + "id": 4795, + "nodeType": "Return", + "src": "1032:31:11" + } + ] + }, + "documentation": null, + "id": 4797, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "amountOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4787, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4784, + "name": "_account", + "nodeType": "VariableDeclaration", + "scope": 4797, + "src": "951:24:11", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage_ptr", + "typeString": "struct FundAccount.Account" + }, + "typeName": { + "contractScope": null, + "id": 4783, + "name": "Account", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4698, + "src": "951:7:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage_ptr", + "typeString": "struct FundAccount.Account" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4786, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 4797, + "src": "977:15:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4785, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "977:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "950:43:11" + }, + "payable": false, + "returnParameters": { + "id": 4790, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4789, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4797, + "src": "1016:4:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4788, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1016:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1015:6:11" + }, + "scope": 4841, + "src": "933:137:11", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 4808, + "nodeType": "Block", + "src": "1147:45:11", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4805, + "name": "_account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4799, + "src": "1164:8:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage_ptr", + "typeString": "struct FundAccount.Account storage pointer" + } + }, + "id": 4806, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_symbolsList", + "nodeType": "MemberAccess", + "referencedDeclaration": 4689, + "src": "1164:21:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "functionReturnParameters": 4804, + "id": 4807, + "nodeType": "Return", + "src": "1157:28:11" + } + ] + }, + "documentation": null, + "id": 4809, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "symbolsList", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4800, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4799, + "name": "_account", + "nodeType": "VariableDeclaration", + "scope": 4809, + "src": "1097:24:11", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage_ptr", + "typeString": "struct FundAccount.Account" + }, + "typeName": { + "contractScope": null, + "id": 4798, + "name": "Account", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4698, + "src": "1097:7:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage_ptr", + "typeString": "struct FundAccount.Account" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1096:26:11" + }, + "payable": false, + "returnParameters": { + "id": 4804, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4803, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4809, + "src": "1136:9:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 4801, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1136:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 4802, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1136:9:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1135:11:11" + }, + "scope": 4841, + "src": "1076:116:11", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4839, + "nodeType": "Block", + "src": "1272:160:11", + "statements": [ + { + "condition": { + "argumentTypes": null, + "id": 4820, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "1286:32:11", + "subExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4817, + "name": "_account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4811, + "src": "1300:8:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage_ptr", + "typeString": "struct FundAccount.Account storage pointer" + } + }, + { + "argumentTypes": null, + "id": 4818, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4813, + "src": "1310:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Account_$4698_storage_ptr", + "typeString": "struct FundAccount.Account storage pointer" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 4816, + "name": "hasDepositIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4782, + "src": "1287:12:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Account_$4698_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct FundAccount.Account storage pointer,bytes32) view returns (bool)" + } + }, + "id": 4819, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1287:31:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 4838, + "nodeType": "IfStatement", + "src": "1282:144:11", + "trueBody": { + "id": 4837, + "nodeType": "Block", + "src": "1320:106:11", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4826, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4813, + "src": "1361:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4821, + "name": "_account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4811, + "src": "1334:8:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage_ptr", + "typeString": "struct FundAccount.Account storage pointer" + } + }, + "id": 4824, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_symbolsList", + "nodeType": "MemberAccess", + "referencedDeclaration": 4689, + "src": "1334:21:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 4825, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1334:26:11", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_bytes32_$returns$_t_uint256_$", + "typeString": "function (bytes32) returns (uint256)" + } + }, + "id": 4827, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1334:35:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4828, + "nodeType": "ExpressionStatement", + "src": "1334:35:11" + }, + { + "expression": { + "argumentTypes": null, + "id": 4835, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4829, + "name": "_account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4811, + "src": "1383:8:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage_ptr", + "typeString": "struct FundAccount.Account storage pointer" + } + }, + "id": 4832, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "symbols", + "nodeType": "MemberAccess", + "referencedDeclaration": 4693, + "src": "1383:16:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" + } + }, + "id": 4833, + "indexExpression": { + "argumentTypes": null, + "id": 4831, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4813, + "src": "1400:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1383:25:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 4834, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1411:4:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "1383:32:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4836, + "nodeType": "ExpressionStatement", + "src": "1383:32:11" + } + ] + } + } + ] + }, + "documentation": null, + "id": 4840, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "_writeSymbol", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4814, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4811, + "name": "_account", + "nodeType": "VariableDeclaration", + "scope": 4840, + "src": "1220:24:11", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage_ptr", + "typeString": "struct FundAccount.Account" + }, + "typeName": { + "contractScope": null, + "id": 4810, + "name": "Account", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4698, + "src": "1220:7:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage_ptr", + "typeString": "struct FundAccount.Account" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4813, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 4840, + "src": "1246:15:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4812, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1246:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1219:43:11" + }, + "payable": false, + "returnParameters": { + "id": 4815, + "nodeType": "ParameterList", + "parameters": [], + "src": "1272:0:11" + }, + "scope": 4841, + "src": "1198:234:11", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 4842, + "src": "87:1347:11" + } + ], + "src": "0:1435:11" + }, + "legacyAST": { + "absolutePath": "/home/circleci/code/contracts/libs/FundAccount.sol", + "exportedSymbols": { + "FundAccount": [ + 4841 + ] + }, + "id": 4842, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4682, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:11" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", + "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", + "id": 4683, + "nodeType": "ImportDirective", + "scope": 4842, + "sourceUnit": 9603, + "src": "26:59:11", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 4841, + "linearizedBaseContracts": [ + 4841 + ], + "name": "FundAccount", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 4686, + "libraryName": { + "contractScope": null, + "id": 4684, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9602, + "src": "119:8:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$9602", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "113:24:11", + "typeName": { + "id": 4685, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "132:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "canonicalName": "FundAccount.Account", + "id": 4698, + "members": [ + { + "constant": false, + "id": 4689, + "name": "_symbolsList", + "nodeType": "VariableDeclaration", + "scope": 4698, + "src": "168:22:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 4687, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "168:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 4688, + "length": null, + "nodeType": "ArrayTypeName", + "src": "168:9:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4693, + "name": "symbols", + "nodeType": "VariableDeclaration", + "scope": 4698, + "src": "200:35:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" + }, + "typeName": { + "id": 4692, + "keyType": { + "id": 4690, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "210:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "200:27:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" + }, + "valueType": { + "id": 4691, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "221:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4697, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 4698, + "src": "245:34:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "typeName": { + "id": 4696, + "keyType": { + "id": 4694, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "255:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "245:27:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "valueType": { + "id": 4695, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "266:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Account", + "nodeType": "StructDefinition", + "scope": 4841, + "src": "143:143:11", + "visibility": "public" + }, + { + "body": { + "id": 4726, + "nodeType": "Block", + "src": "375:123:11", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4708, + "name": "_account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4700, + "src": "398:8:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage_ptr", + "typeString": "struct FundAccount.Account storage pointer" + } + }, + { + "argumentTypes": null, + "id": 4709, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4702, + "src": "408:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Account_$4698_storage_ptr", + "typeString": "struct FundAccount.Account storage pointer" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 4707, + "name": "_writeSymbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4840, + "src": "385:12:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Account_$4698_storage_ptr_$_t_bytes32_$returns$__$", + "typeString": "function (struct FundAccount.Account storage pointer,bytes32)" + } + }, + "id": 4710, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "385:31:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4711, + "nodeType": "ExpressionStatement", + "src": "385:31:11" + }, + { + "expression": { + "argumentTypes": null, + "id": 4724, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4712, + "name": "_account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4700, + "src": "427:8:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage_ptr", + "typeString": "struct FundAccount.Account storage pointer" + } + }, + "id": 4715, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 4697, + "src": "427:15:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 4716, + "indexExpression": { + "argumentTypes": null, + "id": 4714, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4702, + "src": "443:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "427:24:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4722, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4704, + "src": "483:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4717, + "name": "_account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4700, + "src": "454:8:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage_ptr", + "typeString": "struct FundAccount.Account storage pointer" + } + }, + "id": 4718, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 4697, + "src": "454:15:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 4720, + "indexExpression": { + "argumentTypes": null, + "id": 4719, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4702, + "src": "470:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "454:24:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4721, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9601, + "src": "454:28: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": 4723, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "454:37:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "427:64:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4725, + "nodeType": "ExpressionStatement", + "src": "427:64:11" + } + ] + }, + "documentation": null, + "id": 4727, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "deposit", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4705, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4700, + "name": "_account", + "nodeType": "VariableDeclaration", + "scope": 4727, + "src": "309:24:11", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage_ptr", + "typeString": "struct FundAccount.Account" + }, + "typeName": { + "contractScope": null, + "id": 4699, + "name": "Account", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4698, + "src": "309:7:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage_ptr", + "typeString": "struct FundAccount.Account" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4702, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 4727, + "src": "335:15:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4701, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "335:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4704, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 4727, + "src": "352:12:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4703, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "352:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "308:57:11" + }, + "payable": false, + "returnParameters": { + "id": 4706, + "nodeType": "ParameterList", + "parameters": [], + "src": "375:0:11" + }, + "scope": 4841, + "src": "292:206:11", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 4766, + "nodeType": "Block", + "src": "590:189:11", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4738, + "name": "_account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4729, + "src": "621:8:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage_ptr", + "typeString": "struct FundAccount.Account storage pointer" + } + }, + { + "argumentTypes": null, + "id": 4739, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4731, + "src": "631:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Account_$4698_storage_ptr", + "typeString": "struct FundAccount.Account storage pointer" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 4737, + "name": "hasDepositIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4782, + "src": "608:12:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Account_$4698_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct FundAccount.Account storage pointer,bytes32) view returns (bool)" + } + }, + "id": 4740, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "608:31:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4736, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "600:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "600:40:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4742, + "nodeType": "ExpressionStatement", + "src": "600:40:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4749, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4745, + "name": "_account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4729, + "src": "667:8:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage_ptr", + "typeString": "struct FundAccount.Account storage pointer" + } + }, + { + "argumentTypes": null, + "id": 4746, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4731, + "src": "677:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Account_$4698_storage_ptr", + "typeString": "struct FundAccount.Account storage pointer" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 4744, + "name": "amountOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4797, + "src": "658:8:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Account_$4698_storage_ptr_$_t_bytes32_$returns$_t_uint256_$", + "typeString": "function (struct FundAccount.Account storage pointer,bytes32) view returns (uint256)" + } + }, + "id": 4747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "658:27:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 4748, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4733, + "src": "689:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "658:38:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4743, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "650:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4750, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "650:47:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4751, + "nodeType": "ExpressionStatement", + "src": "650:47:11" + }, + { + "expression": { + "argumentTypes": null, + "id": 4764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4752, + "name": "_account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4729, + "src": "708:8:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage_ptr", + "typeString": "struct FundAccount.Account storage pointer" + } + }, + "id": 4755, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 4697, + "src": "708:15:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 4756, + "indexExpression": { + "argumentTypes": null, + "id": 4754, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4731, + "src": "724:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "708:24:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4762, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4733, + "src": "764:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4757, + "name": "_account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4729, + "src": "735:8:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage_ptr", + "typeString": "struct FundAccount.Account storage pointer" + } + }, + "id": 4758, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 4697, + "src": "735:15:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 4760, + "indexExpression": { + "argumentTypes": null, + "id": 4759, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4731, + "src": "751:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "735:24:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4761, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9577, + "src": "735:28: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": 4763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "735:37:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "708:64:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4765, + "nodeType": "ExpressionStatement", + "src": "708:64:11" + } + ] + }, + "documentation": null, + "id": 4767, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "withdrawal", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4734, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4729, + "name": "_account", + "nodeType": "VariableDeclaration", + "scope": 4767, + "src": "524:24:11", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage_ptr", + "typeString": "struct FundAccount.Account" + }, + "typeName": { + "contractScope": null, + "id": 4728, + "name": "Account", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4698, + "src": "524:7:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage_ptr", + "typeString": "struct FundAccount.Account" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4731, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 4767, + "src": "550:15:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4730, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "550:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4733, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 4767, + "src": "567:12:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4732, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "567:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "523:57:11" + }, + "payable": false, + "returnParameters": { + "id": 4735, + "nodeType": "ParameterList", + "parameters": [], + "src": "590:0:11" + }, + "scope": 4841, + "src": "504:275:11", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 4781, + "nodeType": "Block", + "src": "878:49:11", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4776, + "name": "_account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4769, + "src": "895:8:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage_ptr", + "typeString": "struct FundAccount.Account storage pointer" + } + }, + "id": 4777, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "symbols", + "nodeType": "MemberAccess", + "referencedDeclaration": 4693, + "src": "895:16:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" + } + }, + "id": 4779, + "indexExpression": { + "argumentTypes": null, + "id": 4778, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4771, + "src": "912:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "895:25:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 4775, + "id": 4780, + "nodeType": "Return", + "src": "888:32:11" + } + ] + }, + "documentation": null, + "id": 4782, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "hasDepositIn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4772, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4769, + "name": "_account", + "nodeType": "VariableDeclaration", + "scope": 4782, + "src": "807:24:11", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage_ptr", + "typeString": "struct FundAccount.Account" + }, + "typeName": { + "contractScope": null, + "id": 4768, + "name": "Account", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4698, + "src": "807:7:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage_ptr", + "typeString": "struct FundAccount.Account" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4771, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 4782, + "src": "833:15:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4770, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "833:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "806:43:11" + }, + "payable": false, + "returnParameters": { + "id": 4775, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4774, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4782, + "src": "872:4:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4773, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "872:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "871:6:11" + }, + "scope": 4841, + "src": "785:142:11", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 4796, + "nodeType": "Block", + "src": "1022:48:11", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4791, + "name": "_account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4784, + "src": "1039:8:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage_ptr", + "typeString": "struct FundAccount.Account storage pointer" + } + }, + "id": 4792, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 4697, + "src": "1039:15:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 4794, + "indexExpression": { + "argumentTypes": null, + "id": 4793, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4786, + "src": "1055:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1039:24:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 4790, + "id": 4795, + "nodeType": "Return", + "src": "1032:31:11" + } + ] + }, + "documentation": null, + "id": 4797, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "amountOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4787, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4784, + "name": "_account", + "nodeType": "VariableDeclaration", + "scope": 4797, + "src": "951:24:11", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage_ptr", + "typeString": "struct FundAccount.Account" + }, + "typeName": { + "contractScope": null, + "id": 4783, + "name": "Account", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4698, + "src": "951:7:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage_ptr", + "typeString": "struct FundAccount.Account" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4786, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 4797, + "src": "977:15:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4785, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "977:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "950:43:11" + }, + "payable": false, + "returnParameters": { + "id": 4790, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4789, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4797, + "src": "1016:4:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4788, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1016:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1015:6:11" + }, + "scope": 4841, + "src": "933:137:11", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 4808, + "nodeType": "Block", + "src": "1147:45:11", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4805, + "name": "_account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4799, + "src": "1164:8:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage_ptr", + "typeString": "struct FundAccount.Account storage pointer" + } + }, + "id": 4806, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_symbolsList", + "nodeType": "MemberAccess", + "referencedDeclaration": 4689, + "src": "1164:21:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "functionReturnParameters": 4804, + "id": 4807, + "nodeType": "Return", + "src": "1157:28:11" + } + ] + }, + "documentation": null, + "id": 4809, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "symbolsList", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4800, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4799, + "name": "_account", + "nodeType": "VariableDeclaration", + "scope": 4809, + "src": "1097:24:11", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage_ptr", + "typeString": "struct FundAccount.Account" + }, + "typeName": { + "contractScope": null, + "id": 4798, + "name": "Account", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4698, + "src": "1097:7:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage_ptr", + "typeString": "struct FundAccount.Account" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1096:26:11" + }, + "payable": false, + "returnParameters": { + "id": 4804, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4803, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4809, + "src": "1136:9:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 4801, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1136:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 4802, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1136:9:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1135:11:11" + }, + "scope": 4841, + "src": "1076:116:11", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4839, + "nodeType": "Block", + "src": "1272:160:11", + "statements": [ + { + "condition": { + "argumentTypes": null, + "id": 4820, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "1286:32:11", + "subExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4817, + "name": "_account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4811, + "src": "1300:8:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage_ptr", + "typeString": "struct FundAccount.Account storage pointer" + } + }, + { + "argumentTypes": null, + "id": 4818, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4813, + "src": "1310:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Account_$4698_storage_ptr", + "typeString": "struct FundAccount.Account storage pointer" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 4816, + "name": "hasDepositIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4782, + "src": "1287:12:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Account_$4698_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct FundAccount.Account storage pointer,bytes32) view returns (bool)" + } + }, + "id": 4819, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1287:31:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 4838, + "nodeType": "IfStatement", + "src": "1282:144:11", + "trueBody": { + "id": 4837, + "nodeType": "Block", + "src": "1320:106:11", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4826, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4813, + "src": "1361:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4821, + "name": "_account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4811, + "src": "1334:8:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage_ptr", + "typeString": "struct FundAccount.Account storage pointer" + } + }, + "id": 4824, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_symbolsList", + "nodeType": "MemberAccess", + "referencedDeclaration": 4689, + "src": "1334:21:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 4825, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1334:26:11", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_bytes32_$returns$_t_uint256_$", + "typeString": "function (bytes32) returns (uint256)" + } + }, + "id": 4827, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1334:35:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4828, + "nodeType": "ExpressionStatement", + "src": "1334:35:11" + }, + { + "expression": { + "argumentTypes": null, + "id": 4835, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4829, + "name": "_account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4811, + "src": "1383:8:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage_ptr", + "typeString": "struct FundAccount.Account storage pointer" + } + }, + "id": 4832, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "symbols", + "nodeType": "MemberAccess", + "referencedDeclaration": 4693, + "src": "1383:16:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" + } + }, + "id": 4833, + "indexExpression": { + "argumentTypes": null, + "id": 4831, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4813, + "src": "1400:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1383:25:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 4834, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1411:4:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "1383:32:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4836, + "nodeType": "ExpressionStatement", + "src": "1383:32:11" + } + ] + } + } + ] + }, + "documentation": null, + "id": 4840, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "_writeSymbol", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4814, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4811, + "name": "_account", + "nodeType": "VariableDeclaration", + "scope": 4840, + "src": "1220:24:11", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage_ptr", + "typeString": "struct FundAccount.Account" + }, + "typeName": { + "contractScope": null, + "id": 4810, + "name": "Account", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4698, + "src": "1220:7:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage_ptr", + "typeString": "struct FundAccount.Account" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4813, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 4840, + "src": "1246:15:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4812, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1246:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1219:43:11" + }, + "payable": false, + "returnParameters": { + "id": 4815, + "nodeType": "ParameterList", + "parameters": [], + "src": "1272:0:11" + }, + "scope": 4841, + "src": "1198:234:11", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 4842, + "src": "87:1347:11" + } + ], + "src": "0:1435:11" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": { + "4": { + "events": {}, + "links": {}, + "address": "0x4adffa67c9560ecb80b9016527c9529992c3870b", + "transactionHash": "0xe639a68f9994c15d003388ed2fa5ea265164ddde4937cbcdc5d82fbf627e88a0" + } + }, + "schemaVersion": "2.0.1", + "updatedAt": "2018-10-22T07:59:52.063Z" +} \ No newline at end of file diff --git a/build/contracts/IPricerRole.json b/build/contracts/IPricerRole.json new file mode 100644 index 00000000..cc4340a1 --- /dev/null +++ b/build/contracts/IPricerRole.json @@ -0,0 +1,537 @@ +{ + "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" + } + ], + "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", + "ast": { + "absolutePath": "/home/circleci/code/contracts/rates/roles/IPricer.sol", + "exportedSymbols": { + "IPricerRole": [ + 7422 + ] + }, + "id": 7423, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 7404, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:27" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 7422, + "linearizedBaseContracts": [ + 7422 + ], + "name": "IPricerRole", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 7411, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isPricer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7407, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7406, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 7411, + "src": "71:15:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7405, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "71:7:27", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "70:17:27" + }, + "payable": false, + "returnParameters": { + "id": 7410, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7409, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7411, + "src": "109:4:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7408, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "109:4:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "108:6:27" + }, + "scope": 7422, + "src": "53:62:27", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 7416, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "addPricer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7414, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7413, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 7416, + "src": "140:15:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7412, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "140:7:27", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "139:17:27" + }, + "payable": false, + "returnParameters": { + "id": 7415, + "nodeType": "ParameterList", + "parameters": [], + "src": "163:0:27" + }, + "scope": 7422, + "src": "121:43:27", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 7421, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "removePricer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7419, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7418, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 7421, + "src": "192:15:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7417, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "192:7:27", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "191:17:27" + }, + "payable": false, + "returnParameters": { + "id": 7420, + "nodeType": "ParameterList", + "parameters": [], + "src": "215:0:27" + }, + "scope": 7422, + "src": "170:46:27", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 7423, + "src": "26:192:27" + } + ], + "src": "0:219:27" + }, + "legacyAST": { + "absolutePath": "/home/circleci/code/contracts/rates/roles/IPricer.sol", + "exportedSymbols": { + "IPricerRole": [ + 7422 + ] + }, + "id": 7423, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 7404, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:27" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 7422, + "linearizedBaseContracts": [ + 7422 + ], + "name": "IPricerRole", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 7411, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isPricer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7407, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7406, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 7411, + "src": "71:15:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7405, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "71:7:27", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "70:17:27" + }, + "payable": false, + "returnParameters": { + "id": 7410, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7409, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7411, + "src": "109:4:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7408, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "109:4:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "108:6:27" + }, + "scope": 7422, + "src": "53:62:27", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 7416, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "addPricer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7414, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7413, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 7416, + "src": "140:15:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7412, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "140:7:27", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "139:17:27" + }, + "payable": false, + "returnParameters": { + "id": 7415, + "nodeType": "ParameterList", + "parameters": [], + "src": "163:0:27" + }, + "scope": 7422, + "src": "121:43:27", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 7421, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "removePricer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7419, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7418, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 7421, + "src": "192:15:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7417, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "192:7:27", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "191:17:27" + }, + "payable": false, + "returnParameters": { + "id": 7420, + "nodeType": "ParameterList", + "parameters": [], + "src": "215:0:27" + }, + "scope": 7422, + "src": "170:46:27", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 7423, + "src": "26:192:27" + } + ], + "src": "0:219:27" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.1", + "updatedAt": "2018-10-22T07:56:01.514Z" +} \ No newline at end of file diff --git a/build/contracts/IRates.json b/build/contracts/IRates.json new file mode 100644 index 00000000..f8580b3e --- /dev/null +++ b/build/contracts/IRates.json @@ -0,0 +1,1715 @@ +{ + "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": true, + "inputs": [], + "name": "owner", + "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" + }, + { + "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" + }, + { + "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", + "sourcePath": "/home/circleci/code/contracts/rates/IRates.sol", + "ast": { + "absolutePath": "/home/circleci/code/contracts/rates/IRates.sol", + "exportedSymbols": { + "IRates": [ + 7015 + ] + }, + "id": 7016, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 6956, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:23" + }, + { + "absolutePath": "/home/circleci/code/contracts/rates/ISymbols.sol", + "file": "./ISymbols.sol", + "id": 6957, + "nodeType": "ImportDirective", + "scope": 7016, + "sourceUnit": 7045, + "src": "26:24:23", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/rates/roles/IPricer.sol", + "file": "./roles/IPricer.sol", + "id": 6958, + "nodeType": "ImportDirective", + "scope": 7016, + "sourceUnit": 7423, + "src": "51:29:23", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 6959, + "name": "ISymbols", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7044, + "src": "101:8:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISymbols_$7044", + "typeString": "contract ISymbols" + } + }, + "id": 6960, + "nodeType": "InheritanceSpecifier", + "src": "101:8:23" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 6961, + "name": "IPricerRole", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7422, + "src": "111:11:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPricerRole_$7422", + "typeString": "contract IPricerRole" + } + }, + "id": 6962, + "nodeType": "InheritanceSpecifier", + "src": "111:11:23" + } + ], + "contractDependencies": [ + 7044, + 7422 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 7015, + "linearizedBaseContracts": [ + 7015, + 7422, + 7044 + ], + "name": "IRates", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 6964, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 7015, + "src": "129:20:23", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6963, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "129:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 6971, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "addSymbolWithTokenAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6969, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6966, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 6971, + "src": "191:14:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6965, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "191:7:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6968, + "name": "_address", + "nodeType": "VariableDeclaration", + "scope": 6971, + "src": "207:16:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6967, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "207:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "190:34:23" + }, + "payable": false, + "returnParameters": { + "id": 6970, + "nodeType": "ParameterList", + "parameters": [], + "src": "231:0:23" + }, + "scope": 7015, + "src": "156:76:23", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 6978, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "setTokenAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6976, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6973, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 6978, + "src": "263:14:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6972, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "263:7:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6975, + "name": "_address", + "nodeType": "VariableDeclaration", + "scope": 6978, + "src": "279:16:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6974, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "279:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "262:34:23" + }, + "payable": false, + "returnParameters": { + "id": 6977, + "nodeType": "ParameterList", + "parameters": [], + "src": "303:0:23" + }, + "scope": 7015, + "src": "238:66:23", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 6985, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getTokenAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6981, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6980, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 6985, + "src": "335:14:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6979, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "335:7:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "334:16:23" + }, + "payable": false, + "returnParameters": { + "id": 6984, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6983, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 6985, + "src": "372:7:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6982, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "372:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "371:9:23" + }, + "scope": 7015, + "src": "310:71:23", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 6992, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isToken", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6988, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6987, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 6992, + "src": "404:14:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6986, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "404:7:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "403:16:23" + }, + "payable": false, + "returnParameters": { + "id": 6991, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6990, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 6992, + "src": "441:4:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6989, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "441:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "440:6:23" + }, + "scope": 7015, + "src": "387:60:23", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 6999, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "get", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6995, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6994, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 6999, + "src": "466:14:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6993, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "466:7:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "465:16:23" + }, + "payable": false, + "returnParameters": { + "id": 6998, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6997, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 6999, + "src": "503:4:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6996, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "503:4:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "502:6:23" + }, + "scope": 7015, + "src": "453:56:23", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 7006, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "set", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7004, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7001, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 7006, + "src": "528:14:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 7000, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "528:7:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7003, + "name": "rate", + "nodeType": "VariableDeclaration", + "scope": 7006, + "src": "544:9:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7002, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "544:4:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "527:27:23" + }, + "payable": false, + "returnParameters": { + "id": 7005, + "nodeType": "ParameterList", + "parameters": [], + "src": "561:0:23" + }, + "scope": 7015, + "src": "515:47:23", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 7009, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "renounceOwnership", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7007, + "nodeType": "ParameterList", + "parameters": [], + "src": "594:2:23" + }, + "payable": false, + "returnParameters": { + "id": 7008, + "nodeType": "ParameterList", + "parameters": [], + "src": "603:0:23" + }, + "scope": 7015, + "src": "568:36:23", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 7014, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferOwnership", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7012, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7011, + "name": "_newOwner", + "nodeType": "VariableDeclaration", + "scope": 7014, + "src": "637:17:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7010, + "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": 7013, + "nodeType": "ParameterList", + "parameters": [], + "src": "662:0:23" + }, + "scope": 7015, + "src": "610:53:23", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 7016, + "src": "82:583:23" + } + ], + "src": "0:666:23" + }, + "legacyAST": { + "absolutePath": "/home/circleci/code/contracts/rates/IRates.sol", + "exportedSymbols": { + "IRates": [ + 7015 + ] + }, + "id": 7016, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 6956, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:23" + }, + { + "absolutePath": "/home/circleci/code/contracts/rates/ISymbols.sol", + "file": "./ISymbols.sol", + "id": 6957, + "nodeType": "ImportDirective", + "scope": 7016, + "sourceUnit": 7045, + "src": "26:24:23", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/rates/roles/IPricer.sol", + "file": "./roles/IPricer.sol", + "id": 6958, + "nodeType": "ImportDirective", + "scope": 7016, + "sourceUnit": 7423, + "src": "51:29:23", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 6959, + "name": "ISymbols", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7044, + "src": "101:8:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISymbols_$7044", + "typeString": "contract ISymbols" + } + }, + "id": 6960, + "nodeType": "InheritanceSpecifier", + "src": "101:8:23" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 6961, + "name": "IPricerRole", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7422, + "src": "111:11:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPricerRole_$7422", + "typeString": "contract IPricerRole" + } + }, + "id": 6962, + "nodeType": "InheritanceSpecifier", + "src": "111:11:23" + } + ], + "contractDependencies": [ + 7044, + 7422 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 7015, + "linearizedBaseContracts": [ + 7015, + 7422, + 7044 + ], + "name": "IRates", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 6964, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 7015, + "src": "129:20:23", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6963, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "129:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 6971, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "addSymbolWithTokenAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6969, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6966, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 6971, + "src": "191:14:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6965, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "191:7:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6968, + "name": "_address", + "nodeType": "VariableDeclaration", + "scope": 6971, + "src": "207:16:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6967, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "207:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "190:34:23" + }, + "payable": false, + "returnParameters": { + "id": 6970, + "nodeType": "ParameterList", + "parameters": [], + "src": "231:0:23" + }, + "scope": 7015, + "src": "156:76:23", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 6978, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "setTokenAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6976, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6973, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 6978, + "src": "263:14:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6972, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "263:7:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6975, + "name": "_address", + "nodeType": "VariableDeclaration", + "scope": 6978, + "src": "279:16:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6974, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "279:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "262:34:23" + }, + "payable": false, + "returnParameters": { + "id": 6977, + "nodeType": "ParameterList", + "parameters": [], + "src": "303:0:23" + }, + "scope": 7015, + "src": "238:66:23", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 6985, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getTokenAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6981, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6980, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 6985, + "src": "335:14:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6979, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "335:7:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "334:16:23" + }, + "payable": false, + "returnParameters": { + "id": 6984, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6983, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 6985, + "src": "372:7:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6982, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "372:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "371:9:23" + }, + "scope": 7015, + "src": "310:71:23", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 6992, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isToken", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6988, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6987, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 6992, + "src": "404:14:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6986, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "404:7:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "403:16:23" + }, + "payable": false, + "returnParameters": { + "id": 6991, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6990, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 6992, + "src": "441:4:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6989, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "441:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "440:6:23" + }, + "scope": 7015, + "src": "387:60:23", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 6999, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "get", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6995, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6994, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 6999, + "src": "466:14:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6993, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "466:7:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "465:16:23" + }, + "payable": false, + "returnParameters": { + "id": 6998, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6997, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 6999, + "src": "503:4:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6996, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "503:4:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "502:6:23" + }, + "scope": 7015, + "src": "453:56:23", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 7006, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "set", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7004, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7001, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 7006, + "src": "528:14:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 7000, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "528:7:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7003, + "name": "rate", + "nodeType": "VariableDeclaration", + "scope": 7006, + "src": "544:9:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7002, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "544:4:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "527:27:23" + }, + "payable": false, + "returnParameters": { + "id": 7005, + "nodeType": "ParameterList", + "parameters": [], + "src": "561:0:23" + }, + "scope": 7015, + "src": "515:47:23", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 7009, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "renounceOwnership", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7007, + "nodeType": "ParameterList", + "parameters": [], + "src": "594:2:23" + }, + "payable": false, + "returnParameters": { + "id": 7008, + "nodeType": "ParameterList", + "parameters": [], + "src": "603:0:23" + }, + "scope": 7015, + "src": "568:36:23", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 7014, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferOwnership", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7012, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7011, + "name": "_newOwner", + "nodeType": "VariableDeclaration", + "scope": 7014, + "src": "637:17:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7010, + "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": 7013, + "nodeType": "ParameterList", + "parameters": [], + "src": "662:0:23" + }, + "scope": 7015, + "src": "610:53:23", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 7016, + "src": "82:583:23" + } + ], + "src": "0:666:23" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.1", + "updatedAt": "2018-10-22T07:56:01.513Z" +} \ No newline at end of file diff --git a/build/contracts/ISymbols.json b/build/contracts/ISymbols.json new file mode 100644 index 00000000..0663f874 --- /dev/null +++ b/build/contracts/ISymbols.json @@ -0,0 +1,774 @@ +{ + "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" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "sourceMap": "", + "deployedSourceMap": "", + "source": "pragma solidity ^0.4.24;\n\ncontract ISymbols {\n bytes32[] public symbolsList;\n\n function addSymbol(bytes32 symbol) public;\n\n function removeSymbol(bytes32 symbol) public;\n\n function hasSymbol(bytes32 symbol) public view returns (bool);\n\n function getSymbolsList() public view returns (bytes32[]);\n}\n", + "sourcePath": "/home/circleci/code/contracts/rates/ISymbols.sol", + "ast": { + "absolutePath": "/home/circleci/code/contracts/rates/ISymbols.sol", + "exportedSymbols": { + "ISymbols": [ + 7044 + ] + }, + "id": 7045, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 7017, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:24" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 7044, + "linearizedBaseContracts": [ + 7044 + ], + "name": "ISymbols", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 7020, + "name": "symbolsList", + "nodeType": "VariableDeclaration", + "scope": 7044, + "src": "50:28:24", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 7018, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "50:7:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 7019, + "length": null, + "nodeType": "ArrayTypeName", + "src": "50:9:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 7025, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "addSymbol", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7023, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7022, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 7025, + "src": "104:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 7021, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "104:7:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "103:16:24" + }, + "payable": false, + "returnParameters": { + "id": 7024, + "nodeType": "ParameterList", + "parameters": [], + "src": "126:0:24" + }, + "scope": 7044, + "src": "85:42:24", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 7030, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "removeSymbol", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7028, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7027, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 7030, + "src": "155:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 7026, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "155:7:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "154:16:24" + }, + "payable": false, + "returnParameters": { + "id": 7029, + "nodeType": "ParameterList", + "parameters": [], + "src": "177:0:24" + }, + "scope": 7044, + "src": "133:45:24", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 7037, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "hasSymbol", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7033, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7032, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 7037, + "src": "203:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 7031, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "203:7:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "202:16:24" + }, + "payable": false, + "returnParameters": { + "id": 7036, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7035, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7037, + "src": "240:4:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7034, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "240:4:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "239:6:24" + }, + "scope": 7044, + "src": "184:62:24", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 7043, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getSymbolsList", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7038, + "nodeType": "ParameterList", + "parameters": [], + "src": "275:2:24" + }, + "payable": false, + "returnParameters": { + "id": 7042, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7041, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7043, + "src": "299:9:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 7039, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "299:7:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 7040, + "length": null, + "nodeType": "ArrayTypeName", + "src": "299:9:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "298:11:24" + }, + "scope": 7044, + "src": "252:58:24", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 7045, + "src": "26:286:24" + } + ], + "src": "0:313:24" + }, + "legacyAST": { + "absolutePath": "/home/circleci/code/contracts/rates/ISymbols.sol", + "exportedSymbols": { + "ISymbols": [ + 7044 + ] + }, + "id": 7045, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 7017, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:24" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 7044, + "linearizedBaseContracts": [ + 7044 + ], + "name": "ISymbols", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 7020, + "name": "symbolsList", + "nodeType": "VariableDeclaration", + "scope": 7044, + "src": "50:28:24", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 7018, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "50:7:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 7019, + "length": null, + "nodeType": "ArrayTypeName", + "src": "50:9:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 7025, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "addSymbol", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7023, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7022, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 7025, + "src": "104:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 7021, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "104:7:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "103:16:24" + }, + "payable": false, + "returnParameters": { + "id": 7024, + "nodeType": "ParameterList", + "parameters": [], + "src": "126:0:24" + }, + "scope": 7044, + "src": "85:42:24", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 7030, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "removeSymbol", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7028, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7027, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 7030, + "src": "155:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 7026, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "155:7:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "154:16:24" + }, + "payable": false, + "returnParameters": { + "id": 7029, + "nodeType": "ParameterList", + "parameters": [], + "src": "177:0:24" + }, + "scope": 7044, + "src": "133:45:24", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 7037, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "hasSymbol", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7033, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7032, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 7037, + "src": "203:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 7031, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "203:7:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "202:16:24" + }, + "payable": false, + "returnParameters": { + "id": 7036, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7035, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7037, + "src": "240:4:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7034, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "240:4:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "239:6:24" + }, + "scope": 7044, + "src": "184:62:24", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 7043, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getSymbolsList", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7038, + "nodeType": "ParameterList", + "parameters": [], + "src": "275:2:24" + }, + "payable": false, + "returnParameters": { + "id": 7042, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7041, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7043, + "src": "299:9:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 7039, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "299:7:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 7040, + "length": null, + "nodeType": "ArrayTypeName", + "src": "299:9:24", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "298:11:24" + }, + "scope": 7044, + "src": "252:58:24", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 7045, + "src": "26:286:24" + } + ], + "src": "0:313:24" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.1", + "updatedAt": "2018-10-22T07:56:01.514Z" +} \ No newline at end of file diff --git a/build/contracts/ITokenExchange.json b/build/contracts/ITokenExchange.json index 485a2622..b94dcf5d 100644 --- a/build/contracts/ITokenExchange.json +++ b/build/contracts/ITokenExchange.json @@ -57,14 +57,14 @@ "absolutePath": "/home/circleci/code/contracts/token/exchanger/ITokenExchange.sol", "exportedSymbols": { "ITokenExchange": [ - 6178 + 8739 ] }, - "id": 6179, + "id": 8740, "nodeType": "SourceUnit", "nodes": [ { - "id": 6158, + "id": 8719, "literals": [ "solidity", "^", @@ -72,16 +72,16 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:22" + "src": "0:24:33" }, { "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "id": 6159, + "id": 8720, "nodeType": "ImportDirective", - "scope": 6179, - "sourceUnit": 7018, - "src": "26:63:22", + "scope": 8740, + "sourceUnit": 9766, + "src": "26:63:33", "symbolAliases": [], "unitAlias": "" }, @@ -91,9 +91,9 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 6178, + "id": 8739, "linearizedBaseContracts": [ - 6178 + 8739 ], "name": "ITokenExchange", "nodeType": "ContractDefinition", @@ -101,7 +101,7 @@ { "body": null, "documentation": null, - "id": 6170, + "id": 8731, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -109,31 +109,31 @@ "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 6166, + "id": 8727, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6161, + "id": 8722, "name": "token", "nodeType": "VariableDeclaration", - "scope": 6170, - "src": "138:11:22", + "scope": 8731, + "src": "138:11:33", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" }, "typeName": { "contractScope": null, - "id": 6160, + "id": 8721, "name": "ERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7017, - "src": "138:5:22", + "referencedDeclaration": 9765, + "src": "138:5:33", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, @@ -142,11 +142,11 @@ }, { "constant": false, - "id": 6163, + "id": 8724, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 6170, - "src": "151:15:22", + "scope": 8731, + "src": "151:15:33", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -154,10 +154,10 @@ "typeString": "address" }, "typeName": { - "id": 6162, + "id": 8723, "name": "address", "nodeType": "ElementaryTypeName", - "src": "151:7:22", + "src": "151:7:33", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -168,11 +168,11 @@ }, { "constant": false, - "id": 6165, + "id": 8726, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 6170, - "src": "168:11:22", + "scope": 8731, + "src": "168:11:33", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -180,10 +180,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6164, + "id": 8725, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "168:4:22", + "src": "168:4:33", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -193,20 +193,20 @@ "visibility": "internal" } ], - "src": "137:43:22" + "src": "137:43:33" }, "payable": false, "returnParameters": { - "id": 6169, + "id": 8730, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6168, + "id": 8729, "name": "", "nodeType": "VariableDeclaration", - "scope": 6170, - "src": "199:4:22", + "scope": 8731, + "src": "199:4:33", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -214,10 +214,10 @@ "typeString": "bool" }, "typeName": { - "id": 6167, + "id": 8728, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "199:4:22", + "src": "199:4:33", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -227,10 +227,10 @@ "visibility": "internal" } ], - "src": "198:6:22" + "src": "198:6:33" }, - "scope": 6178, - "src": "121:84:22", + "scope": 8739, + "src": "121:84:33", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -238,7 +238,7 @@ { "body": null, "documentation": null, - "id": 6177, + "id": 8738, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -246,31 +246,31 @@ "name": "exchange", "nodeType": "FunctionDefinition", "parameters": { - "id": 6175, + "id": 8736, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6172, + "id": 8733, "name": "fromToken", "nodeType": "VariableDeclaration", - "scope": 6177, - "src": "229:15:22", + "scope": 8738, + "src": "229:15:33", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" }, "typeName": { "contractScope": null, - "id": 6171, + "id": 8732, "name": "ERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7017, - "src": "229:5:22", + "referencedDeclaration": 9765, + "src": "229:5:33", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, @@ -279,11 +279,11 @@ }, { "constant": false, - "id": 6174, + "id": 8735, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 6177, - "src": "246:11:22", + "scope": 8738, + "src": "246:11:33", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -291,10 +291,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6173, + "id": 8734, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "246:4:22", + "src": "246:4:33", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -304,40 +304,40 @@ "visibility": "internal" } ], - "src": "228:30:22" + "src": "228:30:33" }, "payable": false, "returnParameters": { - "id": 6176, + "id": 8737, "nodeType": "ParameterList", "parameters": [], - "src": "267:0:22" + "src": "267:0:33" }, - "scope": 6178, - "src": "211:57:22", + "scope": 8739, + "src": "211:57:33", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" } ], - "scope": 6179, - "src": "91:179:22" + "scope": 8740, + "src": "91:179:33" } ], - "src": "0:271:22" + "src": "0:271:33" }, "legacyAST": { "absolutePath": "/home/circleci/code/contracts/token/exchanger/ITokenExchange.sol", "exportedSymbols": { "ITokenExchange": [ - 6178 + 8739 ] }, - "id": 6179, + "id": 8740, "nodeType": "SourceUnit", "nodes": [ { - "id": 6158, + "id": 8719, "literals": [ "solidity", "^", @@ -345,16 +345,16 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:22" + "src": "0:24:33" }, { "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "id": 6159, + "id": 8720, "nodeType": "ImportDirective", - "scope": 6179, - "sourceUnit": 7018, - "src": "26:63:22", + "scope": 8740, + "sourceUnit": 9766, + "src": "26:63:33", "symbolAliases": [], "unitAlias": "" }, @@ -364,9 +364,9 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 6178, + "id": 8739, "linearizedBaseContracts": [ - 6178 + 8739 ], "name": "ITokenExchange", "nodeType": "ContractDefinition", @@ -374,7 +374,7 @@ { "body": null, "documentation": null, - "id": 6170, + "id": 8731, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -382,31 +382,31 @@ "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 6166, + "id": 8727, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6161, + "id": 8722, "name": "token", "nodeType": "VariableDeclaration", - "scope": 6170, - "src": "138:11:22", + "scope": 8731, + "src": "138:11:33", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" }, "typeName": { "contractScope": null, - "id": 6160, + "id": 8721, "name": "ERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7017, - "src": "138:5:22", + "referencedDeclaration": 9765, + "src": "138:5:33", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, @@ -415,11 +415,11 @@ }, { "constant": false, - "id": 6163, + "id": 8724, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 6170, - "src": "151:15:22", + "scope": 8731, + "src": "151:15:33", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -427,10 +427,10 @@ "typeString": "address" }, "typeName": { - "id": 6162, + "id": 8723, "name": "address", "nodeType": "ElementaryTypeName", - "src": "151:7:22", + "src": "151:7:33", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -441,11 +441,11 @@ }, { "constant": false, - "id": 6165, + "id": 8726, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 6170, - "src": "168:11:22", + "scope": 8731, + "src": "168:11:33", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -453,10 +453,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6164, + "id": 8725, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "168:4:22", + "src": "168:4:33", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -466,20 +466,20 @@ "visibility": "internal" } ], - "src": "137:43:22" + "src": "137:43:33" }, "payable": false, "returnParameters": { - "id": 6169, + "id": 8730, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6168, + "id": 8729, "name": "", "nodeType": "VariableDeclaration", - "scope": 6170, - "src": "199:4:22", + "scope": 8731, + "src": "199:4:33", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -487,10 +487,10 @@ "typeString": "bool" }, "typeName": { - "id": 6167, + "id": 8728, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "199:4:22", + "src": "199:4:33", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -500,10 +500,10 @@ "visibility": "internal" } ], - "src": "198:6:22" + "src": "198:6:33" }, - "scope": 6178, - "src": "121:84:22", + "scope": 8739, + "src": "121:84:33", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -511,7 +511,7 @@ { "body": null, "documentation": null, - "id": 6177, + "id": 8738, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -519,31 +519,31 @@ "name": "exchange", "nodeType": "FunctionDefinition", "parameters": { - "id": 6175, + "id": 8736, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6172, + "id": 8733, "name": "fromToken", "nodeType": "VariableDeclaration", - "scope": 6177, - "src": "229:15:22", + "scope": 8738, + "src": "229:15:33", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" }, "typeName": { "contractScope": null, - "id": 6171, + "id": 8732, "name": "ERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7017, - "src": "229:5:22", + "referencedDeclaration": 9765, + "src": "229:5:33", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, @@ -552,11 +552,11 @@ }, { "constant": false, - "id": 6174, + "id": 8735, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 6177, - "src": "246:11:22", + "scope": 8738, + "src": "246:11:33", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -564,10 +564,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6173, + "id": 8734, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "246:4:22", + "src": "246:4:33", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -577,27 +577,27 @@ "visibility": "internal" } ], - "src": "228:30:22" + "src": "228:30:33" }, "payable": false, "returnParameters": { - "id": 6176, + "id": 8737, "nodeType": "ParameterList", "parameters": [], - "src": "267:0:22" + "src": "267:0:33" }, - "scope": 6178, - "src": "211:57:22", + "scope": 8739, + "src": "211:57:33", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" } ], - "scope": 6179, - "src": "91:179:22" + "scope": 8740, + "src": "91:179:33" } ], - "src": "0:271:22" + "src": "0:271:33" }, "compiler": { "name": "solc", @@ -605,5 +605,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-02T11:52:56.689Z" + "updatedAt": "2018-10-22T07:56:01.684Z" } \ No newline at end of file diff --git a/build/contracts/ITokenExchanger.json b/build/contracts/ITokenExchanger.json index 1c1b142a..a13c5936 100644 --- a/build/contracts/ITokenExchanger.json +++ b/build/contracts/ITokenExchanger.json @@ -136,14 +136,14 @@ "absolutePath": "/home/circleci/code/contracts/token/exchanger/ITokenExchanger.sol", "exportedSymbols": { "ITokenExchanger": [ - 6187 + 8748 ] }, - "id": 6188, + "id": 8749, "nodeType": "SourceUnit", "nodes": [ { - "id": 6180, + "id": 8741, "literals": [ "solidity", "^", @@ -151,27 +151,27 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:23" + "src": "0:24:34" }, { "absolutePath": "/home/circleci/code/contracts/token/exchanger/ITokenExchange.sol", "file": "./ITokenExchange.sol", - "id": 6181, + "id": 8742, "nodeType": "ImportDirective", - "scope": 6188, - "sourceUnit": 6179, - "src": "26:30:23", + "scope": 8749, + "sourceUnit": 8740, + "src": "26:30:34", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/token/exchanger/ITokenLedger.sol", "file": "./ITokenLedger.sol", - "id": 6182, + "id": 8743, "nodeType": "ImportDirective", - "scope": 6188, - "sourceUnit": 6223, - "src": "57:28:23", + "scope": 8749, + "sourceUnit": 8784, + "src": "57:28:34", "symbolAliases": [], "unitAlias": "" }, @@ -181,73 +181,73 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 6183, + "id": 8744, "name": "ITokenExchange", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6178, - "src": "115:14:23", + "referencedDeclaration": 8739, + "src": "115:14:34", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchange_$6178", + "typeIdentifier": "t_contract$_ITokenExchange_$8739", "typeString": "contract ITokenExchange" } }, - "id": 6184, + "id": 8745, "nodeType": "InheritanceSpecifier", - "src": "115:14:23" + "src": "115:14:34" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 6185, + "id": 8746, "name": "ITokenLedger", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6222, - "src": "131:12:23", + "referencedDeclaration": 8783, + "src": "131:12:34", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenLedger_$6222", + "typeIdentifier": "t_contract$_ITokenLedger_$8783", "typeString": "contract ITokenLedger" } }, - "id": 6186, + "id": 8747, "nodeType": "InheritanceSpecifier", - "src": "131:12:23" + "src": "131:12:34" } ], "contractDependencies": [ - 6178, - 6222 + 8739, + 8783 ], "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 6187, + "id": 8748, "linearizedBaseContracts": [ - 6187, - 6222, - 6178 + 8748, + 8783, + 8739 ], "name": "ITokenExchanger", "nodeType": "ContractDefinition", "nodes": [], - "scope": 6188, - "src": "87:59:23" + "scope": 8749, + "src": "87:59:34" } ], - "src": "0:147:23" + "src": "0:147:34" }, "legacyAST": { "absolutePath": "/home/circleci/code/contracts/token/exchanger/ITokenExchanger.sol", "exportedSymbols": { "ITokenExchanger": [ - 6187 + 8748 ] }, - "id": 6188, + "id": 8749, "nodeType": "SourceUnit", "nodes": [ { - "id": 6180, + "id": 8741, "literals": [ "solidity", "^", @@ -255,27 +255,27 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:23" + "src": "0:24:34" }, { "absolutePath": "/home/circleci/code/contracts/token/exchanger/ITokenExchange.sol", "file": "./ITokenExchange.sol", - "id": 6181, + "id": 8742, "nodeType": "ImportDirective", - "scope": 6188, - "sourceUnit": 6179, - "src": "26:30:23", + "scope": 8749, + "sourceUnit": 8740, + "src": "26:30:34", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/token/exchanger/ITokenLedger.sol", "file": "./ITokenLedger.sol", - "id": 6182, + "id": 8743, "nodeType": "ImportDirective", - "scope": 6188, - "sourceUnit": 6223, - "src": "57:28:23", + "scope": 8749, + "sourceUnit": 8784, + "src": "57:28:34", "symbolAliases": [], "unitAlias": "" }, @@ -285,60 +285,60 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 6183, + "id": 8744, "name": "ITokenExchange", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6178, - "src": "115:14:23", + "referencedDeclaration": 8739, + "src": "115:14:34", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchange_$6178", + "typeIdentifier": "t_contract$_ITokenExchange_$8739", "typeString": "contract ITokenExchange" } }, - "id": 6184, + "id": 8745, "nodeType": "InheritanceSpecifier", - "src": "115:14:23" + "src": "115:14:34" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 6185, + "id": 8746, "name": "ITokenLedger", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6222, - "src": "131:12:23", + "referencedDeclaration": 8783, + "src": "131:12:34", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenLedger_$6222", + "typeIdentifier": "t_contract$_ITokenLedger_$8783", "typeString": "contract ITokenLedger" } }, - "id": 6186, + "id": 8747, "nodeType": "InheritanceSpecifier", - "src": "131:12:23" + "src": "131:12:34" } ], "contractDependencies": [ - 6178, - 6222 + 8739, + 8783 ], "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 6187, + "id": 8748, "linearizedBaseContracts": [ - 6187, - 6222, - 6178 + 8748, + 8783, + 8739 ], "name": "ITokenExchanger", "nodeType": "ContractDefinition", "nodes": [], - "scope": 6188, - "src": "87:59:23" + "scope": 8749, + "src": "87:59:34" } ], - "src": "0:147:23" + "src": "0:147:34" }, "compiler": { "name": "solc", @@ -346,5 +346,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-02T11:52:56.689Z" + "updatedAt": "2018-10-22T07:56:01.684Z" } \ No newline at end of file diff --git a/build/contracts/ITokenLedger.json b/build/contracts/ITokenLedger.json index c2138eb7..3c7c5abe 100644 --- a/build/contracts/ITokenLedger.json +++ b/build/contracts/ITokenLedger.json @@ -91,14 +91,14 @@ "absolutePath": "/home/circleci/code/contracts/token/exchanger/ITokenLedger.sol", "exportedSymbols": { "ITokenLedger": [ - 6222 + 8783 ] }, - "id": 6223, + "id": 8784, "nodeType": "SourceUnit", "nodes": [ { - "id": 6189, + "id": 8750, "literals": [ "solidity", "^", @@ -106,27 +106,27 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:24" + "src": "0:24:35" }, { "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "id": 6190, + "id": 8751, "nodeType": "ImportDirective", - "scope": 6223, - "sourceUnit": 7018, - "src": "26:63:24", + "scope": 8784, + "sourceUnit": 9766, + "src": "26:63:35", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/token/WToken.sol", "file": "../WToken.sol", - "id": 6191, + "id": 8752, "nodeType": "ImportDirective", - "scope": 6223, - "sourceUnit": 5926, - "src": "90:23:24", + "scope": 8784, + "sourceUnit": 8487, + "src": "90:23:35", "symbolAliases": [], "unitAlias": "" }, @@ -136,9 +136,9 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 6222, + "id": 8783, "linearizedBaseContracts": [ - 6222 + 8783 ], "name": "ITokenLedger", "nodeType": "ContractDefinition", @@ -146,7 +146,7 @@ { "body": null, "documentation": null, - "id": 6198, + "id": 8759, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -154,31 +154,31 @@ "name": "addTokenToListing", "nodeType": "FunctionDefinition", "parameters": { - "id": 6196, + "id": 8757, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6193, + "id": 8754, "name": "token", "nodeType": "VariableDeclaration", - "scope": 6198, - "src": "170:11:24", + "scope": 8759, + "src": "170:11:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" }, "typeName": { "contractScope": null, - "id": 6192, + "id": 8753, "name": "ERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7017, - "src": "170:5:24", + "referencedDeclaration": 9765, + "src": "170:5:35", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, @@ -187,26 +187,26 @@ }, { "constant": false, - "id": 6195, + "id": 8756, "name": "wToken", "nodeType": "VariableDeclaration", - "scope": 6198, - "src": "183:13:24", + "scope": 8759, + "src": "183:13:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" }, "typeName": { "contractScope": null, - "id": 6194, + "id": 8755, "name": "WToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5925, - "src": "183:6:24", + "referencedDeclaration": 8486, + "src": "183:6:35", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, @@ -214,17 +214,17 @@ "visibility": "internal" } ], - "src": "169:28:24" + "src": "169:28:35" }, "payable": false, "returnParameters": { - "id": 6197, + "id": 8758, "nodeType": "ParameterList", "parameters": [], - "src": "206:0:24" + "src": "206:0:35" }, - "scope": 6222, - "src": "143:64:24", + "scope": 8783, + "src": "143:64:35", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -232,7 +232,7 @@ { "body": null, "documentation": null, - "id": 6207, + "id": 8768, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -240,31 +240,31 @@ "name": "hasPair", "nodeType": "FunctionDefinition", "parameters": { - "id": 6203, + "id": 8764, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6200, + "id": 8761, "name": "token1", "nodeType": "VariableDeclaration", - "scope": 6207, - "src": "230:12:24", + "scope": 8768, + "src": "230:12:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" }, "typeName": { "contractScope": null, - "id": 6199, + "id": 8760, "name": "ERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7017, - "src": "230:5:24", + "referencedDeclaration": 9765, + "src": "230:5:35", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, @@ -273,26 +273,26 @@ }, { "constant": false, - "id": 6202, + "id": 8763, "name": "token2", "nodeType": "VariableDeclaration", - "scope": 6207, - "src": "244:12:24", + "scope": 8768, + "src": "244:12:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" }, "typeName": { "contractScope": null, - "id": 6201, + "id": 8762, "name": "ERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7017, - "src": "244:5:24", + "referencedDeclaration": 9765, + "src": "244:5:35", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, @@ -300,20 +300,20 @@ "visibility": "internal" } ], - "src": "229:28:24" + "src": "229:28:35" }, "payable": false, "returnParameters": { - "id": 6206, + "id": 8767, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6205, + "id": 8766, "name": "", "nodeType": "VariableDeclaration", - "scope": 6207, - "src": "279:4:24", + "scope": 8768, + "src": "279:4:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -321,10 +321,10 @@ "typeString": "bool" }, "typeName": { - "id": 6204, + "id": 8765, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "279:4:24", + "src": "279:4:35", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -334,10 +334,10 @@ "visibility": "internal" } ], - "src": "278:6:24" + "src": "278:6:35" }, - "scope": 6222, - "src": "213:72:24", + "scope": 8783, + "src": "213:72:35", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -345,7 +345,7 @@ { "body": null, "documentation": null, - "id": 6214, + "id": 8775, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -353,16 +353,16 @@ "name": "getWTokenByToken", "nodeType": "FunctionDefinition", "parameters": { - "id": 6210, + "id": 8771, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6209, + "id": 8770, "name": "token", "nodeType": "VariableDeclaration", - "scope": 6214, - "src": "317:13:24", + "scope": 8775, + "src": "317:13:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -370,10 +370,10 @@ "typeString": "address" }, "typeName": { - "id": 6208, + "id": 8769, "name": "address", "nodeType": "ElementaryTypeName", - "src": "317:7:24", + "src": "317:7:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -383,35 +383,35 @@ "visibility": "internal" } ], - "src": "316:15:24" + "src": "316:15:35" }, "payable": false, "returnParameters": { - "id": 6213, + "id": 8774, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6212, + "id": 8773, "name": "wTokenAddress", "nodeType": "VariableDeclaration", - "scope": 6214, - "src": "353:20:24", + "scope": 8775, + "src": "353:20:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" }, "typeName": { "contractScope": null, - "id": 6211, + "id": 8772, "name": "WToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5925, - "src": "353:6:24", + "referencedDeclaration": 8486, + "src": "353:6:35", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, @@ -419,10 +419,10 @@ "visibility": "internal" } ], - "src": "352:22:24" + "src": "352:22:35" }, - "scope": 6222, - "src": "291:84:24", + "scope": 8783, + "src": "291:84:35", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -430,7 +430,7 @@ { "body": null, "documentation": null, - "id": 6221, + "id": 8782, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -438,16 +438,16 @@ "name": "getTokenByWToken", "nodeType": "FunctionDefinition", "parameters": { - "id": 6217, + "id": 8778, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6216, + "id": 8777, "name": "wToken", "nodeType": "VariableDeclaration", - "scope": 6221, - "src": "407:14:24", + "scope": 8782, + "src": "407:14:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -455,10 +455,10 @@ "typeString": "address" }, "typeName": { - "id": 6215, + "id": 8776, "name": "address", "nodeType": "ElementaryTypeName", - "src": "407:7:24", + "src": "407:7:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -468,35 +468,35 @@ "visibility": "internal" } ], - "src": "406:16:24" + "src": "406:16:35" }, "payable": false, "returnParameters": { - "id": 6220, + "id": 8781, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6219, + "id": 8780, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 6221, - "src": "444:18:24", + "scope": 8782, + "src": "444:18:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" }, "typeName": { "contractScope": null, - "id": 6218, + "id": 8779, "name": "ERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7017, - "src": "444:5:24", + "referencedDeclaration": 9765, + "src": "444:5:35", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, @@ -504,33 +504,33 @@ "visibility": "internal" } ], - "src": "443:20:24" + "src": "443:20:35" }, - "scope": 6222, - "src": "381:83:24", + "scope": 8783, + "src": "381:83:35", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 6223, - "src": "115:351:24" + "scope": 8784, + "src": "115:351:35" } ], - "src": "0:467:24" + "src": "0:467:35" }, "legacyAST": { "absolutePath": "/home/circleci/code/contracts/token/exchanger/ITokenLedger.sol", "exportedSymbols": { "ITokenLedger": [ - 6222 + 8783 ] }, - "id": 6223, + "id": 8784, "nodeType": "SourceUnit", "nodes": [ { - "id": 6189, + "id": 8750, "literals": [ "solidity", "^", @@ -538,27 +538,27 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:24" + "src": "0:24:35" }, { "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "id": 6190, + "id": 8751, "nodeType": "ImportDirective", - "scope": 6223, - "sourceUnit": 7018, - "src": "26:63:24", + "scope": 8784, + "sourceUnit": 9766, + "src": "26:63:35", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/token/WToken.sol", "file": "../WToken.sol", - "id": 6191, + "id": 8752, "nodeType": "ImportDirective", - "scope": 6223, - "sourceUnit": 5926, - "src": "90:23:24", + "scope": 8784, + "sourceUnit": 8487, + "src": "90:23:35", "symbolAliases": [], "unitAlias": "" }, @@ -568,9 +568,9 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 6222, + "id": 8783, "linearizedBaseContracts": [ - 6222 + 8783 ], "name": "ITokenLedger", "nodeType": "ContractDefinition", @@ -578,7 +578,7 @@ { "body": null, "documentation": null, - "id": 6198, + "id": 8759, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -586,31 +586,31 @@ "name": "addTokenToListing", "nodeType": "FunctionDefinition", "parameters": { - "id": 6196, + "id": 8757, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6193, + "id": 8754, "name": "token", "nodeType": "VariableDeclaration", - "scope": 6198, - "src": "170:11:24", + "scope": 8759, + "src": "170:11:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" }, "typeName": { "contractScope": null, - "id": 6192, + "id": 8753, "name": "ERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7017, - "src": "170:5:24", + "referencedDeclaration": 9765, + "src": "170:5:35", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, @@ -619,26 +619,26 @@ }, { "constant": false, - "id": 6195, + "id": 8756, "name": "wToken", "nodeType": "VariableDeclaration", - "scope": 6198, - "src": "183:13:24", + "scope": 8759, + "src": "183:13:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" }, "typeName": { "contractScope": null, - "id": 6194, + "id": 8755, "name": "WToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5925, - "src": "183:6:24", + "referencedDeclaration": 8486, + "src": "183:6:35", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, @@ -646,17 +646,17 @@ "visibility": "internal" } ], - "src": "169:28:24" + "src": "169:28:35" }, "payable": false, "returnParameters": { - "id": 6197, + "id": 8758, "nodeType": "ParameterList", "parameters": [], - "src": "206:0:24" + "src": "206:0:35" }, - "scope": 6222, - "src": "143:64:24", + "scope": 8783, + "src": "143:64:35", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -664,7 +664,7 @@ { "body": null, "documentation": null, - "id": 6207, + "id": 8768, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -672,31 +672,31 @@ "name": "hasPair", "nodeType": "FunctionDefinition", "parameters": { - "id": 6203, + "id": 8764, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6200, + "id": 8761, "name": "token1", "nodeType": "VariableDeclaration", - "scope": 6207, - "src": "230:12:24", + "scope": 8768, + "src": "230:12:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" }, "typeName": { "contractScope": null, - "id": 6199, + "id": 8760, "name": "ERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7017, - "src": "230:5:24", + "referencedDeclaration": 9765, + "src": "230:5:35", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, @@ -705,26 +705,26 @@ }, { "constant": false, - "id": 6202, + "id": 8763, "name": "token2", "nodeType": "VariableDeclaration", - "scope": 6207, - "src": "244:12:24", + "scope": 8768, + "src": "244:12:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" }, "typeName": { "contractScope": null, - "id": 6201, + "id": 8762, "name": "ERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7017, - "src": "244:5:24", + "referencedDeclaration": 9765, + "src": "244:5:35", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, @@ -732,20 +732,20 @@ "visibility": "internal" } ], - "src": "229:28:24" + "src": "229:28:35" }, "payable": false, "returnParameters": { - "id": 6206, + "id": 8767, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6205, + "id": 8766, "name": "", "nodeType": "VariableDeclaration", - "scope": 6207, - "src": "279:4:24", + "scope": 8768, + "src": "279:4:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -753,10 +753,10 @@ "typeString": "bool" }, "typeName": { - "id": 6204, + "id": 8765, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "279:4:24", + "src": "279:4:35", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -766,10 +766,10 @@ "visibility": "internal" } ], - "src": "278:6:24" + "src": "278:6:35" }, - "scope": 6222, - "src": "213:72:24", + "scope": 8783, + "src": "213:72:35", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -777,7 +777,7 @@ { "body": null, "documentation": null, - "id": 6214, + "id": 8775, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -785,16 +785,16 @@ "name": "getWTokenByToken", "nodeType": "FunctionDefinition", "parameters": { - "id": 6210, + "id": 8771, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6209, + "id": 8770, "name": "token", "nodeType": "VariableDeclaration", - "scope": 6214, - "src": "317:13:24", + "scope": 8775, + "src": "317:13:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -802,10 +802,10 @@ "typeString": "address" }, "typeName": { - "id": 6208, + "id": 8769, "name": "address", "nodeType": "ElementaryTypeName", - "src": "317:7:24", + "src": "317:7:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -815,35 +815,35 @@ "visibility": "internal" } ], - "src": "316:15:24" + "src": "316:15:35" }, "payable": false, "returnParameters": { - "id": 6213, + "id": 8774, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6212, + "id": 8773, "name": "wTokenAddress", "nodeType": "VariableDeclaration", - "scope": 6214, - "src": "353:20:24", + "scope": 8775, + "src": "353:20:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" }, "typeName": { "contractScope": null, - "id": 6211, + "id": 8772, "name": "WToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5925, - "src": "353:6:24", + "referencedDeclaration": 8486, + "src": "353:6:35", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, @@ -851,10 +851,10 @@ "visibility": "internal" } ], - "src": "352:22:24" + "src": "352:22:35" }, - "scope": 6222, - "src": "291:84:24", + "scope": 8783, + "src": "291:84:35", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -862,7 +862,7 @@ { "body": null, "documentation": null, - "id": 6221, + "id": 8782, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -870,16 +870,16 @@ "name": "getTokenByWToken", "nodeType": "FunctionDefinition", "parameters": { - "id": 6217, + "id": 8778, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6216, + "id": 8777, "name": "wToken", "nodeType": "VariableDeclaration", - "scope": 6221, - "src": "407:14:24", + "scope": 8782, + "src": "407:14:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -887,10 +887,10 @@ "typeString": "address" }, "typeName": { - "id": 6215, + "id": 8776, "name": "address", "nodeType": "ElementaryTypeName", - "src": "407:7:24", + "src": "407:7:35", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -900,35 +900,35 @@ "visibility": "internal" } ], - "src": "406:16:24" + "src": "406:16:35" }, "payable": false, "returnParameters": { - "id": 6220, + "id": 8781, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6219, + "id": 8780, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 6221, - "src": "444:18:24", + "scope": 8782, + "src": "444:18:35", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" }, "typeName": { "contractScope": null, - "id": 6218, + "id": 8779, "name": "ERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7017, - "src": "444:5:24", + "referencedDeclaration": 9765, + "src": "444:5:35", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, @@ -936,20 +936,20 @@ "visibility": "internal" } ], - "src": "443:20:24" + "src": "443:20:35" }, - "scope": 6222, - "src": "381:83:24", + "scope": 8783, + "src": "381:83:35", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 6223, - "src": "115:351:24" + "scope": 8784, + "src": "115:351:35" } ], - "src": "0:467:24" + "src": "0:467:35" }, "compiler": { "name": "solc", @@ -957,5 +957,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-02T11:52:56.689Z" + "updatedAt": "2018-10-22T07:56:01.684Z" } \ No newline at end of file diff --git a/build/contracts/IW12Crowdsale.json b/build/contracts/IW12Crowdsale.json index 2deead62..4cecfe9e 100644 --- a/build/contracts/IW12Crowdsale.json +++ b/build/contracts/IW12Crowdsale.json @@ -1,11 +1,6 @@ { "contractName": "IW12Crowdsale", "abi": [ - { - "payable": true, - "stateMutability": "payable", - "type": "fallback" - }, { "constant": false, "inputs": [ @@ -42,6 +37,10 @@ { "name": "nameAndDescriptionsOfMilestones", "type": "bytes" + }, + { + "name": "paymentMethodsList", + "type": "bytes32[]" } ], "name": "setup", @@ -259,7 +258,16 @@ }, { "constant": false, - "inputs": [], + "inputs": [ + { + "name": "method", + "type": "bytes32" + }, + { + "name": "amount", + "type": "uint256" + } + ], "name": "buyTokens", "outputs": [], "payable": true, @@ -285,20 +293,20 @@ "deployedBytecode": "0x", "sourceMap": "", "deployedSourceMap": "", - "source": "pragma solidity ^0.4.24;\n\nimport \"../token/WToken.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 ) external;\n\n function getWToken() external view returns(WToken);\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 () payable external;\n\n function buyTokens() payable external;\n\n function transferOwnership(address newOwner) external;\n}\n", - "sourcePath": "/home/circleci/code/contracts/interfaces/IW12Crowdsale.sol", + "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", + "sourcePath": "/home/circleci/code/contracts/crowdsale/IW12Crowdsale.sol", "ast": { - "absolutePath": "/home/circleci/code/contracts/interfaces/IW12Crowdsale.sol", + "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Crowdsale.sol", "exportedSymbols": { "IW12Crowdsale": [ - 4426 + 1204 ] }, - "id": 4427, + "id": 1205, "nodeType": "SourceUnit", "nodes": [ { - "id": 4303, + "id": 1077, "literals": [ "solidity", "^", @@ -306,16 +314,16 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:10" + "src": "0:24:3" }, { - "absolutePath": "/home/circleci/code/contracts/token/WToken.sol", - "file": "../token/WToken.sol", - "id": 4304, + "absolutePath": "/home/circleci/code/contracts/token/IWToken.sol", + "file": "../token/IWToken.sol", + "id": 1078, "nodeType": "ImportDirective", - "scope": 4427, - "sourceUnit": 5926, - "src": "26:29:10", + "scope": 1205, + "sourceUnit": 7631, + "src": "26:30:3", "symbolAliases": [], "unitAlias": "" }, @@ -325,9 +333,9 @@ "contractKind": "interface", "documentation": null, "fullyImplemented": false, - "id": 4426, + "id": 1204, "linearizedBaseContracts": [ - 4426 + 1204 ], "name": "IW12Crowdsale", "nodeType": "ContractDefinition", @@ -335,7 +343,7 @@ { "body": null, "documentation": null, - "id": 4309, + "id": 1083, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -343,16 +351,16 @@ "name": "setParameters", "nodeType": "FunctionDefinition", "parameters": { - "id": 4307, + "id": 1081, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4306, + "id": 1080, "name": "price", "nodeType": "VariableDeclaration", - "scope": 4309, - "src": "111:10:10", + "scope": 1083, + "src": "112:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -360,10 +368,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4305, + "id": 1079, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "111:4:10", + "src": "112:4:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -373,17 +381,17 @@ "visibility": "internal" } ], - "src": "110:12:10" + "src": "111:12:3" }, "payable": false, "returnParameters": { - "id": 4308, + "id": 1082, "nodeType": "ParameterList", "parameters": [], - "src": "131:0:10" + "src": "132:0:3" }, - "scope": 4426, - "src": "88:44:10", + "scope": 1204, + "src": "89:44:3", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -391,7 +399,7 @@ { "body": null, "documentation": null, - "id": 4330, + "id": 1107, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -399,16 +407,16 @@ "name": "setup", "nodeType": "FunctionDefinition", "parameters": { - "id": 4328, + "id": 1105, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4314, + "id": 1088, "name": "parametersOfStages", "nodeType": "VariableDeclaration", - "scope": 4330, - "src": "259:28:10", + "scope": 1107, + "src": "260:28:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -418,27 +426,27 @@ "typeName": { "baseType": { "baseType": { - "id": 4310, + "id": 1084, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "259:4:10", + "src": "260:4:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 4312, + "id": 1086, "length": { "argumentTypes": null, "hexValue": "36", - "id": 4311, + "id": 1085, "isConstant": false, "isLValue": false, "isPure": false, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "264:1:10", + "src": "265:1:3", "subdenomination": null, "typeDescriptions": { "typeIdentifier": null, @@ -447,16 +455,16 @@ "value": "6" }, "nodeType": "ArrayTypeName", - "src": "259:7:10", + "src": "260:7:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_storage_ptr", "typeString": "uint256[6]" } }, - "id": 4313, + "id": 1087, "length": null, "nodeType": "ArrayTypeName", - "src": "259:9:10", + "src": "260:9:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$6_storage_$dyn_storage_ptr", "typeString": "uint256[6][]" @@ -467,11 +475,11 @@ }, { "constant": false, - "id": 4317, + "id": 1091, "name": "bonusConditionsOfStages", "nodeType": "VariableDeclaration", - "scope": 4330, - "src": "297:30:10", + "scope": 1107, + "src": "298:30:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -480,19 +488,19 @@ }, "typeName": { "baseType": { - "id": 4315, + "id": 1089, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "297:4:10", + "src": "298:4:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 4316, + "id": 1090, "length": null, "nodeType": "ArrayTypeName", - "src": "297:6:10", + "src": "298:6:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -503,11 +511,11 @@ }, { "constant": false, - "id": 4322, + "id": 1096, "name": "parametersOfMilestones", "nodeType": "VariableDeclaration", - "scope": 4330, - "src": "337:32:10", + "scope": 1107, + "src": "338:32:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -517,27 +525,27 @@ "typeName": { "baseType": { "baseType": { - "id": 4318, + "id": 1092, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "337:4:10", + "src": "338:4:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 4320, + "id": 1094, "length": { "argumentTypes": null, "hexValue": "34", - "id": 4319, + "id": 1093, "isConstant": false, "isLValue": false, "isPure": false, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "342:1:10", + "src": "343:1:3", "subdenomination": null, "typeDescriptions": { "typeIdentifier": null, @@ -546,16 +554,16 @@ "value": "4" }, "nodeType": "ArrayTypeName", - "src": "337:7:10", + "src": "338:7:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_storage_ptr", "typeString": "uint256[4]" } }, - "id": 4321, + "id": 1095, "length": null, "nodeType": "ArrayTypeName", - "src": "337:9:10", + "src": "338:9:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$4_storage_$dyn_storage_ptr", "typeString": "uint256[4][]" @@ -566,11 +574,11 @@ }, { "constant": false, - "id": 4325, + "id": 1099, "name": "nameAndDescriptionsOffsetOfMilestones", "nodeType": "VariableDeclaration", - "scope": 4330, - "src": "379:46:10", + "scope": 1107, + "src": "380:46:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -579,19 +587,19 @@ }, "typeName": { "baseType": { - "id": 4323, + "id": 1097, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "379:6:10", + "src": "380:6:3", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 4324, + "id": 1098, "length": null, "nodeType": "ArrayTypeName", - "src": "379:8:10", + "src": "380:8:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", "typeString": "uint32[]" @@ -602,11 +610,11 @@ }, { "constant": false, - "id": 4327, + "id": 1101, "name": "nameAndDescriptionsOfMilestones", "nodeType": "VariableDeclaration", - "scope": 4330, - "src": "435:37:10", + "scope": 1107, + "src": "436:37:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -614,10 +622,10 @@ "typeString": "bytes" }, "typeName": { - "id": 4326, + "id": 1100, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "435:5:10", + "src": "436:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -625,19 +633,55 @@ }, "value": null, "visibility": "internal" + }, + { + "constant": false, + "id": 1104, + "name": "paymentMethodsList", + "nodeType": "VariableDeclaration", + "scope": 1107, + "src": "483:28:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 1102, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "483:7:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 1103, + "length": null, + "nodeType": "ArrayTypeName", + "src": "483:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "value": null, + "visibility": "internal" } ], - "src": "249:229:10" + "src": "250:267:3" }, "payable": false, "returnParameters": { - "id": 4329, + "id": 1106, "nodeType": "ParameterList", "parameters": [], - "src": "487:0:10" + "src": "526:0:3" }, - "scope": 4426, - "src": "235:253:10", + "scope": 1204, + "src": "236:291:3", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -645,7 +689,7 @@ { "body": null, "documentation": null, - "id": 4335, + "id": 1112, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -653,49 +697,49 @@ "name": "getWToken", "nodeType": "FunctionDefinition", "parameters": { - "id": 4331, + "id": 1108, "nodeType": "ParameterList", "parameters": [], - "src": "512:2:10" + "src": "551:2:3" }, "payable": false, "returnParameters": { - "id": 4334, + "id": 1111, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4333, + "id": 1110, "name": "", "nodeType": "VariableDeclaration", - "scope": 4335, - "src": "537:6:10", + "scope": 1112, + "src": "576:7:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" }, "typeName": { "contractScope": null, - "id": 4332, - "name": "WToken", + "id": 1109, + "name": "IWToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5925, - "src": "537:6:10", + "referencedDeclaration": 7630, + "src": "576:7:3", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" } }, "value": null, "visibility": "internal" } ], - "src": "536:8:10" + "src": "575:9:3" }, - "scope": 4426, - "src": "494:51:10", + "scope": 1204, + "src": "533:52:3", "stateMutability": "view", "superFunction": null, "visibility": "external" @@ -703,7 +747,7 @@ { "body": null, "documentation": null, - "id": 4352, + "id": 1129, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -711,16 +755,16 @@ "name": "getMilestone", "nodeType": "FunctionDefinition", "parameters": { - "id": 4338, + "id": 1115, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4337, + "id": 1114, "name": "index", "nodeType": "VariableDeclaration", - "scope": 4352, - "src": "573:10:10", + "scope": 1129, + "src": "613:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -728,10 +772,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4336, + "id": 1113, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "573:4:10", + "src": "613:4:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -741,20 +785,20 @@ "visibility": "internal" } ], - "src": "572:12:10" + "src": "612:12:3" }, "payable": false, "returnParameters": { - "id": 4351, + "id": 1128, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4340, + "id": 1117, "name": "", "nodeType": "VariableDeclaration", - "scope": 4352, - "src": "608:6:10", + "scope": 1129, + "src": "648:6:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -762,10 +806,10 @@ "typeString": "uint32" }, "typeName": { - "id": 4339, + "id": 1116, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "608:6:10", + "src": "648:6:3", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -776,11 +820,11 @@ }, { "constant": false, - "id": 4342, + "id": 1119, "name": "", "nodeType": "VariableDeclaration", - "scope": 4352, - "src": "616:4:10", + "scope": 1129, + "src": "656:4:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -788,10 +832,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4341, + "id": 1118, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "616:4:10", + "src": "656:4:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -802,11 +846,11 @@ }, { "constant": false, - "id": 4344, + "id": 1121, "name": "", "nodeType": "VariableDeclaration", - "scope": 4352, - "src": "622:6:10", + "scope": 1129, + "src": "662:6:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -814,10 +858,10 @@ "typeString": "uint32" }, "typeName": { - "id": 4343, + "id": 1120, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "622:6:10", + "src": "662:6:3", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -828,11 +872,11 @@ }, { "constant": false, - "id": 4346, + "id": 1123, "name": "", "nodeType": "VariableDeclaration", - "scope": 4352, - "src": "630:6:10", + "scope": 1129, + "src": "670:6:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -840,10 +884,10 @@ "typeString": "uint32" }, "typeName": { - "id": 4345, + "id": 1122, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "630:6:10", + "src": "670:6:3", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -854,11 +898,11 @@ }, { "constant": false, - "id": 4348, + "id": 1125, "name": "", "nodeType": "VariableDeclaration", - "scope": 4352, - "src": "638:5:10", + "scope": 1129, + "src": "678:5:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -866,10 +910,10 @@ "typeString": "bytes" }, "typeName": { - "id": 4347, + "id": 1124, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "638:5:10", + "src": "678:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -880,11 +924,11 @@ }, { "constant": false, - "id": 4350, + "id": 1127, "name": "", "nodeType": "VariableDeclaration", - "scope": 4352, - "src": "645:5:10", + "scope": 1129, + "src": "685:5:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -892,10 +936,10 @@ "typeString": "bytes" }, "typeName": { - "id": 4349, + "id": 1126, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "645:5:10", + "src": "685:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -905,10 +949,10 @@ "visibility": "internal" } ], - "src": "607:44:10" + "src": "647:44:3" }, - "scope": 4426, - "src": "551:101:10", + "scope": 1204, + "src": "591:101:3", "stateMutability": "view", "superFunction": null, "visibility": "external" @@ -916,7 +960,7 @@ { "body": null, "documentation": null, - "id": 4371, + "id": 1148, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -924,16 +968,16 @@ "name": "getStage", "nodeType": "FunctionDefinition", "parameters": { - "id": 4355, + "id": 1132, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4354, + "id": 1131, "name": "index", "nodeType": "VariableDeclaration", - "scope": 4371, - "src": "676:10:10", + "scope": 1148, + "src": "716:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -941,10 +985,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4353, + "id": 1130, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "676:4:10", + "src": "716:4:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -954,20 +998,20 @@ "visibility": "internal" } ], - "src": "675:12:10" + "src": "715:12:3" }, "payable": false, "returnParameters": { - "id": 4370, + "id": 1147, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4357, + "id": 1134, "name": "", "nodeType": "VariableDeclaration", - "scope": 4371, - "src": "711:6:10", + "scope": 1148, + "src": "751:6:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -975,10 +1019,10 @@ "typeString": "uint32" }, "typeName": { - "id": 4356, + "id": 1133, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "711:6:10", + "src": "751:6:3", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -989,11 +1033,11 @@ }, { "constant": false, - "id": 4359, + "id": 1136, "name": "", "nodeType": "VariableDeclaration", - "scope": 4371, - "src": "719:6:10", + "scope": 1148, + "src": "759:6:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1001,10 +1045,10 @@ "typeString": "uint32" }, "typeName": { - "id": 4358, + "id": 1135, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "719:6:10", + "src": "759:6:3", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -1015,11 +1059,11 @@ }, { "constant": false, - "id": 4361, + "id": 1138, "name": "", "nodeType": "VariableDeclaration", - "scope": 4371, - "src": "727:4:10", + "scope": 1148, + "src": "767:4:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1027,10 +1071,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4360, + "id": 1137, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "727:4:10", + "src": "767:4:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1041,11 +1085,11 @@ }, { "constant": false, - "id": 4363, + "id": 1140, "name": "", "nodeType": "VariableDeclaration", - "scope": 4371, - "src": "733:6:10", + "scope": 1148, + "src": "773:6:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1053,10 +1097,10 @@ "typeString": "uint32" }, "typeName": { - "id": 4362, + "id": 1139, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "733:6:10", + "src": "773:6:3", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -1067,11 +1111,11 @@ }, { "constant": false, - "id": 4366, + "id": 1143, "name": "", "nodeType": "VariableDeclaration", - "scope": 4371, - "src": "741:6:10", + "scope": 1148, + "src": "781:6:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1080,19 +1124,19 @@ }, "typeName": { "baseType": { - "id": 4364, + "id": 1141, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "741:4:10", + "src": "781:4:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 4365, + "id": 1142, "length": null, "nodeType": "ArrayTypeName", - "src": "741:6:10", + "src": "781:6:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -1103,11 +1147,11 @@ }, { "constant": false, - "id": 4369, + "id": 1146, "name": "", "nodeType": "VariableDeclaration", - "scope": 4371, - "src": "749:6:10", + "scope": 1148, + "src": "789:6:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1116,19 +1160,19 @@ }, "typeName": { "baseType": { - "id": 4367, + "id": 1144, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "749:4:10", + "src": "789:4:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 4368, + "id": 1145, "length": null, "nodeType": "ArrayTypeName", - "src": "749:6:10", + "src": "789:6:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -1138,10 +1182,10 @@ "visibility": "internal" } ], - "src": "710:46:10" + "src": "750:46:3" }, - "scope": 4426, - "src": "658:99:10", + "scope": 1204, + "src": "698:99:3", "stateMutability": "view", "superFunction": null, "visibility": "external" @@ -1149,7 +1193,7 @@ { "body": null, "documentation": null, - "id": 4378, + "id": 1155, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -1157,23 +1201,23 @@ "name": "getCurrentMilestoneIndex", "nodeType": "FunctionDefinition", "parameters": { - "id": 4372, + "id": 1149, "nodeType": "ParameterList", "parameters": [], - "src": "796:2:10" + "src": "836:2:3" }, "payable": false, "returnParameters": { - "id": 4377, + "id": 1154, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4374, + "id": 1151, "name": "", "nodeType": "VariableDeclaration", - "scope": 4378, - "src": "822:4:10", + "scope": 1155, + "src": "862:4:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1181,10 +1225,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4373, + "id": 1150, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "822:4:10", + "src": "862:4:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1195,11 +1239,11 @@ }, { "constant": false, - "id": 4376, + "id": 1153, "name": "", "nodeType": "VariableDeclaration", - "scope": 4378, - "src": "828:4:10", + "scope": 1155, + "src": "868:4:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1207,10 +1251,10 @@ "typeString": "bool" }, "typeName": { - "id": 4375, + "id": 1152, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "828:4:10", + "src": "868:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1220,10 +1264,10 @@ "visibility": "internal" } ], - "src": "821:12:10" + "src": "861:12:3" }, - "scope": 4426, - "src": "763:71:10", + "scope": 1204, + "src": "803:71:3", "stateMutability": "view", "superFunction": null, "visibility": "external" @@ -1231,7 +1275,7 @@ { "body": null, "documentation": null, - "id": 4385, + "id": 1162, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -1239,23 +1283,23 @@ "name": "getLastMilestoneIndex", "nodeType": "FunctionDefinition", "parameters": { - "id": 4379, + "id": 1156, "nodeType": "ParameterList", "parameters": [], - "src": "870:2:10" + "src": "910:2:3" }, "payable": false, "returnParameters": { - "id": 4384, + "id": 1161, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4381, + "id": 1158, "name": "index", "nodeType": "VariableDeclaration", - "scope": 4385, - "src": "896:10:10", + "scope": 1162, + "src": "936:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1263,10 +1307,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4380, + "id": 1157, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "896:4:10", + "src": "936:4:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1277,11 +1321,11 @@ }, { "constant": false, - "id": 4383, + "id": 1160, "name": "found", "nodeType": "VariableDeclaration", - "scope": 4385, - "src": "908:10:10", + "scope": 1162, + "src": "948:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1289,10 +1333,10 @@ "typeString": "bool" }, "typeName": { - "id": 4382, + "id": 1159, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "908:4:10", + "src": "948:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1302,10 +1346,10 @@ "visibility": "internal" } ], - "src": "895:24:10" + "src": "935:24:3" }, - "scope": 4426, - "src": "840:80:10", + "scope": 1204, + "src": "880:80:3", "stateMutability": "view", "superFunction": null, "visibility": "external" @@ -1313,7 +1357,7 @@ { "body": null, "documentation": null, - "id": 4390, + "id": 1167, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -1321,23 +1365,23 @@ "name": "milestonesLength", "nodeType": "FunctionDefinition", "parameters": { - "id": 4386, + "id": 1163, "nodeType": "ParameterList", "parameters": [], - "src": "951:2:10" + "src": "991:2:3" }, "payable": false, "returnParameters": { - "id": 4389, + "id": 1166, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4388, + "id": 1165, "name": "", "nodeType": "VariableDeclaration", - "scope": 4390, - "src": "977:4:10", + "scope": 1167, + "src": "1017:4:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1345,10 +1389,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4387, + "id": 1164, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "977:4:10", + "src": "1017:4:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1358,10 +1402,10 @@ "visibility": "internal" } ], - "src": "976:6:10" + "src": "1016:6:3" }, - "scope": 4426, - "src": "926:57:10", + "scope": 1204, + "src": "966:57:3", "stateMutability": "view", "superFunction": null, "visibility": "external" @@ -1369,7 +1413,7 @@ { "body": null, "documentation": null, - "id": 4397, + "id": 1174, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -1377,23 +1421,23 @@ "name": "getCurrentStageIndex", "nodeType": "FunctionDefinition", "parameters": { - "id": 4391, + "id": 1168, "nodeType": "ParameterList", "parameters": [], - "src": "1018:2:10" + "src": "1058:2:3" }, "payable": false, "returnParameters": { - "id": 4396, + "id": 1173, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4393, + "id": 1170, "name": "index", "nodeType": "VariableDeclaration", - "scope": 4397, - "src": "1044:10:10", + "scope": 1174, + "src": "1084:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1401,10 +1445,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4392, + "id": 1169, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1044:4:10", + "src": "1084:4:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1415,11 +1459,11 @@ }, { "constant": false, - "id": 4395, + "id": 1172, "name": "found", "nodeType": "VariableDeclaration", - "scope": 4397, - "src": "1056:10:10", + "scope": 1174, + "src": "1096:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1427,10 +1471,10 @@ "typeString": "bool" }, "typeName": { - "id": 4394, + "id": 1171, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1056:4:10", + "src": "1096:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1440,10 +1484,10 @@ "visibility": "internal" } ], - "src": "1043:24:10" + "src": "1083:24:3" }, - "scope": 4426, - "src": "989:79:10", + "scope": 1204, + "src": "1029:79:3", "stateMutability": "view", "superFunction": null, "visibility": "external" @@ -1451,7 +1495,7 @@ { "body": null, "documentation": null, - "id": 4404, + "id": 1181, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -1459,16 +1503,16 @@ "name": "getSaleVolumeBonus", "nodeType": "FunctionDefinition", "parameters": { - "id": 4400, + "id": 1177, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4399, + "id": 1176, "name": "value", "nodeType": "VariableDeclaration", - "scope": 4404, - "src": "1102:10:10", + "scope": 1181, + "src": "1142:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1476,10 +1520,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4398, + "id": 1175, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1102:4:10", + "src": "1142:4:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1489,20 +1533,20 @@ "visibility": "internal" } ], - "src": "1101:12:10" + "src": "1141:12:3" }, "payable": false, "returnParameters": { - "id": 4403, + "id": 1180, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4402, + "id": 1179, "name": "bonus", "nodeType": "VariableDeclaration", - "scope": 4404, - "src": "1137:10:10", + "scope": 1181, + "src": "1177:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1510,10 +1554,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4401, + "id": 1178, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1137:4:10", + "src": "1177:4:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1523,10 +1567,10 @@ "visibility": "internal" } ], - "src": "1136:12:10" + "src": "1176:12:3" }, - "scope": 4426, - "src": "1074:75:10", + "scope": 1204, + "src": "1114:75:3", "stateMutability": "view", "superFunction": null, "visibility": "external" @@ -1534,7 +1578,7 @@ { "body": null, "documentation": null, - "id": 4409, + "id": 1186, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -1542,23 +1586,23 @@ "name": "isEnded", "nodeType": "FunctionDefinition", "parameters": { - "id": 4405, + "id": 1182, "nodeType": "ParameterList", "parameters": [], - "src": "1171:2:10" + "src": "1211:2:3" }, "payable": false, "returnParameters": { - "id": 4408, + "id": 1185, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4407, + "id": 1184, "name": "", "nodeType": "VariableDeclaration", - "scope": 4409, - "src": "1197:4:10", + "scope": 1186, + "src": "1237:4:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1566,10 +1610,10 @@ "typeString": "bool" }, "typeName": { - "id": 4406, + "id": 1183, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1197:4:10", + "src": "1237:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1579,10 +1623,10 @@ "visibility": "internal" } ], - "src": "1196:6:10" + "src": "1236:6:3" }, - "scope": 4426, - "src": "1155:48:10", + "scope": 1204, + "src": "1195:48:3", "stateMutability": "view", "superFunction": null, "visibility": "external" @@ -1590,7 +1634,7 @@ { "body": null, "documentation": null, - "id": 4414, + "id": 1191, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -1598,23 +1642,23 @@ "name": "isSaleActive", "nodeType": "FunctionDefinition", "parameters": { - "id": 4410, + "id": 1187, "nodeType": "ParameterList", "parameters": [], - "src": "1230:2:10" + "src": "1270:2:3" }, "payable": false, "returnParameters": { - "id": 4413, + "id": 1190, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4412, + "id": 1189, "name": "", "nodeType": "VariableDeclaration", - "scope": 4414, - "src": "1256:4:10", + "scope": 1191, + "src": "1296:4:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1622,10 +1666,10 @@ "typeString": "bool" }, "typeName": { - "id": 4411, + "id": 1188, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1256:4:10", + "src": "1296:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1635,10 +1679,10 @@ "visibility": "internal" } ], - "src": "1255:6:10" + "src": "1295:6:3" }, - "scope": 4426, - "src": "1209:53:10", + "scope": 1204, + "src": "1249:53:3", "stateMutability": "view", "superFunction": null, "visibility": "external" @@ -1646,36 +1690,7 @@ { "body": null, "documentation": null, - "id": 4417, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4415, - "nodeType": "ParameterList", - "parameters": [], - "src": "1277:2:10" - }, - "payable": true, - "returnParameters": { - "id": 4416, - "nodeType": "ParameterList", - "parameters": [], - "src": "1296:0:10" - }, - "scope": 4426, - "src": "1268:29:10", - "stateMutability": "payable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 4420, + "id": 1198, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -1683,20 +1698,73 @@ "name": "buyTokens", "nodeType": "FunctionDefinition", "parameters": { - "id": 4418, + "id": 1196, "nodeType": "ParameterList", - "parameters": [], - "src": "1321:2:10" + "parameters": [ + { + "constant": false, + "id": 1193, + "name": "method", + "nodeType": "VariableDeclaration", + "scope": 1198, + "src": "1327:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1192, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1327:7:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1195, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1198, + "src": "1343:11:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1194, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1343:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1326:29:3" }, "payable": true, "returnParameters": { - "id": 4419, + "id": 1197, "nodeType": "ParameterList", "parameters": [], - "src": "1340:0:10" + "src": "1372:0:3" }, - "scope": 4426, - "src": "1303:38:10", + "scope": 1204, + "src": "1308:65:3", "stateMutability": "payable", "superFunction": null, "visibility": "external" @@ -1704,7 +1772,7 @@ { "body": null, "documentation": null, - "id": 4425, + "id": 1203, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -1712,16 +1780,16 @@ "name": "transferOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 4423, + "id": 1201, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4422, + "id": 1200, "name": "newOwner", "nodeType": "VariableDeclaration", - "scope": 4425, - "src": "1374:16:10", + "scope": 1203, + "src": "1406:16:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1729,10 +1797,10 @@ "typeString": "address" }, "typeName": { - "id": 4421, + "id": 1199, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1374:7:10", + "src": "1406:7:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1742,40 +1810,40 @@ "visibility": "internal" } ], - "src": "1373:18:10" + "src": "1405:18:3" }, "payable": false, "returnParameters": { - "id": 4424, + "id": 1202, "nodeType": "ParameterList", "parameters": [], - "src": "1400:0:10" + "src": "1432:0:3" }, - "scope": 4426, - "src": "1347:54:10", + "scope": 1204, + "src": "1379:54:3", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" } ], - "scope": 4427, - "src": "58:1345:10" + "scope": 1205, + "src": "59:1376:3" } ], - "src": "0:1404:10" + "src": "0:1436:3" }, "legacyAST": { - "absolutePath": "/home/circleci/code/contracts/interfaces/IW12Crowdsale.sol", + "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Crowdsale.sol", "exportedSymbols": { "IW12Crowdsale": [ - 4426 + 1204 ] }, - "id": 4427, + "id": 1205, "nodeType": "SourceUnit", "nodes": [ { - "id": 4303, + "id": 1077, "literals": [ "solidity", "^", @@ -1783,16 +1851,16 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:10" + "src": "0:24:3" }, { - "absolutePath": "/home/circleci/code/contracts/token/WToken.sol", - "file": "../token/WToken.sol", - "id": 4304, + "absolutePath": "/home/circleci/code/contracts/token/IWToken.sol", + "file": "../token/IWToken.sol", + "id": 1078, "nodeType": "ImportDirective", - "scope": 4427, - "sourceUnit": 5926, - "src": "26:29:10", + "scope": 1205, + "sourceUnit": 7631, + "src": "26:30:3", "symbolAliases": [], "unitAlias": "" }, @@ -1802,9 +1870,9 @@ "contractKind": "interface", "documentation": null, "fullyImplemented": false, - "id": 4426, + "id": 1204, "linearizedBaseContracts": [ - 4426 + 1204 ], "name": "IW12Crowdsale", "nodeType": "ContractDefinition", @@ -1812,7 +1880,7 @@ { "body": null, "documentation": null, - "id": 4309, + "id": 1083, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -1820,16 +1888,16 @@ "name": "setParameters", "nodeType": "FunctionDefinition", "parameters": { - "id": 4307, + "id": 1081, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4306, + "id": 1080, "name": "price", "nodeType": "VariableDeclaration", - "scope": 4309, - "src": "111:10:10", + "scope": 1083, + "src": "112:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1837,10 +1905,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4305, + "id": 1079, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "111:4:10", + "src": "112:4:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1850,17 +1918,17 @@ "visibility": "internal" } ], - "src": "110:12:10" + "src": "111:12:3" }, "payable": false, "returnParameters": { - "id": 4308, + "id": 1082, "nodeType": "ParameterList", "parameters": [], - "src": "131:0:10" + "src": "132:0:3" }, - "scope": 4426, - "src": "88:44:10", + "scope": 1204, + "src": "89:44:3", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -1868,7 +1936,7 @@ { "body": null, "documentation": null, - "id": 4330, + "id": 1107, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -1876,16 +1944,16 @@ "name": "setup", "nodeType": "FunctionDefinition", "parameters": { - "id": 4328, + "id": 1105, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4314, + "id": 1088, "name": "parametersOfStages", "nodeType": "VariableDeclaration", - "scope": 4330, - "src": "259:28:10", + "scope": 1107, + "src": "260:28:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1895,27 +1963,27 @@ "typeName": { "baseType": { "baseType": { - "id": 4310, + "id": 1084, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "259:4:10", + "src": "260:4:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 4312, + "id": 1086, "length": { "argumentTypes": null, "hexValue": "36", - "id": 4311, + "id": 1085, "isConstant": false, "isLValue": false, "isPure": false, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "264:1:10", + "src": "265:1:3", "subdenomination": null, "typeDescriptions": { "typeIdentifier": null, @@ -1924,16 +1992,16 @@ "value": "6" }, "nodeType": "ArrayTypeName", - "src": "259:7:10", + "src": "260:7:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_storage_ptr", "typeString": "uint256[6]" } }, - "id": 4313, + "id": 1087, "length": null, "nodeType": "ArrayTypeName", - "src": "259:9:10", + "src": "260:9:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$6_storage_$dyn_storage_ptr", "typeString": "uint256[6][]" @@ -1944,11 +2012,11 @@ }, { "constant": false, - "id": 4317, + "id": 1091, "name": "bonusConditionsOfStages", "nodeType": "VariableDeclaration", - "scope": 4330, - "src": "297:30:10", + "scope": 1107, + "src": "298:30:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1957,19 +2025,19 @@ }, "typeName": { "baseType": { - "id": 4315, + "id": 1089, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "297:4:10", + "src": "298:4:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 4316, + "id": 1090, "length": null, "nodeType": "ArrayTypeName", - "src": "297:6:10", + "src": "298:6:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -1980,11 +2048,11 @@ }, { "constant": false, - "id": 4322, + "id": 1096, "name": "parametersOfMilestones", "nodeType": "VariableDeclaration", - "scope": 4330, - "src": "337:32:10", + "scope": 1107, + "src": "338:32:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1994,27 +2062,27 @@ "typeName": { "baseType": { "baseType": { - "id": 4318, + "id": 1092, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "337:4:10", + "src": "338:4:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 4320, + "id": 1094, "length": { "argumentTypes": null, "hexValue": "34", - "id": 4319, + "id": 1093, "isConstant": false, "isLValue": false, "isPure": false, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "342:1:10", + "src": "343:1:3", "subdenomination": null, "typeDescriptions": { "typeIdentifier": null, @@ -2023,16 +2091,16 @@ "value": "4" }, "nodeType": "ArrayTypeName", - "src": "337:7:10", + "src": "338:7:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_storage_ptr", "typeString": "uint256[4]" } }, - "id": 4321, + "id": 1095, "length": null, "nodeType": "ArrayTypeName", - "src": "337:9:10", + "src": "338:9:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$4_storage_$dyn_storage_ptr", "typeString": "uint256[4][]" @@ -2043,11 +2111,11 @@ }, { "constant": false, - "id": 4325, + "id": 1099, "name": "nameAndDescriptionsOffsetOfMilestones", "nodeType": "VariableDeclaration", - "scope": 4330, - "src": "379:46:10", + "scope": 1107, + "src": "380:46:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2056,19 +2124,19 @@ }, "typeName": { "baseType": { - "id": 4323, + "id": 1097, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "379:6:10", + "src": "380:6:3", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 4324, + "id": 1098, "length": null, "nodeType": "ArrayTypeName", - "src": "379:8:10", + "src": "380:8:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", "typeString": "uint32[]" @@ -2079,11 +2147,11 @@ }, { "constant": false, - "id": 4327, + "id": 1101, "name": "nameAndDescriptionsOfMilestones", "nodeType": "VariableDeclaration", - "scope": 4330, - "src": "435:37:10", + "scope": 1107, + "src": "436:37:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2091,10 +2159,10 @@ "typeString": "bytes" }, "typeName": { - "id": 4326, + "id": 1100, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "435:5:10", + "src": "436:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2102,19 +2170,55 @@ }, "value": null, "visibility": "internal" + }, + { + "constant": false, + "id": 1104, + "name": "paymentMethodsList", + "nodeType": "VariableDeclaration", + "scope": 1107, + "src": "483:28:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 1102, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "483:7:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 1103, + "length": null, + "nodeType": "ArrayTypeName", + "src": "483:9:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "value": null, + "visibility": "internal" } ], - "src": "249:229:10" + "src": "250:267:3" }, "payable": false, "returnParameters": { - "id": 4329, + "id": 1106, "nodeType": "ParameterList", "parameters": [], - "src": "487:0:10" + "src": "526:0:3" }, - "scope": 4426, - "src": "235:253:10", + "scope": 1204, + "src": "236:291:3", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -2122,7 +2226,7 @@ { "body": null, "documentation": null, - "id": 4335, + "id": 1112, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -2130,49 +2234,49 @@ "name": "getWToken", "nodeType": "FunctionDefinition", "parameters": { - "id": 4331, + "id": 1108, "nodeType": "ParameterList", "parameters": [], - "src": "512:2:10" + "src": "551:2:3" }, "payable": false, "returnParameters": { - "id": 4334, + "id": 1111, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4333, + "id": 1110, "name": "", "nodeType": "VariableDeclaration", - "scope": 4335, - "src": "537:6:10", + "scope": 1112, + "src": "576:7:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" }, "typeName": { "contractScope": null, - "id": 4332, - "name": "WToken", + "id": 1109, + "name": "IWToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5925, - "src": "537:6:10", + "referencedDeclaration": 7630, + "src": "576:7:3", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" } }, "value": null, "visibility": "internal" } ], - "src": "536:8:10" + "src": "575:9:3" }, - "scope": 4426, - "src": "494:51:10", + "scope": 1204, + "src": "533:52:3", "stateMutability": "view", "superFunction": null, "visibility": "external" @@ -2180,7 +2284,7 @@ { "body": null, "documentation": null, - "id": 4352, + "id": 1129, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -2188,16 +2292,16 @@ "name": "getMilestone", "nodeType": "FunctionDefinition", "parameters": { - "id": 4338, + "id": 1115, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4337, + "id": 1114, "name": "index", "nodeType": "VariableDeclaration", - "scope": 4352, - "src": "573:10:10", + "scope": 1129, + "src": "613:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2205,10 +2309,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4336, + "id": 1113, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "573:4:10", + "src": "613:4:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2218,20 +2322,20 @@ "visibility": "internal" } ], - "src": "572:12:10" + "src": "612:12:3" }, "payable": false, "returnParameters": { - "id": 4351, + "id": 1128, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4340, + "id": 1117, "name": "", "nodeType": "VariableDeclaration", - "scope": 4352, - "src": "608:6:10", + "scope": 1129, + "src": "648:6:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2239,10 +2343,10 @@ "typeString": "uint32" }, "typeName": { - "id": 4339, + "id": 1116, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "608:6:10", + "src": "648:6:3", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -2253,11 +2357,11 @@ }, { "constant": false, - "id": 4342, + "id": 1119, "name": "", "nodeType": "VariableDeclaration", - "scope": 4352, - "src": "616:4:10", + "scope": 1129, + "src": "656:4:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2265,10 +2369,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4341, + "id": 1118, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "616:4:10", + "src": "656:4:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2279,11 +2383,11 @@ }, { "constant": false, - "id": 4344, + "id": 1121, "name": "", "nodeType": "VariableDeclaration", - "scope": 4352, - "src": "622:6:10", + "scope": 1129, + "src": "662:6:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2291,10 +2395,10 @@ "typeString": "uint32" }, "typeName": { - "id": 4343, + "id": 1120, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "622:6:10", + "src": "662:6:3", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -2305,11 +2409,11 @@ }, { "constant": false, - "id": 4346, + "id": 1123, "name": "", "nodeType": "VariableDeclaration", - "scope": 4352, - "src": "630:6:10", + "scope": 1129, + "src": "670:6:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2317,10 +2421,10 @@ "typeString": "uint32" }, "typeName": { - "id": 4345, + "id": 1122, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "630:6:10", + "src": "670:6:3", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -2331,11 +2435,11 @@ }, { "constant": false, - "id": 4348, + "id": 1125, "name": "", "nodeType": "VariableDeclaration", - "scope": 4352, - "src": "638:5:10", + "scope": 1129, + "src": "678:5:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2343,10 +2447,10 @@ "typeString": "bytes" }, "typeName": { - "id": 4347, + "id": 1124, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "638:5:10", + "src": "678:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2357,11 +2461,11 @@ }, { "constant": false, - "id": 4350, + "id": 1127, "name": "", "nodeType": "VariableDeclaration", - "scope": 4352, - "src": "645:5:10", + "scope": 1129, + "src": "685:5:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2369,10 +2473,10 @@ "typeString": "bytes" }, "typeName": { - "id": 4349, + "id": 1126, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "645:5:10", + "src": "685:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2382,10 +2486,10 @@ "visibility": "internal" } ], - "src": "607:44:10" + "src": "647:44:3" }, - "scope": 4426, - "src": "551:101:10", + "scope": 1204, + "src": "591:101:3", "stateMutability": "view", "superFunction": null, "visibility": "external" @@ -2393,7 +2497,7 @@ { "body": null, "documentation": null, - "id": 4371, + "id": 1148, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -2401,16 +2505,16 @@ "name": "getStage", "nodeType": "FunctionDefinition", "parameters": { - "id": 4355, + "id": 1132, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4354, + "id": 1131, "name": "index", "nodeType": "VariableDeclaration", - "scope": 4371, - "src": "676:10:10", + "scope": 1148, + "src": "716:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2418,10 +2522,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4353, + "id": 1130, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "676:4:10", + "src": "716:4:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2431,20 +2535,20 @@ "visibility": "internal" } ], - "src": "675:12:10" + "src": "715:12:3" }, "payable": false, "returnParameters": { - "id": 4370, + "id": 1147, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4357, + "id": 1134, "name": "", "nodeType": "VariableDeclaration", - "scope": 4371, - "src": "711:6:10", + "scope": 1148, + "src": "751:6:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2452,10 +2556,10 @@ "typeString": "uint32" }, "typeName": { - "id": 4356, + "id": 1133, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "711:6:10", + "src": "751:6:3", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -2466,11 +2570,11 @@ }, { "constant": false, - "id": 4359, + "id": 1136, "name": "", "nodeType": "VariableDeclaration", - "scope": 4371, - "src": "719:6:10", + "scope": 1148, + "src": "759:6:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2478,10 +2582,10 @@ "typeString": "uint32" }, "typeName": { - "id": 4358, + "id": 1135, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "719:6:10", + "src": "759:6:3", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -2492,11 +2596,11 @@ }, { "constant": false, - "id": 4361, + "id": 1138, "name": "", "nodeType": "VariableDeclaration", - "scope": 4371, - "src": "727:4:10", + "scope": 1148, + "src": "767:4:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2504,10 +2608,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4360, + "id": 1137, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "727:4:10", + "src": "767:4:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2518,11 +2622,11 @@ }, { "constant": false, - "id": 4363, + "id": 1140, "name": "", "nodeType": "VariableDeclaration", - "scope": 4371, - "src": "733:6:10", + "scope": 1148, + "src": "773:6:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2530,10 +2634,10 @@ "typeString": "uint32" }, "typeName": { - "id": 4362, + "id": 1139, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "733:6:10", + "src": "773:6:3", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -2544,11 +2648,11 @@ }, { "constant": false, - "id": 4366, + "id": 1143, "name": "", "nodeType": "VariableDeclaration", - "scope": 4371, - "src": "741:6:10", + "scope": 1148, + "src": "781:6:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2557,19 +2661,19 @@ }, "typeName": { "baseType": { - "id": 4364, + "id": 1141, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "741:4:10", + "src": "781:4:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 4365, + "id": 1142, "length": null, "nodeType": "ArrayTypeName", - "src": "741:6:10", + "src": "781:6:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -2580,11 +2684,11 @@ }, { "constant": false, - "id": 4369, + "id": 1146, "name": "", "nodeType": "VariableDeclaration", - "scope": 4371, - "src": "749:6:10", + "scope": 1148, + "src": "789:6:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2593,19 +2697,19 @@ }, "typeName": { "baseType": { - "id": 4367, + "id": 1144, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "749:4:10", + "src": "789:4:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 4368, + "id": 1145, "length": null, "nodeType": "ArrayTypeName", - "src": "749:6:10", + "src": "789:6:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -2615,10 +2719,10 @@ "visibility": "internal" } ], - "src": "710:46:10" + "src": "750:46:3" }, - "scope": 4426, - "src": "658:99:10", + "scope": 1204, + "src": "698:99:3", "stateMutability": "view", "superFunction": null, "visibility": "external" @@ -2626,7 +2730,7 @@ { "body": null, "documentation": null, - "id": 4378, + "id": 1155, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -2634,23 +2738,23 @@ "name": "getCurrentMilestoneIndex", "nodeType": "FunctionDefinition", "parameters": { - "id": 4372, + "id": 1149, "nodeType": "ParameterList", "parameters": [], - "src": "796:2:10" + "src": "836:2:3" }, "payable": false, "returnParameters": { - "id": 4377, + "id": 1154, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4374, + "id": 1151, "name": "", "nodeType": "VariableDeclaration", - "scope": 4378, - "src": "822:4:10", + "scope": 1155, + "src": "862:4:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2658,10 +2762,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4373, + "id": 1150, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "822:4:10", + "src": "862:4:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2672,11 +2776,11 @@ }, { "constant": false, - "id": 4376, + "id": 1153, "name": "", "nodeType": "VariableDeclaration", - "scope": 4378, - "src": "828:4:10", + "scope": 1155, + "src": "868:4:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2684,10 +2788,10 @@ "typeString": "bool" }, "typeName": { - "id": 4375, + "id": 1152, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "828:4:10", + "src": "868:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2697,10 +2801,10 @@ "visibility": "internal" } ], - "src": "821:12:10" + "src": "861:12:3" }, - "scope": 4426, - "src": "763:71:10", + "scope": 1204, + "src": "803:71:3", "stateMutability": "view", "superFunction": null, "visibility": "external" @@ -2708,7 +2812,7 @@ { "body": null, "documentation": null, - "id": 4385, + "id": 1162, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -2716,23 +2820,23 @@ "name": "getLastMilestoneIndex", "nodeType": "FunctionDefinition", "parameters": { - "id": 4379, + "id": 1156, "nodeType": "ParameterList", "parameters": [], - "src": "870:2:10" + "src": "910:2:3" }, "payable": false, "returnParameters": { - "id": 4384, + "id": 1161, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4381, + "id": 1158, "name": "index", "nodeType": "VariableDeclaration", - "scope": 4385, - "src": "896:10:10", + "scope": 1162, + "src": "936:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2740,10 +2844,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4380, + "id": 1157, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "896:4:10", + "src": "936:4:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2754,11 +2858,11 @@ }, { "constant": false, - "id": 4383, + "id": 1160, "name": "found", "nodeType": "VariableDeclaration", - "scope": 4385, - "src": "908:10:10", + "scope": 1162, + "src": "948:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2766,10 +2870,10 @@ "typeString": "bool" }, "typeName": { - "id": 4382, + "id": 1159, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "908:4:10", + "src": "948:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2779,10 +2883,10 @@ "visibility": "internal" } ], - "src": "895:24:10" + "src": "935:24:3" }, - "scope": 4426, - "src": "840:80:10", + "scope": 1204, + "src": "880:80:3", "stateMutability": "view", "superFunction": null, "visibility": "external" @@ -2790,7 +2894,7 @@ { "body": null, "documentation": null, - "id": 4390, + "id": 1167, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -2798,23 +2902,23 @@ "name": "milestonesLength", "nodeType": "FunctionDefinition", "parameters": { - "id": 4386, + "id": 1163, "nodeType": "ParameterList", "parameters": [], - "src": "951:2:10" + "src": "991:2:3" }, "payable": false, "returnParameters": { - "id": 4389, + "id": 1166, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4388, + "id": 1165, "name": "", "nodeType": "VariableDeclaration", - "scope": 4390, - "src": "977:4:10", + "scope": 1167, + "src": "1017:4:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2822,10 +2926,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4387, + "id": 1164, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "977:4:10", + "src": "1017:4:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2835,10 +2939,10 @@ "visibility": "internal" } ], - "src": "976:6:10" + "src": "1016:6:3" }, - "scope": 4426, - "src": "926:57:10", + "scope": 1204, + "src": "966:57:3", "stateMutability": "view", "superFunction": null, "visibility": "external" @@ -2846,7 +2950,7 @@ { "body": null, "documentation": null, - "id": 4397, + "id": 1174, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -2854,23 +2958,23 @@ "name": "getCurrentStageIndex", "nodeType": "FunctionDefinition", "parameters": { - "id": 4391, + "id": 1168, "nodeType": "ParameterList", "parameters": [], - "src": "1018:2:10" + "src": "1058:2:3" }, "payable": false, "returnParameters": { - "id": 4396, + "id": 1173, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4393, + "id": 1170, "name": "index", "nodeType": "VariableDeclaration", - "scope": 4397, - "src": "1044:10:10", + "scope": 1174, + "src": "1084:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2878,10 +2982,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4392, + "id": 1169, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1044:4:10", + "src": "1084:4:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2892,11 +2996,11 @@ }, { "constant": false, - "id": 4395, + "id": 1172, "name": "found", "nodeType": "VariableDeclaration", - "scope": 4397, - "src": "1056:10:10", + "scope": 1174, + "src": "1096:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2904,10 +3008,10 @@ "typeString": "bool" }, "typeName": { - "id": 4394, + "id": 1171, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1056:4:10", + "src": "1096:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2917,10 +3021,10 @@ "visibility": "internal" } ], - "src": "1043:24:10" + "src": "1083:24:3" }, - "scope": 4426, - "src": "989:79:10", + "scope": 1204, + "src": "1029:79:3", "stateMutability": "view", "superFunction": null, "visibility": "external" @@ -2928,7 +3032,7 @@ { "body": null, "documentation": null, - "id": 4404, + "id": 1181, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -2936,16 +3040,16 @@ "name": "getSaleVolumeBonus", "nodeType": "FunctionDefinition", "parameters": { - "id": 4400, + "id": 1177, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4399, + "id": 1176, "name": "value", "nodeType": "VariableDeclaration", - "scope": 4404, - "src": "1102:10:10", + "scope": 1181, + "src": "1142:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2953,10 +3057,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4398, + "id": 1175, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1102:4:10", + "src": "1142:4:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2966,20 +3070,20 @@ "visibility": "internal" } ], - "src": "1101:12:10" + "src": "1141:12:3" }, "payable": false, "returnParameters": { - "id": 4403, + "id": 1180, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4402, + "id": 1179, "name": "bonus", "nodeType": "VariableDeclaration", - "scope": 4404, - "src": "1137:10:10", + "scope": 1181, + "src": "1177:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2987,10 +3091,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4401, + "id": 1178, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1137:4:10", + "src": "1177:4:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3000,10 +3104,10 @@ "visibility": "internal" } ], - "src": "1136:12:10" + "src": "1176:12:3" }, - "scope": 4426, - "src": "1074:75:10", + "scope": 1204, + "src": "1114:75:3", "stateMutability": "view", "superFunction": null, "visibility": "external" @@ -3011,7 +3115,7 @@ { "body": null, "documentation": null, - "id": 4409, + "id": 1186, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -3019,23 +3123,23 @@ "name": "isEnded", "nodeType": "FunctionDefinition", "parameters": { - "id": 4405, + "id": 1182, "nodeType": "ParameterList", "parameters": [], - "src": "1171:2:10" + "src": "1211:2:3" }, "payable": false, "returnParameters": { - "id": 4408, + "id": 1185, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4407, + "id": 1184, "name": "", "nodeType": "VariableDeclaration", - "scope": 4409, - "src": "1197:4:10", + "scope": 1186, + "src": "1237:4:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3043,10 +3147,10 @@ "typeString": "bool" }, "typeName": { - "id": 4406, + "id": 1183, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1197:4:10", + "src": "1237:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3056,10 +3160,10 @@ "visibility": "internal" } ], - "src": "1196:6:10" + "src": "1236:6:3" }, - "scope": 4426, - "src": "1155:48:10", + "scope": 1204, + "src": "1195:48:3", "stateMutability": "view", "superFunction": null, "visibility": "external" @@ -3067,7 +3171,7 @@ { "body": null, "documentation": null, - "id": 4414, + "id": 1191, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -3075,23 +3179,23 @@ "name": "isSaleActive", "nodeType": "FunctionDefinition", "parameters": { - "id": 4410, + "id": 1187, "nodeType": "ParameterList", "parameters": [], - "src": "1230:2:10" + "src": "1270:2:3" }, "payable": false, "returnParameters": { - "id": 4413, + "id": 1190, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4412, + "id": 1189, "name": "", "nodeType": "VariableDeclaration", - "scope": 4414, - "src": "1256:4:10", + "scope": 1191, + "src": "1296:4:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3099,10 +3203,10 @@ "typeString": "bool" }, "typeName": { - "id": 4411, + "id": 1188, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1256:4:10", + "src": "1296:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3112,10 +3216,10 @@ "visibility": "internal" } ], - "src": "1255:6:10" + "src": "1295:6:3" }, - "scope": 4426, - "src": "1209:53:10", + "scope": 1204, + "src": "1249:53:3", "stateMutability": "view", "superFunction": null, "visibility": "external" @@ -3123,36 +3227,7 @@ { "body": null, "documentation": null, - "id": 4417, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4415, - "nodeType": "ParameterList", - "parameters": [], - "src": "1277:2:10" - }, - "payable": true, - "returnParameters": { - "id": 4416, - "nodeType": "ParameterList", - "parameters": [], - "src": "1296:0:10" - }, - "scope": 4426, - "src": "1268:29:10", - "stateMutability": "payable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 4420, + "id": 1198, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -3160,20 +3235,73 @@ "name": "buyTokens", "nodeType": "FunctionDefinition", "parameters": { - "id": 4418, + "id": 1196, "nodeType": "ParameterList", - "parameters": [], - "src": "1321:2:10" + "parameters": [ + { + "constant": false, + "id": 1193, + "name": "method", + "nodeType": "VariableDeclaration", + "scope": 1198, + "src": "1327:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1192, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1327:7:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1195, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1198, + "src": "1343:11:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1194, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1343:4:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1326:29:3" }, "payable": true, "returnParameters": { - "id": 4419, + "id": 1197, "nodeType": "ParameterList", "parameters": [], - "src": "1340:0:10" + "src": "1372:0:3" }, - "scope": 4426, - "src": "1303:38:10", + "scope": 1204, + "src": "1308:65:3", "stateMutability": "payable", "superFunction": null, "visibility": "external" @@ -3181,7 +3309,7 @@ { "body": null, "documentation": null, - "id": 4425, + "id": 1203, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -3189,16 +3317,16 @@ "name": "transferOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 4423, + "id": 1201, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4422, + "id": 1200, "name": "newOwner", "nodeType": "VariableDeclaration", - "scope": 4425, - "src": "1374:16:10", + "scope": 1203, + "src": "1406:16:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3206,10 +3334,10 @@ "typeString": "address" }, "typeName": { - "id": 4421, + "id": 1199, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1374:7:10", + "src": "1406:7:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3219,27 +3347,27 @@ "visibility": "internal" } ], - "src": "1373:18:10" + "src": "1405:18:3" }, "payable": false, "returnParameters": { - "id": 4424, + "id": 1202, "nodeType": "ParameterList", "parameters": [], - "src": "1400:0:10" + "src": "1432:0:3" }, - "scope": 4426, - "src": "1347:54:10", + "scope": 1204, + "src": "1379:54:3", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" } ], - "scope": 4427, - "src": "58:1345:10" + "scope": 1205, + "src": "59:1376:3" } ], - "src": "0:1404:10" + "src": "0:1436:3" }, "compiler": { "name": "solc", @@ -3247,5 +3375,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-02T11:52:56.751Z" + "updatedAt": "2018-10-22T07:56:01.523Z" } \ No newline at end of file diff --git a/build/contracts/IW12CrowdsaleFactory.json b/build/contracts/IW12CrowdsaleFactory.json index 0e9d353c..04e08f93 100644 --- a/build/contracts/IW12CrowdsaleFactory.json +++ b/build/contracts/IW12CrowdsaleFactory.json @@ -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", - "sourcePath": "/home/circleci/code/contracts/interfaces/IW12CrowdsaleFactory.sol", + "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", + "sourcePath": "/home/circleci/code/contracts/crowdsale/factories/IW12CrowdsaleFactory.sol", "ast": { - "absolutePath": "/home/circleci/code/contracts/interfaces/IW12CrowdsaleFactory.sol", + "absolutePath": "/home/circleci/code/contracts/crowdsale/factories/IW12CrowdsaleFactory.sol", "exportedSymbols": { "IW12CrowdsaleFactory": [ - 4453 + 4451 ] }, - "id": 4454, + "id": 4452, "nodeType": "SourceUnit", "nodes": [ { - "id": 4428, + "id": 4426, "literals": [ "solidity", "^", @@ -78,16 +78,16 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:11" + "src": "0:24:7" }, { - "absolutePath": "/home/circleci/code/contracts/interfaces/IW12Crowdsale.sol", - "file": "./IW12Crowdsale.sol", - "id": 4429, + "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Crowdsale.sol", + "file": "../IW12Crowdsale.sol", + "id": 4427, "nodeType": "ImportDirective", - "scope": 4454, - "sourceUnit": 4427, - "src": "26:29:11", + "scope": 4452, + "sourceUnit": 1205, + "src": "26:30:7", "symbolAliases": [], "unitAlias": "" }, @@ -97,9 +97,9 @@ "contractKind": "interface", "documentation": null, "fullyImplemented": false, - "id": 4453, + "id": 4451, "linearizedBaseContracts": [ - 4453 + 4451 ], "name": "IW12CrowdsaleFactory", "nodeType": "ContractDefinition", @@ -107,7 +107,7 @@ { "body": null, "documentation": null, - "id": 4452, + "id": 4450, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -115,16 +115,16 @@ "name": "createCrowdsale", "nodeType": "FunctionDefinition", "parameters": { - "id": 4448, + "id": 4446, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4431, + "id": 4429, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 4452, - "src": "129:20:11", + "scope": 4450, + "src": "130:20:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -132,10 +132,10 @@ "typeString": "address" }, "typeName": { - "id": 4430, + "id": 4428, "name": "address", "nodeType": "ElementaryTypeName", - "src": "129:7:11", + "src": "130:7:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -146,11 +146,11 @@ }, { "constant": false, - "id": 4433, + "id": 4431, "name": "_wTokenAddress", "nodeType": "VariableDeclaration", - "scope": 4452, - "src": "159:22:11", + "scope": 4450, + "src": "160:22:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -158,10 +158,10 @@ "typeString": "address" }, "typeName": { - "id": 4432, + "id": 4430, "name": "address", "nodeType": "ElementaryTypeName", - "src": "159:7:11", + "src": "160:7:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -172,11 +172,11 @@ }, { "constant": false, - "id": 4435, + "id": 4433, "name": "price", "nodeType": "VariableDeclaration", - "scope": 4452, - "src": "191:10:11", + "scope": 4450, + "src": "192:10:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -184,10 +184,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4434, + "id": 4432, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "191:4:11", + "src": "192:4:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -198,11 +198,11 @@ }, { "constant": false, - "id": 4437, + "id": 4435, "name": "serviceWallet", "nodeType": "VariableDeclaration", - "scope": 4452, - "src": "211:21:11", + "scope": 4450, + "src": "212:21:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -210,10 +210,10 @@ "typeString": "address" }, "typeName": { - "id": 4436, + "id": 4434, "name": "address", "nodeType": "ElementaryTypeName", - "src": "211:7:11", + "src": "212:7:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -224,11 +224,11 @@ }, { "constant": false, - "id": 4439, + "id": 4437, "name": "serviceFee", "nodeType": "VariableDeclaration", - "scope": 4452, - "src": "242:15:11", + "scope": 4450, + "src": "243:15:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -236,10 +236,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4438, + "id": 4436, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "242:4:11", + "src": "243:4:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -250,11 +250,11 @@ }, { "constant": false, - "id": 4441, + "id": 4439, "name": "WTokenSaleFeePercent", "nodeType": "VariableDeclaration", - "scope": 4452, - "src": "267:25:11", + "scope": 4450, + "src": "268:25:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -262,10 +262,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4440, + "id": 4438, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "267:4:11", + "src": "268:4:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -276,11 +276,11 @@ }, { "constant": false, - "id": 4443, + "id": 4441, "name": "trancheFeePercent", "nodeType": "VariableDeclaration", - "scope": 4452, - "src": "302:22:11", + "scope": 4450, + "src": "303:22:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -288,10 +288,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4442, + "id": 4440, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "302:4:11", + "src": "303:4:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -302,11 +302,11 @@ }, { "constant": false, - "id": 4445, + "id": 4443, "name": "swap", "nodeType": "VariableDeclaration", - "scope": 4452, - "src": "335:12:11", + "scope": 4450, + "src": "336:12:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -314,10 +314,10 @@ "typeString": "address" }, "typeName": { - "id": 4444, + "id": 4442, "name": "address", "nodeType": "ElementaryTypeName", - "src": "335:7:11", + "src": "336:7:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -328,11 +328,11 @@ }, { "constant": false, - "id": 4447, + "id": 4445, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 4452, - "src": "357:13:11", + "scope": 4450, + "src": "358:13:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -340,10 +340,10 @@ "typeString": "address" }, "typeName": { - "id": 4446, + "id": 4444, "name": "address", "nodeType": "ElementaryTypeName", - "src": "357:7:11", + "src": "358:7:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -353,35 +353,35 @@ "visibility": "internal" } ], - "src": "119:257:11" + "src": "120:257:7" }, "payable": false, "returnParameters": { - "id": 4451, + "id": 4449, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4450, + "id": 4448, "name": "", "nodeType": "VariableDeclaration", - "scope": 4452, - "src": "403:13:11", + "scope": 4450, + "src": "404:13:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" }, "typeName": { "contractScope": null, - "id": 4449, + "id": 4447, "name": "IW12Crowdsale", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4426, - "src": "403:13:11", + "referencedDeclaration": 1204, + "src": "404:13:7", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } }, @@ -389,33 +389,33 @@ "visibility": "internal" } ], - "src": "402:15:11" + "src": "403:15:7" }, - "scope": 4453, - "src": "95:323:11", + "scope": 4451, + "src": "96:323:7", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" } ], - "scope": 4454, - "src": "58:362:11" + "scope": 4452, + "src": "59:362:7" } ], - "src": "0:421:11" + "src": "0:422:7" }, "legacyAST": { - "absolutePath": "/home/circleci/code/contracts/interfaces/IW12CrowdsaleFactory.sol", + "absolutePath": "/home/circleci/code/contracts/crowdsale/factories/IW12CrowdsaleFactory.sol", "exportedSymbols": { "IW12CrowdsaleFactory": [ - 4453 + 4451 ] }, - "id": 4454, + "id": 4452, "nodeType": "SourceUnit", "nodes": [ { - "id": 4428, + "id": 4426, "literals": [ "solidity", "^", @@ -423,16 +423,16 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:11" + "src": "0:24:7" }, { - "absolutePath": "/home/circleci/code/contracts/interfaces/IW12Crowdsale.sol", - "file": "./IW12Crowdsale.sol", - "id": 4429, + "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Crowdsale.sol", + "file": "../IW12Crowdsale.sol", + "id": 4427, "nodeType": "ImportDirective", - "scope": 4454, - "sourceUnit": 4427, - "src": "26:29:11", + "scope": 4452, + "sourceUnit": 1205, + "src": "26:30:7", "symbolAliases": [], "unitAlias": "" }, @@ -442,9 +442,9 @@ "contractKind": "interface", "documentation": null, "fullyImplemented": false, - "id": 4453, + "id": 4451, "linearizedBaseContracts": [ - 4453 + 4451 ], "name": "IW12CrowdsaleFactory", "nodeType": "ContractDefinition", @@ -452,7 +452,7 @@ { "body": null, "documentation": null, - "id": 4452, + "id": 4450, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -460,16 +460,16 @@ "name": "createCrowdsale", "nodeType": "FunctionDefinition", "parameters": { - "id": 4448, + "id": 4446, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4431, + "id": 4429, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 4452, - "src": "129:20:11", + "scope": 4450, + "src": "130:20:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -477,10 +477,10 @@ "typeString": "address" }, "typeName": { - "id": 4430, + "id": 4428, "name": "address", "nodeType": "ElementaryTypeName", - "src": "129:7:11", + "src": "130:7:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -491,11 +491,11 @@ }, { "constant": false, - "id": 4433, + "id": 4431, "name": "_wTokenAddress", "nodeType": "VariableDeclaration", - "scope": 4452, - "src": "159:22:11", + "scope": 4450, + "src": "160:22:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -503,10 +503,10 @@ "typeString": "address" }, "typeName": { - "id": 4432, + "id": 4430, "name": "address", "nodeType": "ElementaryTypeName", - "src": "159:7:11", + "src": "160:7:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -517,11 +517,11 @@ }, { "constant": false, - "id": 4435, + "id": 4433, "name": "price", "nodeType": "VariableDeclaration", - "scope": 4452, - "src": "191:10:11", + "scope": 4450, + "src": "192:10:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -529,10 +529,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4434, + "id": 4432, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "191:4:11", + "src": "192:4:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -543,11 +543,11 @@ }, { "constant": false, - "id": 4437, + "id": 4435, "name": "serviceWallet", "nodeType": "VariableDeclaration", - "scope": 4452, - "src": "211:21:11", + "scope": 4450, + "src": "212:21:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -555,10 +555,10 @@ "typeString": "address" }, "typeName": { - "id": 4436, + "id": 4434, "name": "address", "nodeType": "ElementaryTypeName", - "src": "211:7:11", + "src": "212:7:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -569,11 +569,11 @@ }, { "constant": false, - "id": 4439, + "id": 4437, "name": "serviceFee", "nodeType": "VariableDeclaration", - "scope": 4452, - "src": "242:15:11", + "scope": 4450, + "src": "243:15:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -581,10 +581,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4438, + "id": 4436, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "242:4:11", + "src": "243:4:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -595,11 +595,11 @@ }, { "constant": false, - "id": 4441, + "id": 4439, "name": "WTokenSaleFeePercent", "nodeType": "VariableDeclaration", - "scope": 4452, - "src": "267:25:11", + "scope": 4450, + "src": "268:25:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -607,10 +607,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4440, + "id": 4438, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "267:4:11", + "src": "268:4:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -621,11 +621,11 @@ }, { "constant": false, - "id": 4443, + "id": 4441, "name": "trancheFeePercent", "nodeType": "VariableDeclaration", - "scope": 4452, - "src": "302:22:11", + "scope": 4450, + "src": "303:22:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -633,10 +633,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4442, + "id": 4440, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "302:4:11", + "src": "303:4:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -647,11 +647,11 @@ }, { "constant": false, - "id": 4445, + "id": 4443, "name": "swap", "nodeType": "VariableDeclaration", - "scope": 4452, - "src": "335:12:11", + "scope": 4450, + "src": "336:12:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -659,10 +659,10 @@ "typeString": "address" }, "typeName": { - "id": 4444, + "id": 4442, "name": "address", "nodeType": "ElementaryTypeName", - "src": "335:7:11", + "src": "336:7:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -673,11 +673,11 @@ }, { "constant": false, - "id": 4447, + "id": 4445, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 4452, - "src": "357:13:11", + "scope": 4450, + "src": "358:13:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -685,10 +685,10 @@ "typeString": "address" }, "typeName": { - "id": 4446, + "id": 4444, "name": "address", "nodeType": "ElementaryTypeName", - "src": "357:7:11", + "src": "358:7:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -698,35 +698,35 @@ "visibility": "internal" } ], - "src": "119:257:11" + "src": "120:257:7" }, "payable": false, "returnParameters": { - "id": 4451, + "id": 4449, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4450, + "id": 4448, "name": "", "nodeType": "VariableDeclaration", - "scope": 4452, - "src": "403:13:11", + "scope": 4450, + "src": "404:13:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" }, "typeName": { "contractScope": null, - "id": 4449, + "id": 4447, "name": "IW12Crowdsale", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4426, - "src": "403:13:11", + "referencedDeclaration": 1204, + "src": "404:13:7", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } }, @@ -734,20 +734,20 @@ "visibility": "internal" } ], - "src": "402:15:11" + "src": "403:15:7" }, - "scope": 4453, - "src": "95:323:11", + "scope": 4451, + "src": "96:323:7", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" } ], - "scope": 4454, - "src": "58:362:11" + "scope": 4452, + "src": "59:362:7" } ], - "src": "0:421:11" + "src": "0:422:7" }, "compiler": { "name": "solc", @@ -755,5 +755,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-02T11:52:56.749Z" + "updatedAt": "2018-10-22T07:56:01.525Z" } \ No newline at end of file diff --git a/build/contracts/IW12Fund.json b/build/contracts/IW12Fund.json index 567a3124..864a9d93 100644 --- a/build/contracts/IW12Fund.json +++ b/build/contracts/IW12Fund.json @@ -61,12 +61,24 @@ "constant": false, "inputs": [ { - "name": "buyer", + "name": "investor", "type": "address" }, { "name": "tokenAmount", "type": "uint256" + }, + { + "name": "symbol", + "type": "bytes32" + }, + { + "name": "cost", + "type": "uint256" + }, + { + "name": "costUSD", + "type": "uint256" } ], "name": "recordPurchase", @@ -80,20 +92,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(address buyer, uint tokenAmount) external payable;\n}\n", - "sourcePath": "/home/circleci/code/contracts/interfaces/IW12Fund.sol", + "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", + "sourcePath": "/home/circleci/code/contracts/crowdsale/IW12Fund.sol", "ast": { - "absolutePath": "/home/circleci/code/contracts/interfaces/IW12Fund.sol", + "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Fund.sol", "exportedSymbols": { "IW12Fund": [ - 4484 + 1241 ] }, - "id": 4485, + "id": 1242, "nodeType": "SourceUnit", "nodes": [ { - "id": 4455, + "id": 1206, "literals": [ "solidity", "^", @@ -101,16 +113,16 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:12" + "src": "0:24:4" }, { - "absolutePath": "/home/circleci/code/contracts/interfaces/IW12Crowdsale.sol", + "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Crowdsale.sol", "file": "./IW12Crowdsale.sol", - "id": 4456, + "id": 1207, "nodeType": "ImportDirective", - "scope": 4485, - "sourceUnit": 4427, - "src": "26:29:12", + "scope": 1242, + "sourceUnit": 1205, + "src": "26:29:4", "symbolAliases": [], "unitAlias": "" }, @@ -120,9 +132,9 @@ "contractKind": "interface", "documentation": null, "fullyImplemented": false, - "id": 4484, + "id": 1241, "linearizedBaseContracts": [ - 4484 + 1241 ], "name": "IW12Fund", "nodeType": "ContractDefinition", @@ -130,7 +142,7 @@ { "body": null, "documentation": null, - "id": 4461, + "id": 1212, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -138,31 +150,31 @@ "name": "setCrowdsale", "nodeType": "FunctionDefinition", "parameters": { - "id": 4459, + "id": 1210, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4458, + "id": 1209, "name": "_crowdsale", "nodeType": "VariableDeclaration", - "scope": 4461, - "src": "105:24:12", + "scope": 1212, + "src": "105:24:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" }, "typeName": { "contractScope": null, - "id": 4457, + "id": 1208, "name": "IW12Crowdsale", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4426, - "src": "105:13:12", + "referencedDeclaration": 1204, + "src": "105:13:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } }, @@ -170,17 +182,17 @@ "visibility": "internal" } ], - "src": "104:26:12" + "src": "104:26:4" }, "payable": false, "returnParameters": { - "id": 4460, + "id": 1211, "nodeType": "ParameterList", "parameters": [], - "src": "139:0:12" + "src": "139:0:4" }, - "scope": 4484, - "src": "83:57:12", + "scope": 1241, + "src": "83:57:4", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -188,7 +200,7 @@ { "body": null, "documentation": null, - "id": 4466, + "id": 1217, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -196,16 +208,16 @@ "name": "setServiceWallet", "nodeType": "FunctionDefinition", "parameters": { - "id": 4464, + "id": 1215, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4463, + "id": 1214, "name": "_serviceWallet", "nodeType": "VariableDeclaration", - "scope": 4466, - "src": "172:22:12", + "scope": 1217, + "src": "172:22:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -213,10 +225,10 @@ "typeString": "address" }, "typeName": { - "id": 4462, + "id": 1213, "name": "address", "nodeType": "ElementaryTypeName", - "src": "172:7:12", + "src": "172:7:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -226,17 +238,17 @@ "visibility": "internal" } ], - "src": "171:24:12" + "src": "171:24:4" }, "payable": false, "returnParameters": { - "id": 4465, + "id": 1216, "nodeType": "ParameterList", "parameters": [], - "src": "204:0:12" + "src": "204:0:4" }, - "scope": 4484, - "src": "146:59:12", + "scope": 1241, + "src": "146:59:4", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -244,7 +256,7 @@ { "body": null, "documentation": null, - "id": 4471, + "id": 1222, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -252,16 +264,16 @@ "name": "setSwap", "nodeType": "FunctionDefinition", "parameters": { - "id": 4469, + "id": 1220, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4468, + "id": 1219, "name": "_swap", "nodeType": "VariableDeclaration", - "scope": 4471, - "src": "228:13:12", + "scope": 1222, + "src": "228:13:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -269,10 +281,10 @@ "typeString": "address" }, "typeName": { - "id": 4467, + "id": 1218, "name": "address", "nodeType": "ElementaryTypeName", - "src": "228:7:12", + "src": "228:7:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -282,17 +294,17 @@ "visibility": "internal" } ], - "src": "227:15:12" + "src": "227:15:4" }, "payable": false, "returnParameters": { - "id": 4470, + "id": 1221, "nodeType": "ParameterList", "parameters": [], - "src": "251:0:12" + "src": "251:0:4" }, - "scope": 4484, - "src": "211:41:12", + "scope": 1241, + "src": "211:41:4", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -300,7 +312,7 @@ { "body": null, "documentation": null, - "id": 4476, + "id": 1227, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -308,16 +320,16 @@ "name": "transferOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 4474, + "id": 1225, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4473, + "id": 1224, "name": "newOwner", "nodeType": "VariableDeclaration", - "scope": 4476, - "src": "285:16:12", + "scope": 1227, + "src": "285:16:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -325,10 +337,10 @@ "typeString": "address" }, "typeName": { - "id": 4472, + "id": 1223, "name": "address", "nodeType": "ElementaryTypeName", - "src": "285:7:12", + "src": "285:7:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -338,17 +350,17 @@ "visibility": "internal" } ], - "src": "284:18:12" + "src": "284:18:4" }, "payable": false, "returnParameters": { - "id": 4475, + "id": 1226, "nodeType": "ParameterList", "parameters": [], - "src": "311:0:12" + "src": "311:0:4" }, - "scope": 4484, - "src": "258:54:12", + "scope": 1241, + "src": "258:54:4", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -356,7 +368,7 @@ { "body": null, "documentation": null, - "id": 4483, + "id": 1240, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -364,16 +376,16 @@ "name": "recordPurchase", "nodeType": "FunctionDefinition", "parameters": { - "id": 4481, + "id": 1238, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4478, - "name": "buyer", + "id": 1229, + "name": "investor", "nodeType": "VariableDeclaration", - "scope": 4483, - "src": "342:13:12", + "scope": 1240, + "src": "351:16:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -381,10 +393,10 @@ "typeString": "address" }, "typeName": { - "id": 4477, + "id": 1228, "name": "address", "nodeType": "ElementaryTypeName", - "src": "342:7:12", + "src": "351:7:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -395,11 +407,89 @@ }, { "constant": false, - "id": 4480, + "id": 1231, "name": "tokenAmount", "nodeType": "VariableDeclaration", - "scope": 4483, - "src": "357:16:12", + "scope": 1240, + "src": "377:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1230, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "377:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1233, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 1240, + "src": "403:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1232, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "403:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1235, + "name": "cost", + "nodeType": "VariableDeclaration", + "scope": 1240, + "src": "427:9:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1234, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "427:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1237, + "name": "costUSD", + "nodeType": "VariableDeclaration", + "scope": 1240, + "src": "446:12:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -407,10 +497,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4479, + "id": 1236, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "357:4:12", + "src": "446:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -420,40 +510,40 @@ "visibility": "internal" } ], - "src": "341:33:12" + "src": "341:123:4" }, "payable": true, "returnParameters": { - "id": 4482, + "id": 1239, "nodeType": "ParameterList", "parameters": [], - "src": "391:0:12" + "src": "481:0:4" }, - "scope": 4484, - "src": "318:74:12", + "scope": 1241, + "src": "318:164:4", "stateMutability": "payable", "superFunction": null, "visibility": "external" } ], - "scope": 4485, - "src": "58:336:12" + "scope": 1242, + "src": "58:426:4" } ], - "src": "0:395:12" + "src": "0:485:4" }, "legacyAST": { - "absolutePath": "/home/circleci/code/contracts/interfaces/IW12Fund.sol", + "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Fund.sol", "exportedSymbols": { "IW12Fund": [ - 4484 + 1241 ] }, - "id": 4485, + "id": 1242, "nodeType": "SourceUnit", "nodes": [ { - "id": 4455, + "id": 1206, "literals": [ "solidity", "^", @@ -461,16 +551,16 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:12" + "src": "0:24:4" }, { - "absolutePath": "/home/circleci/code/contracts/interfaces/IW12Crowdsale.sol", + "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Crowdsale.sol", "file": "./IW12Crowdsale.sol", - "id": 4456, + "id": 1207, "nodeType": "ImportDirective", - "scope": 4485, - "sourceUnit": 4427, - "src": "26:29:12", + "scope": 1242, + "sourceUnit": 1205, + "src": "26:29:4", "symbolAliases": [], "unitAlias": "" }, @@ -480,9 +570,9 @@ "contractKind": "interface", "documentation": null, "fullyImplemented": false, - "id": 4484, + "id": 1241, "linearizedBaseContracts": [ - 4484 + 1241 ], "name": "IW12Fund", "nodeType": "ContractDefinition", @@ -490,7 +580,7 @@ { "body": null, "documentation": null, - "id": 4461, + "id": 1212, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -498,31 +588,31 @@ "name": "setCrowdsale", "nodeType": "FunctionDefinition", "parameters": { - "id": 4459, + "id": 1210, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4458, + "id": 1209, "name": "_crowdsale", "nodeType": "VariableDeclaration", - "scope": 4461, - "src": "105:24:12", + "scope": 1212, + "src": "105:24:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" }, "typeName": { "contractScope": null, - "id": 4457, + "id": 1208, "name": "IW12Crowdsale", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4426, - "src": "105:13:12", + "referencedDeclaration": 1204, + "src": "105:13:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } }, @@ -530,17 +620,17 @@ "visibility": "internal" } ], - "src": "104:26:12" + "src": "104:26:4" }, "payable": false, "returnParameters": { - "id": 4460, + "id": 1211, "nodeType": "ParameterList", "parameters": [], - "src": "139:0:12" + "src": "139:0:4" }, - "scope": 4484, - "src": "83:57:12", + "scope": 1241, + "src": "83:57:4", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -548,7 +638,7 @@ { "body": null, "documentation": null, - "id": 4466, + "id": 1217, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -556,16 +646,16 @@ "name": "setServiceWallet", "nodeType": "FunctionDefinition", "parameters": { - "id": 4464, + "id": 1215, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4463, + "id": 1214, "name": "_serviceWallet", "nodeType": "VariableDeclaration", - "scope": 4466, - "src": "172:22:12", + "scope": 1217, + "src": "172:22:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -573,10 +663,10 @@ "typeString": "address" }, "typeName": { - "id": 4462, + "id": 1213, "name": "address", "nodeType": "ElementaryTypeName", - "src": "172:7:12", + "src": "172:7:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -586,17 +676,17 @@ "visibility": "internal" } ], - "src": "171:24:12" + "src": "171:24:4" }, "payable": false, "returnParameters": { - "id": 4465, + "id": 1216, "nodeType": "ParameterList", "parameters": [], - "src": "204:0:12" + "src": "204:0:4" }, - "scope": 4484, - "src": "146:59:12", + "scope": 1241, + "src": "146:59:4", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -604,7 +694,7 @@ { "body": null, "documentation": null, - "id": 4471, + "id": 1222, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -612,16 +702,16 @@ "name": "setSwap", "nodeType": "FunctionDefinition", "parameters": { - "id": 4469, + "id": 1220, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4468, + "id": 1219, "name": "_swap", "nodeType": "VariableDeclaration", - "scope": 4471, - "src": "228:13:12", + "scope": 1222, + "src": "228:13:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -629,10 +719,10 @@ "typeString": "address" }, "typeName": { - "id": 4467, + "id": 1218, "name": "address", "nodeType": "ElementaryTypeName", - "src": "228:7:12", + "src": "228:7:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -642,17 +732,17 @@ "visibility": "internal" } ], - "src": "227:15:12" + "src": "227:15:4" }, "payable": false, "returnParameters": { - "id": 4470, + "id": 1221, "nodeType": "ParameterList", "parameters": [], - "src": "251:0:12" + "src": "251:0:4" }, - "scope": 4484, - "src": "211:41:12", + "scope": 1241, + "src": "211:41:4", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -660,7 +750,7 @@ { "body": null, "documentation": null, - "id": 4476, + "id": 1227, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -668,16 +758,16 @@ "name": "transferOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 4474, + "id": 1225, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4473, + "id": 1224, "name": "newOwner", "nodeType": "VariableDeclaration", - "scope": 4476, - "src": "285:16:12", + "scope": 1227, + "src": "285:16:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -685,10 +775,10 @@ "typeString": "address" }, "typeName": { - "id": 4472, + "id": 1223, "name": "address", "nodeType": "ElementaryTypeName", - "src": "285:7:12", + "src": "285:7:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -698,17 +788,17 @@ "visibility": "internal" } ], - "src": "284:18:12" + "src": "284:18:4" }, "payable": false, "returnParameters": { - "id": 4475, + "id": 1226, "nodeType": "ParameterList", "parameters": [], - "src": "311:0:12" + "src": "311:0:4" }, - "scope": 4484, - "src": "258:54:12", + "scope": 1241, + "src": "258:54:4", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -716,7 +806,7 @@ { "body": null, "documentation": null, - "id": 4483, + "id": 1240, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -724,16 +814,16 @@ "name": "recordPurchase", "nodeType": "FunctionDefinition", "parameters": { - "id": 4481, + "id": 1238, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4478, - "name": "buyer", + "id": 1229, + "name": "investor", "nodeType": "VariableDeclaration", - "scope": 4483, - "src": "342:13:12", + "scope": 1240, + "src": "351:16:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -741,10 +831,10 @@ "typeString": "address" }, "typeName": { - "id": 4477, + "id": 1228, "name": "address", "nodeType": "ElementaryTypeName", - "src": "342:7:12", + "src": "351:7:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -755,11 +845,89 @@ }, { "constant": false, - "id": 4480, + "id": 1231, "name": "tokenAmount", "nodeType": "VariableDeclaration", - "scope": 4483, - "src": "357:16:12", + "scope": 1240, + "src": "377:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1230, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "377:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1233, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 1240, + "src": "403:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1232, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "403:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1235, + "name": "cost", + "nodeType": "VariableDeclaration", + "scope": 1240, + "src": "427:9:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1234, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "427:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1237, + "name": "costUSD", + "nodeType": "VariableDeclaration", + "scope": 1240, + "src": "446:12:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -767,10 +935,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4479, + "id": 1236, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "357:4:12", + "src": "446:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -780,27 +948,27 @@ "visibility": "internal" } ], - "src": "341:33:12" + "src": "341:123:4" }, "payable": true, "returnParameters": { - "id": 4482, + "id": 1239, "nodeType": "ParameterList", "parameters": [], - "src": "391:0:12" + "src": "481:0:4" }, - "scope": 4484, - "src": "318:74:12", + "scope": 1241, + "src": "318:164:4", "stateMutability": "payable", "superFunction": null, "visibility": "external" } ], - "scope": 4485, - "src": "58:336:12" + "scope": 1242, + "src": "58:426:4" } ], - "src": "0:395:12" + "src": "0:485:4" }, "compiler": { "name": "solc", @@ -808,5 +976,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-02T11:52:56.750Z" + "updatedAt": "2018-10-22T07:56:01.524Z" } \ No newline at end of file diff --git a/build/contracts/IW12FundFactory.json b/build/contracts/IW12FundFactory.json index 1dc01214..205d0f99 100644 --- a/build/contracts/IW12FundFactory.json +++ b/build/contracts/IW12FundFactory.json @@ -33,20 +33,20 @@ "deployedBytecode": "0x", "sourceMap": "", "deployedSourceMap": "", - "source": "pragma solidity ^0.4.24;\n\nimport \"./IW12Fund.sol\";\n\n\ninterface IW12FundFactory {\n function createFund(address swap, address serviceWallet, uint trancheFeePercent) external returns (IW12Fund);\n}\n", - "sourcePath": "/home/circleci/code/contracts/interfaces/IW12FundFactory.sol", + "source": "pragma solidity ^0.4.24;\n\nimport \"../IW12Fund.sol\";\n\n\ninterface IW12FundFactory {\n function createFund(address swap, address serviceWallet, uint trancheFeePercent) external returns (IW12Fund);\n}\n", + "sourcePath": "/home/circleci/code/contracts/crowdsale/factories/IW12FundFactory.sol", "ast": { - "absolutePath": "/home/circleci/code/contracts/interfaces/IW12FundFactory.sol", + "absolutePath": "/home/circleci/code/contracts/crowdsale/factories/IW12FundFactory.sol", "exportedSymbols": { "IW12FundFactory": [ - 4499 + 4466 ] }, - "id": 4500, + "id": 4467, "nodeType": "SourceUnit", "nodes": [ { - "id": 4486, + "id": 4453, "literals": [ "solidity", "^", @@ -54,16 +54,16 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:13" + "src": "0:24:8" }, { - "absolutePath": "/home/circleci/code/contracts/interfaces/IW12Fund.sol", - "file": "./IW12Fund.sol", - "id": 4487, + "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Fund.sol", + "file": "../IW12Fund.sol", + "id": 4454, "nodeType": "ImportDirective", - "scope": 4500, - "sourceUnit": 4485, - "src": "26:24:13", + "scope": 4467, + "sourceUnit": 1242, + "src": "26:25:8", "symbolAliases": [], "unitAlias": "" }, @@ -73,9 +73,9 @@ "contractKind": "interface", "documentation": null, "fullyImplemented": false, - "id": 4499, + "id": 4466, "linearizedBaseContracts": [ - 4499 + 4466 ], "name": "IW12FundFactory", "nodeType": "ContractDefinition", @@ -83,7 +83,7 @@ { "body": null, "documentation": null, - "id": 4498, + "id": 4465, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -91,16 +91,16 @@ "name": "createFund", "nodeType": "FunctionDefinition", "parameters": { - "id": 4494, + "id": 4461, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4489, + "id": 4456, "name": "swap", "nodeType": "VariableDeclaration", - "scope": 4498, - "src": "105:12:13", + "scope": 4465, + "src": "106:12:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -108,10 +108,10 @@ "typeString": "address" }, "typeName": { - "id": 4488, + "id": 4455, "name": "address", "nodeType": "ElementaryTypeName", - "src": "105:7:13", + "src": "106:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -122,11 +122,11 @@ }, { "constant": false, - "id": 4491, + "id": 4458, "name": "serviceWallet", "nodeType": "VariableDeclaration", - "scope": 4498, - "src": "119:21:13", + "scope": 4465, + "src": "120:21:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -134,10 +134,10 @@ "typeString": "address" }, "typeName": { - "id": 4490, + "id": 4457, "name": "address", "nodeType": "ElementaryTypeName", - "src": "119:7:13", + "src": "120:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -148,11 +148,11 @@ }, { "constant": false, - "id": 4493, + "id": 4460, "name": "trancheFeePercent", "nodeType": "VariableDeclaration", - "scope": 4498, - "src": "142:22:13", + "scope": 4465, + "src": "143:22:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -160,10 +160,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4492, + "id": 4459, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "142:4:13", + "src": "143:4:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -173,35 +173,35 @@ "visibility": "internal" } ], - "src": "104:61:13" + "src": "105:61:8" }, "payable": false, "returnParameters": { - "id": 4497, + "id": 4464, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4496, + "id": 4463, "name": "", "nodeType": "VariableDeclaration", - "scope": 4498, - "src": "184:8:13", + "scope": 4465, + "src": "185:8:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", + "typeIdentifier": "t_contract$_IW12Fund_$1241", "typeString": "contract IW12Fund" }, "typeName": { "contractScope": null, - "id": 4495, + "id": 4462, "name": "IW12Fund", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4484, - "src": "184:8:13", + "referencedDeclaration": 1241, + "src": "185:8:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", + "typeIdentifier": "t_contract$_IW12Fund_$1241", "typeString": "contract IW12Fund" } }, @@ -209,33 +209,33 @@ "visibility": "internal" } ], - "src": "183:10:13" + "src": "184:10:8" }, - "scope": 4499, - "src": "85:109:13", + "scope": 4466, + "src": "86:109:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" } ], - "scope": 4500, - "src": "53:143:13" + "scope": 4467, + "src": "54:143:8" } ], - "src": "0:197:13" + "src": "0:198:8" }, "legacyAST": { - "absolutePath": "/home/circleci/code/contracts/interfaces/IW12FundFactory.sol", + "absolutePath": "/home/circleci/code/contracts/crowdsale/factories/IW12FundFactory.sol", "exportedSymbols": { "IW12FundFactory": [ - 4499 + 4466 ] }, - "id": 4500, + "id": 4467, "nodeType": "SourceUnit", "nodes": [ { - "id": 4486, + "id": 4453, "literals": [ "solidity", "^", @@ -243,16 +243,16 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:13" + "src": "0:24:8" }, { - "absolutePath": "/home/circleci/code/contracts/interfaces/IW12Fund.sol", - "file": "./IW12Fund.sol", - "id": 4487, + "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Fund.sol", + "file": "../IW12Fund.sol", + "id": 4454, "nodeType": "ImportDirective", - "scope": 4500, - "sourceUnit": 4485, - "src": "26:24:13", + "scope": 4467, + "sourceUnit": 1242, + "src": "26:25:8", "symbolAliases": [], "unitAlias": "" }, @@ -262,9 +262,9 @@ "contractKind": "interface", "documentation": null, "fullyImplemented": false, - "id": 4499, + "id": 4466, "linearizedBaseContracts": [ - 4499 + 4466 ], "name": "IW12FundFactory", "nodeType": "ContractDefinition", @@ -272,7 +272,7 @@ { "body": null, "documentation": null, - "id": 4498, + "id": 4465, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -280,16 +280,16 @@ "name": "createFund", "nodeType": "FunctionDefinition", "parameters": { - "id": 4494, + "id": 4461, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4489, + "id": 4456, "name": "swap", "nodeType": "VariableDeclaration", - "scope": 4498, - "src": "105:12:13", + "scope": 4465, + "src": "106:12:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -297,10 +297,10 @@ "typeString": "address" }, "typeName": { - "id": 4488, + "id": 4455, "name": "address", "nodeType": "ElementaryTypeName", - "src": "105:7:13", + "src": "106:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -311,11 +311,11 @@ }, { "constant": false, - "id": 4491, + "id": 4458, "name": "serviceWallet", "nodeType": "VariableDeclaration", - "scope": 4498, - "src": "119:21:13", + "scope": 4465, + "src": "120:21:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -323,10 +323,10 @@ "typeString": "address" }, "typeName": { - "id": 4490, + "id": 4457, "name": "address", "nodeType": "ElementaryTypeName", - "src": "119:7:13", + "src": "120:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -337,11 +337,11 @@ }, { "constant": false, - "id": 4493, + "id": 4460, "name": "trancheFeePercent", "nodeType": "VariableDeclaration", - "scope": 4498, - "src": "142:22:13", + "scope": 4465, + "src": "143:22:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -349,10 +349,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4492, + "id": 4459, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "142:4:13", + "src": "143:4:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -362,35 +362,35 @@ "visibility": "internal" } ], - "src": "104:61:13" + "src": "105:61:8" }, "payable": false, "returnParameters": { - "id": 4497, + "id": 4464, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4496, + "id": 4463, "name": "", "nodeType": "VariableDeclaration", - "scope": 4498, - "src": "184:8:13", + "scope": 4465, + "src": "185:8:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", + "typeIdentifier": "t_contract$_IW12Fund_$1241", "typeString": "contract IW12Fund" }, "typeName": { "contractScope": null, - "id": 4495, + "id": 4462, "name": "IW12Fund", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4484, - "src": "184:8:13", + "referencedDeclaration": 1241, + "src": "185:8:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", + "typeIdentifier": "t_contract$_IW12Fund_$1241", "typeString": "contract IW12Fund" } }, @@ -398,20 +398,20 @@ "visibility": "internal" } ], - "src": "183:10:13" + "src": "184:10:8" }, - "scope": 4499, - "src": "85:109:13", + "scope": 4466, + "src": "86:109:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" } ], - "scope": 4500, - "src": "53:143:13" + "scope": 4467, + "src": "54:143:8" } ], - "src": "0:197:13" + "src": "0:198:8" }, "compiler": { "name": "solc", @@ -419,5 +419,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-02T11:52:56.753Z" + "updatedAt": "2018-10-22T07:56:01.525Z" } \ No newline at end of file diff --git a/build/contracts/IWToken.json b/build/contracts/IWToken.json new file mode 100644 index 00000000..74a74ace --- /dev/null +++ b/build/contracts/IWToken.json @@ -0,0 +1,2470 @@ +{ + "contractName": "IWToken", + "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": "", + "type": "address" + } + ], + "name": "balances", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "decimals", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + }, + { + "name": "", + "type": "uint256" + } + ], + "name": "vestingBalanceOf", + "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": "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" + }, + { + "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" + }, + { + "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": false, + "inputs": [ + { + "name": "caller", + "type": "address" + } + ], + "name": "addTrustedAccount", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "caller", + "type": "address" + } + ], + "name": "removeTrustedAccount", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "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", + "sourcePath": "/home/circleci/code/contracts/token/IWToken.sol", + "ast": { + "absolutePath": "/home/circleci/code/contracts/token/IWToken.sol", + "exportedSymbols": { + "IWToken": [ + 7630 + ] + }, + "id": 7631, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 7547, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:29" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/DetailedERC20.sol", + "file": "openzeppelin-solidity/contracts/token/ERC20/DetailedERC20.sol", + "id": 7548, + "nodeType": "ImportDirective", + "scope": 7631, + "sourceUnit": 9723, + "src": "26:71:29", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 7549, + "name": "DetailedERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9722, + "src": "119:13:29", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DetailedERC20_$9722", + "typeString": "contract DetailedERC20" + } + }, + "id": 7550, + "nodeType": "InheritanceSpecifier", + "src": "119:13:29" + } + ], + "contractDependencies": [ + 9722, + 9765, + 9797 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 7630, + "linearizedBaseContracts": [ + 7630, + 9722, + 9765, + 9797 + ], + "name": "IWToken", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 7554, + "name": "balances", + "nodeType": "VariableDeclaration", + "scope": 7630, + "src": "139:43:29", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 7553, + "keyType": { + "id": 7551, + "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": 7552, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "158:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 7560, + "name": "vestingBalanceOf", + "nodeType": "VariableDeclaration", + "scope": 7630, + "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": 7559, + "keyType": { + "id": 7555, + "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": 7558, + "keyType": { + "id": 7556, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "215:7:29", + "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": 7557, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "226:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "value": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 7571, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "vestingTransfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7567, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7562, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 7571, + "src": "291:11:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7561, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "291:7:29", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7564, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 7571, + "src": "304:14:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7563, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "304:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7566, + "name": "_vestingTime", + "nodeType": "VariableDeclaration", + "scope": 7571, + "src": "320:19:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 7565, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "320:6:29", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "290:50:29" + }, + "payable": false, + "returnParameters": { + "id": 7570, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7569, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7571, + "src": "359:4:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7568, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "359:4:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "358:6:29" + }, + "scope": 7630, + "src": "266:99:29", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 7580, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "increaseApproval", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7576, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7573, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 7580, + "src": "397:16:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7572, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "397:7:29", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7575, + "name": "_addedValue", + "nodeType": "VariableDeclaration", + "scope": 7580, + "src": "415:16:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7574, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "415:4:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "396:36:29" + }, + "payable": false, + "returnParameters": { + "id": 7579, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7578, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7580, + "src": "449:4:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7577, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "449:4:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "448:6:29" + }, + "scope": 7630, + "src": "371:84:29", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 7589, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "decreaseApproval", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7585, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7582, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 7589, + "src": "487:16:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7581, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "487:7:29", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7584, + "name": "_subtractedValue", + "nodeType": "VariableDeclaration", + "scope": 7589, + "src": "505:21:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7583, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "505:4:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "486:41:29" + }, + "payable": false, + "returnParameters": { + "id": 7588, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7587, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7589, + "src": "544:4:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7586, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "544:4:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "543:6:29" + }, + "scope": 7630, + "src": "461:89:29", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 7600, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7596, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7591, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 7600, + "src": "570:11:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7590, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "570:7:29", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7593, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 7600, + "src": "583:12:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7592, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "583:4:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7595, + "name": "_vestingTime", + "nodeType": "VariableDeclaration", + "scope": 7600, + "src": "597:19:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 7594, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "597:6:29", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "569:48:29" + }, + "payable": false, + "returnParameters": { + "id": 7599, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7598, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7600, + "src": "636:4:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7597, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "636:4:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "635:6:29" + }, + "scope": 7630, + "src": "556:86:29", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 7605, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "burn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7603, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7602, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 7605, + "src": "662:14:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7601, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "662:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "661:16:29" + }, + "payable": false, + "returnParameters": { + "id": 7604, + "nodeType": "ParameterList", + "parameters": [], + "src": "684:0:29" + }, + "scope": 7630, + "src": "648:37:29", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 7612, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "burnFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7610, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7607, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 7612, + "src": "709:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7606, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "709:7:29", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7609, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 7612, + "src": "724:14:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7608, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "724:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "708:31:29" + }, + "payable": false, + "returnParameters": { + "id": 7611, + "nodeType": "ParameterList", + "parameters": [], + "src": "746:0:29" + }, + "scope": 7630, + "src": "691:56:29", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 7619, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "accountBalance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7615, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7614, + "name": "_address", + "nodeType": "VariableDeclaration", + "scope": 7619, + "src": "777:16:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7613, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "777:7:29", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "776:18:29" + }, + "payable": false, + "returnParameters": { + "id": 7618, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7617, + "name": "balance", + "nodeType": "VariableDeclaration", + "scope": 7619, + "src": "816:15:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7616, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "816:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "815:17:29" + }, + "scope": 7630, + "src": "753:80:29", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 7624, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "addTrustedAccount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7622, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7621, + "name": "caller", + "nodeType": "VariableDeclaration", + "scope": 7624, + "src": "866:14:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7620, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "866:7:29", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "865:16:29" + }, + "payable": false, + "returnParameters": { + "id": 7623, + "nodeType": "ParameterList", + "parameters": [], + "src": "890:0:29" + }, + "scope": 7630, + "src": "839:52:29", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 7629, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "removeTrustedAccount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7627, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7626, + "name": "caller", + "nodeType": "VariableDeclaration", + "scope": 7629, + "src": "927:14:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7625, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "927:7:29", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "926:16:29" + }, + "payable": false, + "returnParameters": { + "id": 7628, + "nodeType": "ParameterList", + "parameters": [], + "src": "951:0:29" + }, + "scope": 7630, + "src": "897:55:29", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 7631, + "src": "99:855:29" + } + ], + "src": "0:955:29" + }, + "legacyAST": { + "absolutePath": "/home/circleci/code/contracts/token/IWToken.sol", + "exportedSymbols": { + "IWToken": [ + 7630 + ] + }, + "id": 7631, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 7547, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:29" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/DetailedERC20.sol", + "file": "openzeppelin-solidity/contracts/token/ERC20/DetailedERC20.sol", + "id": 7548, + "nodeType": "ImportDirective", + "scope": 7631, + "sourceUnit": 9723, + "src": "26:71:29", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 7549, + "name": "DetailedERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9722, + "src": "119:13:29", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DetailedERC20_$9722", + "typeString": "contract DetailedERC20" + } + }, + "id": 7550, + "nodeType": "InheritanceSpecifier", + "src": "119:13:29" + } + ], + "contractDependencies": [ + 9722, + 9765, + 9797 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 7630, + "linearizedBaseContracts": [ + 7630, + 9722, + 9765, + 9797 + ], + "name": "IWToken", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 7554, + "name": "balances", + "nodeType": "VariableDeclaration", + "scope": 7630, + "src": "139:43:29", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 7553, + "keyType": { + "id": 7551, + "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": 7552, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "158:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 7560, + "name": "vestingBalanceOf", + "nodeType": "VariableDeclaration", + "scope": 7630, + "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": 7559, + "keyType": { + "id": 7555, + "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": 7558, + "keyType": { + "id": 7556, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "215:7:29", + "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": 7557, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "226:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "value": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 7571, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "vestingTransfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7567, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7562, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 7571, + "src": "291:11:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7561, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "291:7:29", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7564, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 7571, + "src": "304:14:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7563, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "304:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7566, + "name": "_vestingTime", + "nodeType": "VariableDeclaration", + "scope": 7571, + "src": "320:19:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 7565, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "320:6:29", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "290:50:29" + }, + "payable": false, + "returnParameters": { + "id": 7570, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7569, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7571, + "src": "359:4:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7568, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "359:4:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "358:6:29" + }, + "scope": 7630, + "src": "266:99:29", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 7580, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "increaseApproval", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7576, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7573, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 7580, + "src": "397:16:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7572, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "397:7:29", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7575, + "name": "_addedValue", + "nodeType": "VariableDeclaration", + "scope": 7580, + "src": "415:16:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7574, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "415:4:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "396:36:29" + }, + "payable": false, + "returnParameters": { + "id": 7579, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7578, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7580, + "src": "449:4:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7577, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "449:4:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "448:6:29" + }, + "scope": 7630, + "src": "371:84:29", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 7589, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "decreaseApproval", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7585, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7582, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 7589, + "src": "487:16:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7581, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "487:7:29", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7584, + "name": "_subtractedValue", + "nodeType": "VariableDeclaration", + "scope": 7589, + "src": "505:21:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7583, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "505:4:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "486:41:29" + }, + "payable": false, + "returnParameters": { + "id": 7588, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7587, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7589, + "src": "544:4:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7586, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "544:4:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "543:6:29" + }, + "scope": 7630, + "src": "461:89:29", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 7600, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7596, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7591, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 7600, + "src": "570:11:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7590, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "570:7:29", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7593, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 7600, + "src": "583:12:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7592, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "583:4:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7595, + "name": "_vestingTime", + "nodeType": "VariableDeclaration", + "scope": 7600, + "src": "597:19:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 7594, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "597:6:29", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "569:48:29" + }, + "payable": false, + "returnParameters": { + "id": 7599, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7598, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7600, + "src": "636:4:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7597, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "636:4:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "635:6:29" + }, + "scope": 7630, + "src": "556:86:29", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 7605, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "burn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7603, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7602, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 7605, + "src": "662:14:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7601, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "662:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "661:16:29" + }, + "payable": false, + "returnParameters": { + "id": 7604, + "nodeType": "ParameterList", + "parameters": [], + "src": "684:0:29" + }, + "scope": 7630, + "src": "648:37:29", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 7612, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "burnFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7610, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7607, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 7612, + "src": "709:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7606, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "709:7:29", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7609, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 7612, + "src": "724:14:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7608, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "724:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "708:31:29" + }, + "payable": false, + "returnParameters": { + "id": 7611, + "nodeType": "ParameterList", + "parameters": [], + "src": "746:0:29" + }, + "scope": 7630, + "src": "691:56:29", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 7619, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "accountBalance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7615, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7614, + "name": "_address", + "nodeType": "VariableDeclaration", + "scope": 7619, + "src": "777:16:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7613, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "777:7:29", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "776:18:29" + }, + "payable": false, + "returnParameters": { + "id": 7618, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7617, + "name": "balance", + "nodeType": "VariableDeclaration", + "scope": 7619, + "src": "816:15:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7616, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "816:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "815:17:29" + }, + "scope": 7630, + "src": "753:80:29", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 7624, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "addTrustedAccount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7622, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7621, + "name": "caller", + "nodeType": "VariableDeclaration", + "scope": 7624, + "src": "866:14:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7620, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "866:7:29", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "865:16:29" + }, + "payable": false, + "returnParameters": { + "id": 7623, + "nodeType": "ParameterList", + "parameters": [], + "src": "890:0:29" + }, + "scope": 7630, + "src": "839:52:29", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 7629, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "removeTrustedAccount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7627, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7626, + "name": "caller", + "nodeType": "VariableDeclaration", + "scope": 7629, + "src": "927:14:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7625, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "927:7:29", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "926:16:29" + }, + "payable": false, + "returnParameters": { + "id": 7628, + "nodeType": "ParameterList", + "parameters": [], + "src": "951:0:29" + }, + "scope": 7630, + "src": "897:55:29", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 7631, + "src": "99:855:29" + } + ], + "src": "0:955:29" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.1", + "updatedAt": "2018-10-22T07:56:01.514Z" +} \ No newline at end of file diff --git a/build/contracts/IWallets.json b/build/contracts/IWallets.json new file mode 100644 index 00000000..e5034410 --- /dev/null +++ b/build/contracts/IWallets.json @@ -0,0 +1,489 @@ +{ + "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" + } + ], + "bytecode": "0x", + "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", + "sourcePath": "/home/circleci/code/contracts/wallets/IWallets.sol", + "ast": { + "absolutePath": "/home/circleci/code/contracts/wallets/IWallets.sol", + "exportedSymbols": { + "IWallets": [ + 9239 + ] + }, + "id": 9240, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 9223, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:39" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", + "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", + "id": 9224, + "nodeType": "ImportDirective", + "scope": 9240, + "sourceUnit": 9689, + "src": "26:63:39", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 9239, + "linearizedBaseContracts": [ + 9239 + ], + "name": "IWallets", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 9231, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "setWallet", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9229, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9226, + "name": "ID", + "nodeType": "VariableDeclaration", + "scope": 9231, + "src": "134:8:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 9225, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "134:5:39", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9228, + "name": "wallet", + "nodeType": "VariableDeclaration", + "scope": 9231, + "src": "144:14:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9227, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "144:7:39", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "133:26:39" + }, + "payable": false, + "returnParameters": { + "id": 9230, + "nodeType": "ParameterList", + "parameters": [], + "src": "159:0:39" + }, + "scope": 9239, + "src": "115:45:39", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 9238, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getWallet", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9234, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9233, + "name": "ID", + "nodeType": "VariableDeclaration", + "scope": 9238, + "src": "185:8:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 9232, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "185:5:39", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "184:10:39" + }, + "payable": false, + "returnParameters": { + "id": 9237, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9236, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9238, + "src": "215:7:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9235, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "215:7:39", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "214:9:39" + }, + "scope": 9239, + "src": "166:58:39", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 9240, + "src": "91:135:39" + } + ], + "src": "0:227:39" + }, + "legacyAST": { + "absolutePath": "/home/circleci/code/contracts/wallets/IWallets.sol", + "exportedSymbols": { + "IWallets": [ + 9239 + ] + }, + "id": 9240, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 9223, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:39" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", + "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", + "id": 9224, + "nodeType": "ImportDirective", + "scope": 9240, + "sourceUnit": 9689, + "src": "26:63:39", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 9239, + "linearizedBaseContracts": [ + 9239 + ], + "name": "IWallets", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 9231, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "setWallet", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9229, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9226, + "name": "ID", + "nodeType": "VariableDeclaration", + "scope": 9231, + "src": "134:8:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 9225, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "134:5:39", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9228, + "name": "wallet", + "nodeType": "VariableDeclaration", + "scope": 9231, + "src": "144:14:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9227, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "144:7:39", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "133:26:39" + }, + "payable": false, + "returnParameters": { + "id": 9230, + "nodeType": "ParameterList", + "parameters": [], + "src": "159:0:39" + }, + "scope": 9239, + "src": "115:45:39", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 9238, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getWallet", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9234, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9233, + "name": "ID", + "nodeType": "VariableDeclaration", + "scope": 9238, + "src": "185:8:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 9232, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "185:5:39", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "184:10:39" + }, + "payable": false, + "returnParameters": { + "id": 9237, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9236, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9238, + "src": "215:7:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9235, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "215:7:39", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "214:9:39" + }, + "scope": 9239, + "src": "166:58:39", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 9240, + "src": "91:135:39" + } + ], + "src": "0:227:39" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.1", + "updatedAt": "2018-10-22T07:56:01.514Z" +} \ No newline at end of file diff --git a/build/contracts/Migrations.json b/build/contracts/Migrations.json index 22db7fa9..c373f74b 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:26;: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:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;53:19:26;;;;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:26:-;;;;:::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: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", "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": 6510, + "sourceUnit": 9071, "src": "26:38:0", "symbolAliases": [], "unitAlias": "" @@ -130,10 +130,10 @@ "id": 3, "name": "Versionable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6509, + "referencedDeclaration": 9070, "src": "89:11:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_Versionable_$6509", + "typeIdentifier": "t_contract$_Versionable_$9070", "typeString": "contract Versionable" } }, @@ -143,7 +143,7 @@ } ], "contractDependencies": [ - 6509 + 9070 ], "contractKind": "contract", "documentation": null, @@ -151,7 +151,7 @@ "id": 64, "linearizedBaseContracts": [ 64, - 6509 + 9070 ], "name": "Migrations", "nodeType": "ContractDefinition", @@ -234,7 +234,7 @@ "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, + "referencedDeclaration": 10042, "src": "202:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", @@ -338,7 +338,7 @@ "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, + "referencedDeclaration": 10042, "src": "301:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", @@ -400,10 +400,10 @@ "name": "Versionable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6509, + "referencedDeclaration": 9070, "src": "259:11:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Versionable_$6509_$", + "typeIdentifier": "t_type$_t_contract$_Versionable_$9070_$", "typeString": "type(contract Versionable)" } }, @@ -860,7 +860,7 @@ "id": 2, "nodeType": "ImportDirective", "scope": 65, - "sourceUnit": 6510, + "sourceUnit": 9071, "src": "26:38:0", "symbolAliases": [], "unitAlias": "" @@ -874,10 +874,10 @@ "id": 3, "name": "Versionable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6509, + "referencedDeclaration": 9070, "src": "89:11:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_Versionable_$6509", + "typeIdentifier": "t_contract$_Versionable_$9070", "typeString": "contract Versionable" } }, @@ -887,7 +887,7 @@ } ], "contractDependencies": [ - 6509 + 9070 ], "contractKind": "contract", "documentation": null, @@ -895,7 +895,7 @@ "id": 64, "linearizedBaseContracts": [ 64, - 6509 + 9070 ], "name": "Migrations", "nodeType": "ContractDefinition", @@ -978,7 +978,7 @@ "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, + "referencedDeclaration": 10042, "src": "202:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", @@ -1082,7 +1082,7 @@ "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, + "referencedDeclaration": 10042, "src": "301:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", @@ -1144,10 +1144,10 @@ "name": "Versionable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6509, + "referencedDeclaration": 9070, "src": "259:11:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Versionable_$6509_$", + "typeIdentifier": "t_type$_t_contract$_Versionable_$9070_$", "typeString": "type(contract Versionable)" } }, @@ -1590,5 +1590,5 @@ } }, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-02T12:05:06.483Z" + "updatedAt": "2018-10-22T08:01:07.096Z" } \ No newline at end of file diff --git a/build/contracts/Ownable.json b/build/contracts/Ownable.json index 65a25599..1dc1828d 100644 --- a/build/contracts/Ownable.json +++ b/build/contracts/Ownable.json @@ -76,22 +76,22 @@ ], "bytecode": "0x608060405234801561001057600080fd5b5060008054600160a060020a0319163317905561020b806100326000396000f3006080604052600436106100565763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663715018a6811461005b5780638da5cb5b14610072578063f2fde38b146100a3575b600080fd5b34801561006757600080fd5b506100706100c4565b005b34801561007e57600080fd5b50610087610130565b60408051600160a060020a039092168252519081900360200190f35b3480156100af57600080fd5b50610070600160a060020a036004351661013f565b600054600160a060020a031633146100db57600080fd5b60008054604051600160a060020a03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a26000805473ffffffffffffffffffffffffffffffffffffffff19169055565b600054600160a060020a031681565b600054600160a060020a0316331461015657600080fd5b61015f81610162565b50565b600160a060020a038116151561017757600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a7230582099b3fdec5a298230e961a6accb8d433e981386cd8aaf80aad49a83ae9ec578430029", "deployedBytecode": "0x6080604052600436106100565763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663715018a6811461005b5780638da5cb5b14610072578063f2fde38b146100a3575b600080fd5b34801561006757600080fd5b506100706100c4565b005b34801561007e57600080fd5b50610087610130565b60408051600160a060020a039092168252519081900360200190f35b3480156100af57600080fd5b50610070600160a060020a036004351661013f565b600054600160a060020a031633146100db57600080fd5b60008054604051600160a060020a03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a26000805473ffffffffffffffffffffffffffffffffffffffff19169055565b600054600160a060020a031681565b600054600160a060020a0316331461015657600080fd5b61015f81610162565b50565b600160a060020a038116151561017757600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a7230582099b3fdec5a298230e961a6accb8d433e981386cd8aaf80aad49a83ae9ec578430029", - "sourceMap": "217:1468:31:-;;;540:50;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;567:5:31;:18;;-1:-1:-1;;;;;;567:18:31;575:10;567:18;;;217:1468;;;;;;", - "deployedSourceMap": "217:1468:31:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1001:111;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1001:111:31;;;;;;238:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:31;;;;;;;;-1:-1:-1;;;;;238:20:31;;;;;;;;;;;;;;1274:103;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1274:103:31;-1:-1:-1;;;;;1274:103:31;;;;;1001:111;719:5;;-1:-1:-1;;;;;719:5:31;705:10;:19;697:28;;;;;;1077:5;;;1058:25;;-1:-1:-1;;;;;1077:5:31;;;;1058:25;;;1105:1;1089:18;;-1:-1:-1;;1089:18:31;;;1001:111::o;238:20::-;;;-1:-1:-1;;;;;238:20:31;;:::o;1274:103::-;719:5;;-1:-1:-1;;;;;719:5:31;705:10;:19;697:28;;;;;;1343:29;1362:9;1343:18;:29::i;:::-;1274:103;:::o;1512:171::-;-1:-1:-1;;;;;1582:23:31;;;;1574:32;;;;;;1638:5;;;1617:38;;-1:-1:-1;;;;;1617:38:31;;;;1638:5;;;1617:38;;;1661:5;:17;;-1:-1:-1;;1661:17:31;-1:-1:-1;;;;;1661:17:31;;;;;;;;;;1512:171::o", + "sourceMap": "217:1468:45:-;;;540:50;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;;;217:1468;;;;;;", + "deployedSourceMap": "217:1468:45:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1001:111;;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;;;;;;;;-1:-1:-1;;;;;238:20:45;;;;;;;;;;;;;;1274:103;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1274:103:45;-1:-1:-1;;;;;1274:103:45;;;;;1001:111;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;238:20::-;;;-1:-1:-1;;;;;238:20:45;;:::o;1274:103::-;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\n\n/**\n * @title Ownable\n * @dev The Ownable contract has an owner address, and provides basic authorization control\n * functions, this simplifies the implementation of \"user permissions\".\n */\ncontract Ownable {\n address public owner;\n\n\n event OwnershipRenounced(address indexed previousOwner);\n event OwnershipTransferred(\n address indexed previousOwner,\n address indexed newOwner\n );\n\n\n /**\n * @dev The Ownable constructor sets the original `owner` of the contract to the sender\n * account.\n */\n constructor() public {\n owner = msg.sender;\n }\n\n /**\n * @dev Throws if called by any account other than the owner.\n */\n modifier onlyOwner() {\n require(msg.sender == owner);\n _;\n }\n\n /**\n * @dev Allows the current owner to relinquish control of the contract.\n * @notice Renouncing to ownership will leave the contract without an owner.\n * It will not be possible to call the functions with the `onlyOwner`\n * modifier anymore.\n */\n function renounceOwnership() public onlyOwner {\n emit OwnershipRenounced(owner);\n owner = address(0);\n }\n\n /**\n * @dev Allows the current owner to transfer control of the contract to a newOwner.\n * @param _newOwner The address to transfer ownership to.\n */\n function transferOwnership(address _newOwner) public onlyOwner {\n _transferOwnership(_newOwner);\n }\n\n /**\n * @dev Transfers control of the contract to a newOwner.\n * @param _newOwner The address to transfer ownership to.\n */\n function _transferOwnership(address _newOwner) internal {\n require(_newOwner != address(0));\n emit OwnershipTransferred(owner, _newOwner);\n owner = _newOwner;\n }\n}\n", "sourcePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", "ast": { "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", "exportedSymbols": { "Ownable": [ - 6940 + 9688 ] }, - "id": 6941, + "id": 9689, "nodeType": "SourceUnit", "nodes": [ { - "id": 6856, + "id": 9604, "literals": [ "solidity", "^", @@ -99,7 +99,7 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:31" + "src": "0:24:45" }, { "baseContracts": [], @@ -107,20 +107,20 @@ "contractKind": "contract", "documentation": "@title Ownable\n@dev The Ownable contract has an owner address, and provides basic authorization control\nfunctions, this simplifies the implementation of \"user permissions\".", "fullyImplemented": true, - "id": 6940, + "id": 9688, "linearizedBaseContracts": [ - 6940 + 9688 ], "name": "Ownable", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 6858, + "id": 9606, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 6940, - "src": "238:20:31", + "scope": 9688, + "src": "238:20:45", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -128,10 +128,10 @@ "typeString": "address" }, "typeName": { - "id": 6857, + "id": 9605, "name": "address", "nodeType": "ElementaryTypeName", - "src": "238:7:31", + "src": "238:7:45", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -143,21 +143,21 @@ { "anonymous": false, "documentation": null, - "id": 6862, + "id": 9610, "name": "OwnershipRenounced", "nodeType": "EventDefinition", "parameters": { - "id": 6861, + "id": 9609, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6860, + "id": 9608, "indexed": true, "name": "previousOwner", "nodeType": "VariableDeclaration", - "scope": 6862, - "src": "289:29:31", + "scope": 9610, + "src": "289:29:45", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -165,10 +165,10 @@ "typeString": "address" }, "typeName": { - "id": 6859, + "id": 9607, "name": "address", "nodeType": "ElementaryTypeName", - "src": "289:7:31", + "src": "289:7:45", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -178,28 +178,28 @@ "visibility": "internal" } ], - "src": "288:31:31" + "src": "288:31:45" }, - "src": "264:56:31" + "src": "264:56:45" }, { "anonymous": false, "documentation": null, - "id": 6868, + "id": 9616, "name": "OwnershipTransferred", "nodeType": "EventDefinition", "parameters": { - "id": 6867, + "id": 9615, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6864, + "id": 9612, "indexed": true, "name": "previousOwner", "nodeType": "VariableDeclaration", - "scope": 6868, - "src": "355:29:31", + "scope": 9616, + "src": "355:29:45", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -207,10 +207,10 @@ "typeString": "address" }, "typeName": { - "id": 6863, + "id": 9611, "name": "address", "nodeType": "ElementaryTypeName", - "src": "355:7:31", + "src": "355:7:45", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -221,12 +221,12 @@ }, { "constant": false, - "id": 6866, + "id": 9614, "indexed": true, "name": "newOwner", "nodeType": "VariableDeclaration", - "scope": 6868, - "src": "390:24:31", + "scope": 9616, + "src": "390:24:45", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -234,10 +234,10 @@ "typeString": "address" }, "typeName": { - "id": 6865, + "id": 9613, "name": "address", "nodeType": "ElementaryTypeName", - "src": "390:7:31", + "src": "390:7:45", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -247,32 +247,32 @@ "visibility": "internal" } ], - "src": "349:69:31" + "src": "349:69:45" }, - "src": "323:96:31" + "src": "323:96:45" }, { "body": { - "id": 6876, + "id": 9624, "nodeType": "Block", - "src": "561:29:31", + "src": "561:29:45", "statements": [ { "expression": { "argumentTypes": null, - "id": 6874, + "id": 9622, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 6871, + "id": 9619, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "567:5:31", + "referencedDeclaration": 9606, + "src": "567:5:45", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -284,18 +284,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 6872, + "id": 9620, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "575:3:31", + "referencedDeclaration": 10042, + "src": "575:3:45", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 6873, + "id": 9621, "isConstant": false, "isLValue": false, "isPure": false, @@ -303,26 +303,26 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "575:10:31", + "src": "575:10:45", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "567:18:31", + "src": "567:18:45", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 6875, + "id": 9623, "nodeType": "ExpressionStatement", - "src": "567:18:31" + "src": "567:18:45" } ] }, "documentation": "@dev The Ownable constructor sets the original `owner` of the contract to the sender\naccount.", - "id": 6877, + "id": 9625, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -330,29 +330,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 6869, + "id": 9617, "nodeType": "ParameterList", "parameters": [], - "src": "551:2:31" + "src": "551:2:45" }, "payable": false, "returnParameters": { - "id": 6870, + "id": 9618, "nodeType": "ParameterList", "parameters": [], - "src": "561:0:31" + "src": "561:0:45" }, - "scope": 6940, - "src": "540:50:31", + "scope": 9688, + "src": "540:50:45", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 6887, + "id": 9635, "nodeType": "Block", - "src": "691:46:31", + "src": "691:46:45", "statements": [ { "expression": { @@ -364,7 +364,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 6883, + "id": 9631, "isConstant": false, "isLValue": false, "isPure": false, @@ -373,18 +373,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 6880, + "id": 9628, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "705:3:31", + "referencedDeclaration": 10042, + "src": "705:3:45", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 6881, + "id": 9629, "isConstant": false, "isLValue": false, "isPure": false, @@ -392,7 +392,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "705:10:31", + "src": "705:10:45", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -402,18 +402,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 6882, + "id": 9630, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "719:5:31", + "referencedDeclaration": 9606, + "src": "719:5:45", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "705:19:31", + "src": "705:19:45", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -427,21 +427,21 @@ "typeString": "bool" } ], - "id": 6879, + "id": 9627, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "697:7:31", + "referencedDeclaration": 10045, + "src": "697:7:45", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 6884, + "id": 9632, "isConstant": false, "isLValue": false, "isPure": false, @@ -449,41 +449,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "697:28:31", + "src": "697:28:45", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6885, + "id": 9633, "nodeType": "ExpressionStatement", - "src": "697:28:31" + "src": "697:28:45" }, { - "id": 6886, + "id": 9634, "nodeType": "PlaceholderStatement", - "src": "731:1:31" + "src": "731:1:45" } ] }, "documentation": "@dev Throws if called by any account other than the owner.", - "id": 6888, + "id": 9636, "name": "onlyOwner", "nodeType": "ModifierDefinition", "parameters": { - "id": 6878, + "id": 9626, "nodeType": "ParameterList", "parameters": [], - "src": "688:2:31" + "src": "688:2:45" }, - "src": "670:67:31", + "src": "670:67:45", "visibility": "internal" }, { "body": { - "id": 6903, + "id": 9651, "nodeType": "Block", - "src": "1047:65:31", + "src": "1047:65:45", "statements": [ { "eventCall": { @@ -491,12 +491,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6894, + "id": 9642, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "1077:5:31", + "referencedDeclaration": 9606, + "src": "1077:5:45", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -510,18 +510,18 @@ "typeString": "address" } ], - "id": 6893, + "id": 9641, "name": "OwnershipRenounced", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6862, - "src": "1058:18:31", + "referencedDeclaration": 9610, + "src": "1058:18:45", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 6895, + "id": 9643, "isConstant": false, "isLValue": false, "isPure": false, @@ -529,32 +529,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1058:25:31", + "src": "1058:25:45", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6896, + "id": 9644, "nodeType": "EmitStatement", - "src": "1053:30:31" + "src": "1053:30:45" }, { "expression": { "argumentTypes": null, - "id": 6901, + "id": 9649, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 6897, + "id": 9645, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "1089:5:31", + "referencedDeclaration": 9606, + "src": "1089:5:45", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -568,14 +568,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 6899, + "id": 9647, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1105:1:31", + "src": "1105:1:45", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -591,20 +591,20 @@ "typeString": "int_const 0" } ], - "id": 6898, + "id": 9646, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1097:7:31", + "src": "1097:7:45", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 6900, + "id": 9648, "isConstant": false, "isLValue": false, "isPure": true, @@ -612,76 +612,76 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1097:10:31", + "src": "1097:10:45", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1089:18:31", + "src": "1089:18:45", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 6902, + "id": 9650, "nodeType": "ExpressionStatement", - "src": "1089:18:31" + "src": "1089:18:45" } ] }, "documentation": "@dev Allows the current owner to relinquish control of the contract.\n@notice Renouncing to ownership will leave the contract without an owner.\nIt will not be possible to call the functions with the `onlyOwner`\nmodifier anymore.", - "id": 6904, + "id": 9652, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 6891, + "id": 9639, "modifierName": { "argumentTypes": null, - "id": 6890, + "id": 9638, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6888, - "src": "1037:9:31", + "referencedDeclaration": 9636, + "src": "1037:9:45", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1037:9:31" + "src": "1037:9:45" } ], "name": "renounceOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 6889, + "id": 9637, "nodeType": "ParameterList", "parameters": [], - "src": "1027:2:31" + "src": "1027:2:45" }, "payable": false, "returnParameters": { - "id": 6892, + "id": 9640, "nodeType": "ParameterList", "parameters": [], - "src": "1047:0:31" + "src": "1047:0:45" }, - "scope": 6940, - "src": "1001:111:31", + "scope": 9688, + "src": "1001:111:45", "stateMutability": "nonpayable", - "superFunction": null, + "superFunction": 7009, "visibility": "public" }, { "body": { - "id": 6915, + "id": 9663, "nodeType": "Block", - "src": "1337:40:31", + "src": "1337:40:45", "statements": [ { "expression": { @@ -689,12 +689,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6912, + "id": 9660, "name": "_newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6906, - "src": "1362:9:31", + "referencedDeclaration": 9654, + "src": "1362:9:45", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -708,18 +708,18 @@ "typeString": "address" } ], - "id": 6911, + "id": 9659, "name": "_transferOwnership", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6939, - "src": "1343:18:31", + "referencedDeclaration": 9687, + "src": "1343:18:45", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 6913, + "id": 9661, "isConstant": false, "isLValue": false, "isPure": false, @@ -727,57 +727,57 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1343:29:31", + "src": "1343:29:45", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6914, + "id": 9662, "nodeType": "ExpressionStatement", - "src": "1343:29:31" + "src": "1343:29:45" } ] }, "documentation": "@dev Allows the current owner to transfer control of the contract to a newOwner.\n@param _newOwner The address to transfer ownership to.", - "id": 6916, + "id": 9664, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 6909, + "id": 9657, "modifierName": { "argumentTypes": null, - "id": 6908, + "id": 9656, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6888, - "src": "1327:9:31", + "referencedDeclaration": 9636, + "src": "1327:9:45", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1327:9:31" + "src": "1327:9:45" } ], "name": "transferOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 6907, + "id": 9655, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6906, + "id": 9654, "name": "_newOwner", "nodeType": "VariableDeclaration", - "scope": 6916, - "src": "1301:17:31", + "scope": 9664, + "src": "1301:17:45", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -785,10 +785,10 @@ "typeString": "address" }, "typeName": { - "id": 6905, + "id": 9653, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1301:7:31", + "src": "1301:7:45", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -798,26 +798,26 @@ "visibility": "internal" } ], - "src": "1300:19:31" + "src": "1300:19:45" }, "payable": false, "returnParameters": { - "id": 6910, + "id": 9658, "nodeType": "ParameterList", "parameters": [], - "src": "1337:0:31" + "src": "1337:0:45" }, - "scope": 6940, - "src": "1274:103:31", + "scope": 9688, + "src": "1274:103:45", "stateMutability": "nonpayable", - "superFunction": 4425, + "superFunction": 1203, "visibility": "public" }, { "body": { - "id": 6938, + "id": 9686, "nodeType": "Block", - "src": "1568:115:31", + "src": "1568:115:45", "statements": [ { "expression": { @@ -829,19 +829,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 6926, + "id": 9674, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6922, + "id": 9670, "name": "_newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6918, - "src": "1582:9:31", + "referencedDeclaration": 9666, + "src": "1582:9:45", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -855,14 +855,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 6924, + "id": 9672, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1603:1:31", + "src": "1603:1:45", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -878,20 +878,20 @@ "typeString": "int_const 0" } ], - "id": 6923, + "id": 9671, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1595:7:31", + "src": "1595:7:45", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 6925, + "id": 9673, "isConstant": false, "isLValue": false, "isPure": true, @@ -899,13 +899,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1595:10:31", + "src": "1595:10:45", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1582:23:31", + "src": "1582:23:45", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -919,21 +919,21 @@ "typeString": "bool" } ], - "id": 6921, + "id": 9669, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "1574:7:31", + "referencedDeclaration": 10045, + "src": "1574:7:45", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 6927, + "id": 9675, "isConstant": false, "isLValue": false, "isPure": false, @@ -941,15 +941,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1574:32:31", + "src": "1574:32:45", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6928, + "id": 9676, "nodeType": "ExpressionStatement", - "src": "1574:32:31" + "src": "1574:32:45" }, { "eventCall": { @@ -957,12 +957,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6930, + "id": 9678, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "1638:5:31", + "referencedDeclaration": 9606, + "src": "1638:5:45", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -970,12 +970,12 @@ }, { "argumentTypes": null, - "id": 6931, + "id": 9679, "name": "_newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6918, - "src": "1645:9:31", + "referencedDeclaration": 9666, + "src": "1645:9:45", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -993,18 +993,18 @@ "typeString": "address" } ], - "id": 6929, + "id": 9677, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6868, - "src": "1617:20:31", + "referencedDeclaration": 9616, + "src": "1617:20:45", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 6932, + "id": 9680, "isConstant": false, "isLValue": false, "isPure": false, @@ -1012,32 +1012,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1617:38:31", + "src": "1617:38:45", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6933, + "id": 9681, "nodeType": "EmitStatement", - "src": "1612:43:31" + "src": "1612:43:45" }, { "expression": { "argumentTypes": null, - "id": 6936, + "id": 9684, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 6934, + "id": 9682, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "1661:5:31", + "referencedDeclaration": 9606, + "src": "1661:5:45", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1047,31 +1047,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 6935, + "id": 9683, "name": "_newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6918, - "src": "1669:9:31", + "referencedDeclaration": 9666, + "src": "1669:9:45", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1661:17:31", + "src": "1661:17:45", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 6937, + "id": 9685, "nodeType": "ExpressionStatement", - "src": "1661:17:31" + "src": "1661:17:45" } ] }, "documentation": "@dev Transfers control of the contract to a newOwner.\n@param _newOwner The address to transfer ownership to.", - "id": 6939, + "id": 9687, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1079,16 +1079,16 @@ "name": "_transferOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 6919, + "id": 9667, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6918, + "id": 9666, "name": "_newOwner", "nodeType": "VariableDeclaration", - "scope": 6939, - "src": "1540:17:31", + "scope": 9687, + "src": "1540:17:45", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1096,10 +1096,10 @@ "typeString": "address" }, "typeName": { - "id": 6917, + "id": 9665, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1540:7:31", + "src": "1540:7:45", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1109,40 +1109,40 @@ "visibility": "internal" } ], - "src": "1539:19:31" + "src": "1539:19:45" }, "payable": false, "returnParameters": { - "id": 6920, + "id": 9668, "nodeType": "ParameterList", "parameters": [], - "src": "1568:0:31" + "src": "1568:0:45" }, - "scope": 6940, - "src": "1512:171:31", + "scope": 9688, + "src": "1512:171:45", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" } ], - "scope": 6941, - "src": "217:1468:31" + "scope": 9689, + "src": "217:1468:45" } ], - "src": "0:1686:31" + "src": "0:1686:45" }, "legacyAST": { "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", "exportedSymbols": { "Ownable": [ - 6940 + 9688 ] }, - "id": 6941, + "id": 9689, "nodeType": "SourceUnit", "nodes": [ { - "id": 6856, + "id": 9604, "literals": [ "solidity", "^", @@ -1150,7 +1150,7 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:31" + "src": "0:24:45" }, { "baseContracts": [], @@ -1158,20 +1158,20 @@ "contractKind": "contract", "documentation": "@title Ownable\n@dev The Ownable contract has an owner address, and provides basic authorization control\nfunctions, this simplifies the implementation of \"user permissions\".", "fullyImplemented": true, - "id": 6940, + "id": 9688, "linearizedBaseContracts": [ - 6940 + 9688 ], "name": "Ownable", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 6858, + "id": 9606, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 6940, - "src": "238:20:31", + "scope": 9688, + "src": "238:20:45", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1179,10 +1179,10 @@ "typeString": "address" }, "typeName": { - "id": 6857, + "id": 9605, "name": "address", "nodeType": "ElementaryTypeName", - "src": "238:7:31", + "src": "238:7:45", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1194,21 +1194,21 @@ { "anonymous": false, "documentation": null, - "id": 6862, + "id": 9610, "name": "OwnershipRenounced", "nodeType": "EventDefinition", "parameters": { - "id": 6861, + "id": 9609, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6860, + "id": 9608, "indexed": true, "name": "previousOwner", "nodeType": "VariableDeclaration", - "scope": 6862, - "src": "289:29:31", + "scope": 9610, + "src": "289:29:45", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1216,10 +1216,10 @@ "typeString": "address" }, "typeName": { - "id": 6859, + "id": 9607, "name": "address", "nodeType": "ElementaryTypeName", - "src": "289:7:31", + "src": "289:7:45", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1229,28 +1229,28 @@ "visibility": "internal" } ], - "src": "288:31:31" + "src": "288:31:45" }, - "src": "264:56:31" + "src": "264:56:45" }, { "anonymous": false, "documentation": null, - "id": 6868, + "id": 9616, "name": "OwnershipTransferred", "nodeType": "EventDefinition", "parameters": { - "id": 6867, + "id": 9615, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6864, + "id": 9612, "indexed": true, "name": "previousOwner", "nodeType": "VariableDeclaration", - "scope": 6868, - "src": "355:29:31", + "scope": 9616, + "src": "355:29:45", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1258,10 +1258,10 @@ "typeString": "address" }, "typeName": { - "id": 6863, + "id": 9611, "name": "address", "nodeType": "ElementaryTypeName", - "src": "355:7:31", + "src": "355:7:45", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1272,12 +1272,12 @@ }, { "constant": false, - "id": 6866, + "id": 9614, "indexed": true, "name": "newOwner", "nodeType": "VariableDeclaration", - "scope": 6868, - "src": "390:24:31", + "scope": 9616, + "src": "390:24:45", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1285,10 +1285,10 @@ "typeString": "address" }, "typeName": { - "id": 6865, + "id": 9613, "name": "address", "nodeType": "ElementaryTypeName", - "src": "390:7:31", + "src": "390:7:45", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1298,32 +1298,32 @@ "visibility": "internal" } ], - "src": "349:69:31" + "src": "349:69:45" }, - "src": "323:96:31" + "src": "323:96:45" }, { "body": { - "id": 6876, + "id": 9624, "nodeType": "Block", - "src": "561:29:31", + "src": "561:29:45", "statements": [ { "expression": { "argumentTypes": null, - "id": 6874, + "id": 9622, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 6871, + "id": 9619, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "567:5:31", + "referencedDeclaration": 9606, + "src": "567:5:45", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1335,18 +1335,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 6872, + "id": 9620, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "575:3:31", + "referencedDeclaration": 10042, + "src": "575:3:45", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 6873, + "id": 9621, "isConstant": false, "isLValue": false, "isPure": false, @@ -1354,26 +1354,26 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "575:10:31", + "src": "575:10:45", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "567:18:31", + "src": "567:18:45", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 6875, + "id": 9623, "nodeType": "ExpressionStatement", - "src": "567:18:31" + "src": "567:18:45" } ] }, "documentation": "@dev The Ownable constructor sets the original `owner` of the contract to the sender\naccount.", - "id": 6877, + "id": 9625, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -1381,29 +1381,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 6869, + "id": 9617, "nodeType": "ParameterList", "parameters": [], - "src": "551:2:31" + "src": "551:2:45" }, "payable": false, "returnParameters": { - "id": 6870, + "id": 9618, "nodeType": "ParameterList", "parameters": [], - "src": "561:0:31" + "src": "561:0:45" }, - "scope": 6940, - "src": "540:50:31", + "scope": 9688, + "src": "540:50:45", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 6887, + "id": 9635, "nodeType": "Block", - "src": "691:46:31", + "src": "691:46:45", "statements": [ { "expression": { @@ -1415,7 +1415,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 6883, + "id": 9631, "isConstant": false, "isLValue": false, "isPure": false, @@ -1424,18 +1424,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 6880, + "id": 9628, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "705:3:31", + "referencedDeclaration": 10042, + "src": "705:3:45", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 6881, + "id": 9629, "isConstant": false, "isLValue": false, "isPure": false, @@ -1443,7 +1443,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "705:10:31", + "src": "705:10:45", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1453,18 +1453,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 6882, + "id": 9630, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "719:5:31", + "referencedDeclaration": 9606, + "src": "719:5:45", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "705:19:31", + "src": "705:19:45", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1478,21 +1478,21 @@ "typeString": "bool" } ], - "id": 6879, + "id": 9627, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "697:7:31", + "referencedDeclaration": 10045, + "src": "697:7:45", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 6884, + "id": 9632, "isConstant": false, "isLValue": false, "isPure": false, @@ -1500,41 +1500,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "697:28:31", + "src": "697:28:45", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6885, + "id": 9633, "nodeType": "ExpressionStatement", - "src": "697:28:31" + "src": "697:28:45" }, { - "id": 6886, + "id": 9634, "nodeType": "PlaceholderStatement", - "src": "731:1:31" + "src": "731:1:45" } ] }, "documentation": "@dev Throws if called by any account other than the owner.", - "id": 6888, + "id": 9636, "name": "onlyOwner", "nodeType": "ModifierDefinition", "parameters": { - "id": 6878, + "id": 9626, "nodeType": "ParameterList", "parameters": [], - "src": "688:2:31" + "src": "688:2:45" }, - "src": "670:67:31", + "src": "670:67:45", "visibility": "internal" }, { "body": { - "id": 6903, + "id": 9651, "nodeType": "Block", - "src": "1047:65:31", + "src": "1047:65:45", "statements": [ { "eventCall": { @@ -1542,12 +1542,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6894, + "id": 9642, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "1077:5:31", + "referencedDeclaration": 9606, + "src": "1077:5:45", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1561,18 +1561,18 @@ "typeString": "address" } ], - "id": 6893, + "id": 9641, "name": "OwnershipRenounced", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6862, - "src": "1058:18:31", + "referencedDeclaration": 9610, + "src": "1058:18:45", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 6895, + "id": 9643, "isConstant": false, "isLValue": false, "isPure": false, @@ -1580,32 +1580,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1058:25:31", + "src": "1058:25:45", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6896, + "id": 9644, "nodeType": "EmitStatement", - "src": "1053:30:31" + "src": "1053:30:45" }, { "expression": { "argumentTypes": null, - "id": 6901, + "id": 9649, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 6897, + "id": 9645, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "1089:5:31", + "referencedDeclaration": 9606, + "src": "1089:5:45", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1619,14 +1619,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 6899, + "id": 9647, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1105:1:31", + "src": "1105:1:45", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1642,20 +1642,20 @@ "typeString": "int_const 0" } ], - "id": 6898, + "id": 9646, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1097:7:31", + "src": "1097:7:45", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 6900, + "id": 9648, "isConstant": false, "isLValue": false, "isPure": true, @@ -1663,76 +1663,76 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1097:10:31", + "src": "1097:10:45", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1089:18:31", + "src": "1089:18:45", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 6902, + "id": 9650, "nodeType": "ExpressionStatement", - "src": "1089:18:31" + "src": "1089:18:45" } ] }, "documentation": "@dev Allows the current owner to relinquish control of the contract.\n@notice Renouncing to ownership will leave the contract without an owner.\nIt will not be possible to call the functions with the `onlyOwner`\nmodifier anymore.", - "id": 6904, + "id": 9652, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 6891, + "id": 9639, "modifierName": { "argumentTypes": null, - "id": 6890, + "id": 9638, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6888, - "src": "1037:9:31", + "referencedDeclaration": 9636, + "src": "1037:9:45", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1037:9:31" + "src": "1037:9:45" } ], "name": "renounceOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 6889, + "id": 9637, "nodeType": "ParameterList", "parameters": [], - "src": "1027:2:31" + "src": "1027:2:45" }, "payable": false, "returnParameters": { - "id": 6892, + "id": 9640, "nodeType": "ParameterList", "parameters": [], - "src": "1047:0:31" + "src": "1047:0:45" }, - "scope": 6940, - "src": "1001:111:31", + "scope": 9688, + "src": "1001:111:45", "stateMutability": "nonpayable", - "superFunction": null, + "superFunction": 7009, "visibility": "public" }, { "body": { - "id": 6915, + "id": 9663, "nodeType": "Block", - "src": "1337:40:31", + "src": "1337:40:45", "statements": [ { "expression": { @@ -1740,12 +1740,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6912, + "id": 9660, "name": "_newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6906, - "src": "1362:9:31", + "referencedDeclaration": 9654, + "src": "1362:9:45", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1759,18 +1759,18 @@ "typeString": "address" } ], - "id": 6911, + "id": 9659, "name": "_transferOwnership", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6939, - "src": "1343:18:31", + "referencedDeclaration": 9687, + "src": "1343:18:45", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 6913, + "id": 9661, "isConstant": false, "isLValue": false, "isPure": false, @@ -1778,57 +1778,57 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1343:29:31", + "src": "1343:29:45", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6914, + "id": 9662, "nodeType": "ExpressionStatement", - "src": "1343:29:31" + "src": "1343:29:45" } ] }, "documentation": "@dev Allows the current owner to transfer control of the contract to a newOwner.\n@param _newOwner The address to transfer ownership to.", - "id": 6916, + "id": 9664, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 6909, + "id": 9657, "modifierName": { "argumentTypes": null, - "id": 6908, + "id": 9656, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6888, - "src": "1327:9:31", + "referencedDeclaration": 9636, + "src": "1327:9:45", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1327:9:31" + "src": "1327:9:45" } ], "name": "transferOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 6907, + "id": 9655, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6906, + "id": 9654, "name": "_newOwner", "nodeType": "VariableDeclaration", - "scope": 6916, - "src": "1301:17:31", + "scope": 9664, + "src": "1301:17:45", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1836,10 +1836,10 @@ "typeString": "address" }, "typeName": { - "id": 6905, + "id": 9653, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1301:7:31", + "src": "1301:7:45", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1849,26 +1849,26 @@ "visibility": "internal" } ], - "src": "1300:19:31" + "src": "1300:19:45" }, "payable": false, "returnParameters": { - "id": 6910, + "id": 9658, "nodeType": "ParameterList", "parameters": [], - "src": "1337:0:31" + "src": "1337:0:45" }, - "scope": 6940, - "src": "1274:103:31", + "scope": 9688, + "src": "1274:103:45", "stateMutability": "nonpayable", - "superFunction": 4425, + "superFunction": 1203, "visibility": "public" }, { "body": { - "id": 6938, + "id": 9686, "nodeType": "Block", - "src": "1568:115:31", + "src": "1568:115:45", "statements": [ { "expression": { @@ -1880,19 +1880,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 6926, + "id": 9674, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6922, + "id": 9670, "name": "_newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6918, - "src": "1582:9:31", + "referencedDeclaration": 9666, + "src": "1582:9:45", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1906,14 +1906,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 6924, + "id": 9672, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1603:1:31", + "src": "1603:1:45", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1929,20 +1929,20 @@ "typeString": "int_const 0" } ], - "id": 6923, + "id": 9671, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1595:7:31", + "src": "1595:7:45", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 6925, + "id": 9673, "isConstant": false, "isLValue": false, "isPure": true, @@ -1950,13 +1950,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1595:10:31", + "src": "1595:10:45", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1582:23:31", + "src": "1582:23:45", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1970,21 +1970,21 @@ "typeString": "bool" } ], - "id": 6921, + "id": 9669, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "1574:7:31", + "referencedDeclaration": 10045, + "src": "1574:7:45", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 6927, + "id": 9675, "isConstant": false, "isLValue": false, "isPure": false, @@ -1992,15 +1992,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1574:32:31", + "src": "1574:32:45", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6928, + "id": 9676, "nodeType": "ExpressionStatement", - "src": "1574:32:31" + "src": "1574:32:45" }, { "eventCall": { @@ -2008,12 +2008,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6930, + "id": 9678, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "1638:5:31", + "referencedDeclaration": 9606, + "src": "1638:5:45", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2021,12 +2021,12 @@ }, { "argumentTypes": null, - "id": 6931, + "id": 9679, "name": "_newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6918, - "src": "1645:9:31", + "referencedDeclaration": 9666, + "src": "1645:9:45", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2044,18 +2044,18 @@ "typeString": "address" } ], - "id": 6929, + "id": 9677, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6868, - "src": "1617:20:31", + "referencedDeclaration": 9616, + "src": "1617:20:45", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, - "id": 6932, + "id": 9680, "isConstant": false, "isLValue": false, "isPure": false, @@ -2063,32 +2063,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1617:38:31", + "src": "1617:38:45", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6933, + "id": 9681, "nodeType": "EmitStatement", - "src": "1612:43:31" + "src": "1612:43:45" }, { "expression": { "argumentTypes": null, - "id": 6936, + "id": 9684, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 6934, + "id": 9682, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "1661:5:31", + "referencedDeclaration": 9606, + "src": "1661:5:45", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2098,31 +2098,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 6935, + "id": 9683, "name": "_newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6918, - "src": "1669:9:31", + "referencedDeclaration": 9666, + "src": "1669:9:45", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1661:17:31", + "src": "1661:17:45", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 6937, + "id": 9685, "nodeType": "ExpressionStatement", - "src": "1661:17:31" + "src": "1661:17:45" } ] }, "documentation": "@dev Transfers control of the contract to a newOwner.\n@param _newOwner The address to transfer ownership to.", - "id": 6939, + "id": 9687, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -2130,16 +2130,16 @@ "name": "_transferOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 6919, + "id": 9667, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6918, + "id": 9666, "name": "_newOwner", "nodeType": "VariableDeclaration", - "scope": 6939, - "src": "1540:17:31", + "scope": 9687, + "src": "1540:17:45", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2147,10 +2147,10 @@ "typeString": "address" }, "typeName": { - "id": 6917, + "id": 9665, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1540:7:31", + "src": "1540:7:45", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2160,27 +2160,27 @@ "visibility": "internal" } ], - "src": "1539:19:31" + "src": "1539:19:45" }, "payable": false, "returnParameters": { - "id": 6920, + "id": 9668, "nodeType": "ParameterList", "parameters": [], - "src": "1568:0:31" + "src": "1568:0:45" }, - "scope": 6940, - "src": "1512:171:31", + "scope": 9688, + "src": "1512:171:45", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" } ], - "scope": 6941, - "src": "217:1468:31" + "scope": 9689, + "src": "217:1468:45" } ], - "src": "0:1686:31" + "src": "0:1686:45" }, "compiler": { "name": "solc", @@ -2188,5 +2188,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-02T11:52:56.788Z" + "updatedAt": "2018-10-22T07:56:01.696Z" } \ No newline at end of file diff --git a/build/contracts/PaymentMethods.json b/build/contracts/PaymentMethods.json new file mode 100644 index 00000000..bc4683dd --- /dev/null +++ b/build/contracts/PaymentMethods.json @@ -0,0 +1,2835 @@ +{ + "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", + "sourcePath": "/home/circleci/code/contracts/libs/PaymentMethods.sol", + "ast": { + "absolutePath": "/home/circleci/code/contracts/libs/PaymentMethods.sol", + "exportedSymbols": { + "PaymentMethods": [ + 4958 + ] + }, + "id": 4959, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4843, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:12" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 4958, + "linearizedBaseContracts": [ + 4958 + ], + "name": "PaymentMethods", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "PaymentMethods.Methods", + "id": 4851, + "members": [ + { + "constant": false, + "id": 4846, + "name": "_list", + "nodeType": "VariableDeclaration", + "scope": 4851, + "src": "80:15:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 4844, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "80:7:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 4845, + "length": null, + "nodeType": "ArrayTypeName", + "src": "80:9:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4850, + "name": "_allowed", + "nodeType": "VariableDeclaration", + "scope": 4851, + "src": "105:34:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" + }, + "typeName": { + "id": 4849, + "keyType": { + "id": 4847, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "114:7:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "105:25:12", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" + }, + "valueType": { + "id": 4848, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "125:4:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Methods", + "nodeType": "StructDefinition", + "scope": 4958, + "src": "55:91:12", + "visibility": "public" + }, + { + "body": { + "id": 4929, + "nodeType": "Block", + "src": "220:402:12", + "statements": [ + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 4860, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 4930, + "src": "230:6:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4859, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "230:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4861, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "230:6:12" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4866, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4862, + "name": "_methods", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4853, + "src": "251:8:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Methods_$4851_storage_ptr", + "typeString": "struct PaymentMethods.Methods storage pointer" + } + }, + "id": 4863, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_list", + "nodeType": "MemberAccess", + "referencedDeclaration": 4846, + "src": "251:14:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 4864, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "251:21:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4865, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "276:1:12", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "251:26:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 4893, + "nodeType": "IfStatement", + "src": "247:177:12", + "trueBody": { + "id": 4892, + "nodeType": "Block", + "src": "279:145:12", + "statements": [ + { + "body": { + "id": 4890, + "nodeType": "Block", + "src": "337:77:12", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 4888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4879, + "name": "_methods", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4853, + "src": "355:8:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Methods_$4851_storage_ptr", + "typeString": "struct PaymentMethods.Methods storage pointer" + } + }, + "id": 4885, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_allowed", + "nodeType": "MemberAccess", + "referencedDeclaration": 4850, + "src": "355:17:12", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" + } + }, + "id": 4886, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4881, + "name": "_methods", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4853, + "src": "373:8:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Methods_$4851_storage_ptr", + "typeString": "struct PaymentMethods.Methods storage pointer" + } + }, + "id": 4882, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_list", + "nodeType": "MemberAccess", + "referencedDeclaration": 4846, + "src": "373:14:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 4884, + "indexExpression": { + "argumentTypes": null, + "id": 4883, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4860, + "src": "388:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "373:17:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "355:36:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 4887, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "394:5:12", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "355:44:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4889, + "nodeType": "ExpressionStatement", + "src": "355:44:12" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4875, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4871, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4860, + "src": "305:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4872, + "name": "_methods", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4853, + "src": "309:8:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Methods_$4851_storage_ptr", + "typeString": "struct PaymentMethods.Methods storage pointer" + } + }, + "id": 4873, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_list", + "nodeType": "MemberAccess", + "referencedDeclaration": 4846, + "src": "309:14:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 4874, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "309:21:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "305:25:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4891, + "initializationExpression": { + "expression": { + "argumentTypes": null, + "id": 4869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4867, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4860, + "src": "298:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 4868, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "302:1:12", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "298:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4870, + "nodeType": "ExpressionStatement", + "src": "298:5:12" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 4877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "332:3:12", + "subExpression": { + "argumentTypes": null, + "id": 4876, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4860, + "src": "332:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4878, + "nodeType": "ExpressionStatement", + "src": "332:3:12" + }, + "nodeType": "ForStatement", + "src": "293:121:12" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 4898, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4894, + "name": "_methods", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4853, + "src": "434:8:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Methods_$4851_storage_ptr", + "typeString": "struct PaymentMethods.Methods storage pointer" + } + }, + "id": 4896, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "_list", + "nodeType": "MemberAccess", + "referencedDeclaration": 4846, + "src": "434:14:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4897, + "name": "_list", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4856, + "src": "451:5:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[] memory" + } + }, + "src": "434:22:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 4899, + "nodeType": "ExpressionStatement", + "src": "434:22:12" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4903, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4900, + "name": "_list", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4856, + "src": "471:5:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[] memory" + } + }, + "id": 4901, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "471:12:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4902, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "487:1:12", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "471:17:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 4928, + "nodeType": "IfStatement", + "src": "467:149:12", + "trueBody": { + "id": 4927, + "nodeType": "Block", + "src": "490:126:12", + "statements": [ + { + "body": { + "id": 4925, + "nodeType": "Block", + "src": "539:67:12", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 4923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4915, + "name": "_methods", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4853, + "src": "557:8:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Methods_$4851_storage_ptr", + "typeString": "struct PaymentMethods.Methods storage pointer" + } + }, + "id": 4920, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_allowed", + "nodeType": "MemberAccess", + "referencedDeclaration": 4850, + "src": "557:17:12", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" + } + }, + "id": 4921, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4917, + "name": "_list", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4856, + "src": "575:5:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[] memory" + } + }, + "id": 4919, + "indexExpression": { + "argumentTypes": null, + "id": 4918, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4860, + "src": "581:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "575:8:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "557:27:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 4922, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "587:4:12", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "557:34:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4924, + "nodeType": "ExpressionStatement", + "src": "557:34:12" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4911, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4908, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4860, + "src": "516:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4909, + "name": "_list", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4856, + "src": "520:5:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[] memory" + } + }, + "id": 4910, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "520:12:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "516:16:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4926, + "initializationExpression": { + "expression": { + "argumentTypes": null, + "id": 4906, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4904, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4860, + "src": "509:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 4905, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "513:1:12", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "509:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4907, + "nodeType": "ExpressionStatement", + "src": "509:5:12" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 4913, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "534:3:12", + "subExpression": { + "argumentTypes": null, + "id": 4912, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4860, + "src": "534:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4914, + "nodeType": "ExpressionStatement", + "src": "534:3:12" + }, + "nodeType": "ForStatement", + "src": "504:102:12" + } + ] + } + } + ] + }, + "documentation": null, + "id": 4930, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "update", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4857, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4853, + "name": "_methods", + "nodeType": "VariableDeclaration", + "scope": 4930, + "src": "168:24:12", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Methods_$4851_storage_ptr", + "typeString": "struct PaymentMethods.Methods" + }, + "typeName": { + "contractScope": null, + "id": 4852, + "name": "Methods", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4851, + "src": "168:7:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Methods_$4851_storage_ptr", + "typeString": "struct PaymentMethods.Methods" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4856, + "name": "_list", + "nodeType": "VariableDeclaration", + "scope": 4930, + "src": "194:15:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 4854, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "194:7:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 4855, + "length": null, + "nodeType": "ArrayTypeName", + "src": "194:9:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "167:43:12" + }, + "payable": false, + "returnParameters": { + "id": 4858, + "nodeType": "ParameterList", + "parameters": [], + "src": "220:0:12" + }, + "scope": 4958, + "src": "152:470:12", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 4944, + "nodeType": "Block", + "src": "718:50:12", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4939, + "name": "_methods", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4932, + "src": "735:8:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Methods_$4851_storage_ptr", + "typeString": "struct PaymentMethods.Methods storage pointer" + } + }, + "id": 4940, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_allowed", + "nodeType": "MemberAccess", + "referencedDeclaration": 4850, + "src": "735:17:12", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" + } + }, + "id": 4942, + "indexExpression": { + "argumentTypes": null, + "id": 4941, + "name": "_method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4934, + "src": "753:7:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "735:26:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 4938, + "id": 4943, + "nodeType": "Return", + "src": "728:33:12" + } + ] + }, + "documentation": null, + "id": 4945, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isAllowed", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4935, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4932, + "name": "_methods", + "nodeType": "VariableDeclaration", + "scope": 4945, + "src": "647:24:12", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Methods_$4851_storage_ptr", + "typeString": "struct PaymentMethods.Methods" + }, + "typeName": { + "contractScope": null, + "id": 4931, + "name": "Methods", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4851, + "src": "647:7:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Methods_$4851_storage_ptr", + "typeString": "struct PaymentMethods.Methods" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4934, + "name": "_method", + "nodeType": "VariableDeclaration", + "scope": 4945, + "src": "673:15:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4933, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "673:7:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "646:43:12" + }, + "payable": false, + "returnParameters": { + "id": 4938, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4937, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4945, + "src": "712:4:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4936, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "712:4:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "711:6:12" + }, + "scope": 4958, + "src": "628:140:12", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 4956, + "nodeType": "Block", + "src": "847:38:12", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4953, + "name": "_methods", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4947, + "src": "864:8:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Methods_$4851_storage_ptr", + "typeString": "struct PaymentMethods.Methods storage pointer" + } + }, + "id": 4954, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_list", + "nodeType": "MemberAccess", + "referencedDeclaration": 4846, + "src": "864:14:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "functionReturnParameters": 4952, + "id": 4955, + "nodeType": "Return", + "src": "857:21:12" + } + ] + }, + "documentation": null, + "id": 4957, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "list", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4948, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4947, + "name": "_methods", + "nodeType": "VariableDeclaration", + "scope": 4957, + "src": "788:24:12", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Methods_$4851_storage_ptr", + "typeString": "struct PaymentMethods.Methods" + }, + "typeName": { + "contractScope": null, + "id": 4946, + "name": "Methods", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4851, + "src": "788:7:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Methods_$4851_storage_ptr", + "typeString": "struct PaymentMethods.Methods" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "787:26:12" + }, + "payable": false, + "returnParameters": { + "id": 4952, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4951, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4957, + "src": "836:9:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 4949, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "836:7:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 4950, + "length": null, + "nodeType": "ArrayTypeName", + "src": "836:9:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "835:11:12" + }, + "scope": 4958, + "src": "774:111:12", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 4959, + "src": "26:861:12" + } + ], + "src": "0:888:12" + }, + "legacyAST": { + "absolutePath": "/home/circleci/code/contracts/libs/PaymentMethods.sol", + "exportedSymbols": { + "PaymentMethods": [ + 4958 + ] + }, + "id": 4959, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4843, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:12" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 4958, + "linearizedBaseContracts": [ + 4958 + ], + "name": "PaymentMethods", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "PaymentMethods.Methods", + "id": 4851, + "members": [ + { + "constant": false, + "id": 4846, + "name": "_list", + "nodeType": "VariableDeclaration", + "scope": 4851, + "src": "80:15:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 4844, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "80:7:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 4845, + "length": null, + "nodeType": "ArrayTypeName", + "src": "80:9:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4850, + "name": "_allowed", + "nodeType": "VariableDeclaration", + "scope": 4851, + "src": "105:34:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" + }, + "typeName": { + "id": 4849, + "keyType": { + "id": 4847, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "114:7:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "105:25:12", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" + }, + "valueType": { + "id": 4848, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "125:4:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Methods", + "nodeType": "StructDefinition", + "scope": 4958, + "src": "55:91:12", + "visibility": "public" + }, + { + "body": { + "id": 4929, + "nodeType": "Block", + "src": "220:402:12", + "statements": [ + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 4860, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 4930, + "src": "230:6:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4859, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "230:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4861, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "230:6:12" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4866, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4862, + "name": "_methods", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4853, + "src": "251:8:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Methods_$4851_storage_ptr", + "typeString": "struct PaymentMethods.Methods storage pointer" + } + }, + "id": 4863, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_list", + "nodeType": "MemberAccess", + "referencedDeclaration": 4846, + "src": "251:14:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 4864, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "251:21:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4865, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "276:1:12", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "251:26:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 4893, + "nodeType": "IfStatement", + "src": "247:177:12", + "trueBody": { + "id": 4892, + "nodeType": "Block", + "src": "279:145:12", + "statements": [ + { + "body": { + "id": 4890, + "nodeType": "Block", + "src": "337:77:12", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 4888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4879, + "name": "_methods", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4853, + "src": "355:8:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Methods_$4851_storage_ptr", + "typeString": "struct PaymentMethods.Methods storage pointer" + } + }, + "id": 4885, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_allowed", + "nodeType": "MemberAccess", + "referencedDeclaration": 4850, + "src": "355:17:12", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" + } + }, + "id": 4886, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4881, + "name": "_methods", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4853, + "src": "373:8:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Methods_$4851_storage_ptr", + "typeString": "struct PaymentMethods.Methods storage pointer" + } + }, + "id": 4882, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_list", + "nodeType": "MemberAccess", + "referencedDeclaration": 4846, + "src": "373:14:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 4884, + "indexExpression": { + "argumentTypes": null, + "id": 4883, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4860, + "src": "388:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "373:17:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "355:36:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 4887, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "394:5:12", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "355:44:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4889, + "nodeType": "ExpressionStatement", + "src": "355:44:12" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4875, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4871, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4860, + "src": "305:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4872, + "name": "_methods", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4853, + "src": "309:8:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Methods_$4851_storage_ptr", + "typeString": "struct PaymentMethods.Methods storage pointer" + } + }, + "id": 4873, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_list", + "nodeType": "MemberAccess", + "referencedDeclaration": 4846, + "src": "309:14:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 4874, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "309:21:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "305:25:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4891, + "initializationExpression": { + "expression": { + "argumentTypes": null, + "id": 4869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4867, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4860, + "src": "298:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 4868, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "302:1:12", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "298:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4870, + "nodeType": "ExpressionStatement", + "src": "298:5:12" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 4877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "332:3:12", + "subExpression": { + "argumentTypes": null, + "id": 4876, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4860, + "src": "332:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4878, + "nodeType": "ExpressionStatement", + "src": "332:3:12" + }, + "nodeType": "ForStatement", + "src": "293:121:12" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 4898, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4894, + "name": "_methods", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4853, + "src": "434:8:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Methods_$4851_storage_ptr", + "typeString": "struct PaymentMethods.Methods storage pointer" + } + }, + "id": 4896, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "_list", + "nodeType": "MemberAccess", + "referencedDeclaration": 4846, + "src": "434:14:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4897, + "name": "_list", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4856, + "src": "451:5:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[] memory" + } + }, + "src": "434:22:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 4899, + "nodeType": "ExpressionStatement", + "src": "434:22:12" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4903, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4900, + "name": "_list", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4856, + "src": "471:5:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[] memory" + } + }, + "id": 4901, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "471:12:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4902, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "487:1:12", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "471:17:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 4928, + "nodeType": "IfStatement", + "src": "467:149:12", + "trueBody": { + "id": 4927, + "nodeType": "Block", + "src": "490:126:12", + "statements": [ + { + "body": { + "id": 4925, + "nodeType": "Block", + "src": "539:67:12", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 4923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4915, + "name": "_methods", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4853, + "src": "557:8:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Methods_$4851_storage_ptr", + "typeString": "struct PaymentMethods.Methods storage pointer" + } + }, + "id": 4920, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_allowed", + "nodeType": "MemberAccess", + "referencedDeclaration": 4850, + "src": "557:17:12", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" + } + }, + "id": 4921, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4917, + "name": "_list", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4856, + "src": "575:5:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[] memory" + } + }, + "id": 4919, + "indexExpression": { + "argumentTypes": null, + "id": 4918, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4860, + "src": "581:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "575:8:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "557:27:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 4922, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "587:4:12", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "557:34:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4924, + "nodeType": "ExpressionStatement", + "src": "557:34:12" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4911, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4908, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4860, + "src": "516:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4909, + "name": "_list", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4856, + "src": "520:5:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[] memory" + } + }, + "id": 4910, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "520:12:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "516:16:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4926, + "initializationExpression": { + "expression": { + "argumentTypes": null, + "id": 4906, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4904, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4860, + "src": "509:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 4905, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "513:1:12", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "509:5:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4907, + "nodeType": "ExpressionStatement", + "src": "509:5:12" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 4913, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "534:3:12", + "subExpression": { + "argumentTypes": null, + "id": 4912, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4860, + "src": "534:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4914, + "nodeType": "ExpressionStatement", + "src": "534:3:12" + }, + "nodeType": "ForStatement", + "src": "504:102:12" + } + ] + } + } + ] + }, + "documentation": null, + "id": 4930, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "update", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4857, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4853, + "name": "_methods", + "nodeType": "VariableDeclaration", + "scope": 4930, + "src": "168:24:12", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Methods_$4851_storage_ptr", + "typeString": "struct PaymentMethods.Methods" + }, + "typeName": { + "contractScope": null, + "id": 4852, + "name": "Methods", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4851, + "src": "168:7:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Methods_$4851_storage_ptr", + "typeString": "struct PaymentMethods.Methods" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4856, + "name": "_list", + "nodeType": "VariableDeclaration", + "scope": 4930, + "src": "194:15:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 4854, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "194:7:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 4855, + "length": null, + "nodeType": "ArrayTypeName", + "src": "194:9:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "167:43:12" + }, + "payable": false, + "returnParameters": { + "id": 4858, + "nodeType": "ParameterList", + "parameters": [], + "src": "220:0:12" + }, + "scope": 4958, + "src": "152:470:12", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 4944, + "nodeType": "Block", + "src": "718:50:12", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4939, + "name": "_methods", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4932, + "src": "735:8:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Methods_$4851_storage_ptr", + "typeString": "struct PaymentMethods.Methods storage pointer" + } + }, + "id": 4940, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_allowed", + "nodeType": "MemberAccess", + "referencedDeclaration": 4850, + "src": "735:17:12", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" + } + }, + "id": 4942, + "indexExpression": { + "argumentTypes": null, + "id": 4941, + "name": "_method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4934, + "src": "753:7:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "735:26:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 4938, + "id": 4943, + "nodeType": "Return", + "src": "728:33:12" + } + ] + }, + "documentation": null, + "id": 4945, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isAllowed", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4935, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4932, + "name": "_methods", + "nodeType": "VariableDeclaration", + "scope": 4945, + "src": "647:24:12", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Methods_$4851_storage_ptr", + "typeString": "struct PaymentMethods.Methods" + }, + "typeName": { + "contractScope": null, + "id": 4931, + "name": "Methods", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4851, + "src": "647:7:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Methods_$4851_storage_ptr", + "typeString": "struct PaymentMethods.Methods" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4934, + "name": "_method", + "nodeType": "VariableDeclaration", + "scope": 4945, + "src": "673:15:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4933, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "673:7:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "646:43:12" + }, + "payable": false, + "returnParameters": { + "id": 4938, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4937, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4945, + "src": "712:4:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4936, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "712:4:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "711:6:12" + }, + "scope": 4958, + "src": "628:140:12", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 4956, + "nodeType": "Block", + "src": "847:38:12", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4953, + "name": "_methods", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4947, + "src": "864:8:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Methods_$4851_storage_ptr", + "typeString": "struct PaymentMethods.Methods storage pointer" + } + }, + "id": 4954, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_list", + "nodeType": "MemberAccess", + "referencedDeclaration": 4846, + "src": "864:14:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "functionReturnParameters": 4952, + "id": 4955, + "nodeType": "Return", + "src": "857:21:12" + } + ] + }, + "documentation": null, + "id": 4957, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "list", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4948, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4947, + "name": "_methods", + "nodeType": "VariableDeclaration", + "scope": 4957, + "src": "788:24:12", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Methods_$4851_storage_ptr", + "typeString": "struct PaymentMethods.Methods" + }, + "typeName": { + "contractScope": null, + "id": 4946, + "name": "Methods", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4851, + "src": "788:7:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Methods_$4851_storage_ptr", + "typeString": "struct PaymentMethods.Methods" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "787:26:12" + }, + "payable": false, + "returnParameters": { + "id": 4952, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4951, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4957, + "src": "836:9:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 4949, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "836:7:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 4950, + "length": null, + "nodeType": "ArrayTypeName", + "src": "836:9:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "835:11:12" + }, + "scope": 4958, + "src": "774:111:12", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 4959, + "src": "26:861:12" + } + ], + "src": "0:888:12" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.1", + "updatedAt": "2018-10-22T07:56:01.508Z" +} \ No newline at end of file diff --git a/build/contracts/Percent.json b/build/contracts/Percent.json index 58304fd4..d4cb6206 100644 --- a/build/contracts/Percent.json +++ b/build/contracts/Percent.json @@ -58,24 +58,24 @@ "type": "function" } ], - "bytecode": "0x60f861002f600b82828239805160001a6073146000811461001f57610021565bfe5b5030600052607381538281f300730000000000000000000000000000000000000000301460806040526004361060735763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631a12cd478114607857806337a7f2b7146090578063bc9c0891146096578063d49d518114609c575b600080fd5b607e60a2565b60408051918252519081900360200190f35b607e60b2565b607e60b7565b607e60bc565b600060aa60b7565b600201905090565b600090565b600290565b600060c460a2565b600a0a9050905600a165627a7a723058201771426dc95c251ffe8cbfad8ddf701c5a1e168718bf1670672e6b24da7879e90029", - "deployedBytecode": "0x730000000000000000000000000000000000000000301460806040526004361060735763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631a12cd478114607857806337a7f2b7146090578063bc9c0891146096578063d49d518114609c575b600080fd5b607e60a2565b60408051918252519081900360200190f35b607e60b2565b607e60b7565b607e60bc565b600060aa60b7565b600201905090565b600090565b600290565b600060c460a2565b600a0a9050905600a165627a7a723058201771426dc95c251ffe8cbfad8ddf701c5a1e168718bf1670672e6b24da7879e90029", - "sourceMap": "87:860:14:-;;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:860:14:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;203:67;;;;;;;;;;;;;;;;;;;;275:55;;;;139:59;;;;335:65;;;;203:67;239:4;258:9;:7;:9::i;:::-;254:1;:13;247:20;;203:67;:::o;275:55::-;311:4;275:55;:::o;139:59::-;194:1;139:59;:::o;335:65::-;371:4;392:5;:3;:5::i;:::-;386:2;:11;379:18;;335:65;:::o", - "source": "pragma solidity ^0.4.24;\n\nimport \"openzeppelin-solidity/contracts/math/SafeMath.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 require(isPercent(_b));\n\n return _a.mul(_b).div(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": "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", "sourcePath": "/home/circleci/code/contracts/libs/Percent.sol", "ast": { "absolutePath": "/home/circleci/code/contracts/libs/Percent.sol", "exportedSymbols": { "Percent": [ - 4631 + 5103 ] }, - "id": 4632, + "id": 5104, "nodeType": "SourceUnit", "nodes": [ { - "id": 4501, + "id": 4960, "literals": [ "solidity", "^", @@ -83,16 +83,27 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:14" + "src": "0:24:13" }, { "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 4502, + "id": 4961, "nodeType": "ImportDirective", - "scope": 4632, - "sourceUnit": 6855, - "src": "26:59:14", + "scope": 5104, + "sourceUnit": 9603, + "src": "26:59:13", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/libs/Utils.sol", + "file": "./Utils.sol", + "id": 4962, + "nodeType": "ImportDirective", + "scope": 5104, + "sourceUnit": 6061, + "src": "86:21:13", "symbolAliases": [], "unitAlias": "" }, @@ -102,34 +113,34 @@ "contractKind": "library", "documentation": null, "fullyImplemented": true, - "id": 4631, + "id": 5103, "linearizedBaseContracts": [ - 4631 + 5103 ], "name": "Percent", "nodeType": "ContractDefinition", "nodes": [ { - "id": 4505, + "id": 4965, "libraryName": { "contractScope": null, - "id": 4503, + "id": 4963, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6854, - "src": "115:8:14", + "referencedDeclaration": 9602, + "src": "137:8:13", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$6854", + "typeIdentifier": "t_contract$_SafeMath_$9602", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "109:24:14", + "src": "131:24:13", "typeName": { - "id": 4504, + "id": 4964, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "128:4:14", + "src": "150:4:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -138,22 +149,22 @@ }, { "body": { - "id": 4512, + "id": 4972, "nodeType": "Block", - "src": "185:13:14", + "src": "207:13:13", "statements": [ { "expression": { "argumentTypes": null, "hexValue": "32", - "id": 4510, + "id": 4970, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "194:1:14", + "src": "216:1:13", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -161,15 +172,15 @@ }, "value": "2" }, - "functionReturnParameters": 4509, - "id": 4511, + "functionReturnParameters": 4969, + "id": 4971, "nodeType": "Return", - "src": "187:8:14" + "src": "209:8:13" } ] }, "documentation": null, - "id": 4513, + "id": 4973, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -177,23 +188,23 @@ "name": "ADD_EXP", "nodeType": "FunctionDefinition", "parameters": { - "id": 4506, + "id": 4966, "nodeType": "ParameterList", "parameters": [], - "src": "155:2:14" + "src": "177:2:13" }, "payable": false, "returnParameters": { - "id": 4509, + "id": 4969, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4508, + "id": 4968, "name": "", "nodeType": "VariableDeclaration", - "scope": 4513, - "src": "179:4:14", + "scope": 4973, + "src": "201:4:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -201,10 +212,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4507, + "id": 4967, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "179:4:14", + "src": "201:4:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -214,19 +225,19 @@ "visibility": "internal" } ], - "src": "178:6:14" + "src": "200:6:13" }, - "scope": 4631, - "src": "139:59:14", + "scope": 5103, + "src": "161:59:13", "stateMutability": "pure", "superFunction": null, "visibility": "public" }, { "body": { - "id": 4523, + "id": 4983, "nodeType": "Block", - "src": "245:25:14", + "src": "267:25:13", "statements": [ { "expression": { @@ -235,7 +246,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4521, + "id": 4981, "isConstant": false, "isLValue": false, "isPure": false, @@ -243,14 +254,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "32", - "id": 4518, + "id": 4978, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "254:1:14", + "src": "276:1:13", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -265,18 +276,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 4519, + "id": 4979, "name": "ADD_EXP", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4513, - "src": "258:7:14", + "referencedDeclaration": 4973, + "src": "280:7:13", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint256_$", "typeString": "function () pure returns (uint256)" } }, - "id": 4520, + "id": 4980, "isConstant": false, "isLValue": false, "isPure": false, @@ -284,27 +295,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "258:9:14", + "src": "280:9:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "254:13:14", + "src": "276:13:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 4517, - "id": 4522, + "functionReturnParameters": 4977, + "id": 4982, "nodeType": "Return", - "src": "247:20:14" + "src": "269:20:13" } ] }, "documentation": null, - "id": 4524, + "id": 4984, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -312,23 +323,23 @@ "name": "EXP", "nodeType": "FunctionDefinition", "parameters": { - "id": 4514, + "id": 4974, "nodeType": "ParameterList", "parameters": [], - "src": "215:2:14" + "src": "237:2:13" }, "payable": false, "returnParameters": { - "id": 4517, + "id": 4977, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4516, + "id": 4976, "name": "", "nodeType": "VariableDeclaration", - "scope": 4524, - "src": "239:4:14", + "scope": 4984, + "src": "261:4:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -336,10 +347,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4515, + "id": 4975, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "239:4:14", + "src": "261:4:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -349,32 +360,32 @@ "visibility": "internal" } ], - "src": "238:6:14" + "src": "260:6:13" }, - "scope": 4631, - "src": "203:67:14", + "scope": 5103, + "src": "225:67:13", "stateMutability": "pure", "superFunction": null, "visibility": "public" }, { "body": { - "id": 4531, + "id": 4991, "nodeType": "Block", - "src": "317:13:14", + "src": "339:13:13", "statements": [ { "expression": { "argumentTypes": null, "hexValue": "30", - "id": 4529, + "id": 4989, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "326:1:14", + "src": "348:1:13", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -382,15 +393,15 @@ }, "value": "0" }, - "functionReturnParameters": 4528, - "id": 4530, + "functionReturnParameters": 4988, + "id": 4990, "nodeType": "Return", - "src": "319:8:14" + "src": "341:8:13" } ] }, "documentation": null, - "id": 4532, + "id": 4992, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -398,23 +409,23 @@ "name": "MIN", "nodeType": "FunctionDefinition", "parameters": { - "id": 4525, + "id": 4985, "nodeType": "ParameterList", "parameters": [], - "src": "287:2:14" + "src": "309:2:13" }, "payable": false, "returnParameters": { - "id": 4528, + "id": 4988, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4527, + "id": 4987, "name": "", "nodeType": "VariableDeclaration", - "scope": 4532, - "src": "311:4:14", + "scope": 4992, + "src": "333:4:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -422,10 +433,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4526, + "id": 4986, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "311:4:14", + "src": "333:4:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -435,19 +446,19 @@ "visibility": "internal" } ], - "src": "310:6:14" + "src": "332:6:13" }, - "scope": 4631, - "src": "275:55:14", + "scope": 5103, + "src": "297:55:13", "stateMutability": "pure", "superFunction": null, "visibility": "public" }, { "body": { - "id": 4542, + "id": 5002, "nodeType": "Block", - "src": "377:23:14", + "src": "399:23:13", "statements": [ { "expression": { @@ -456,7 +467,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4540, + "id": 5000, "isConstant": false, "isLValue": false, "isPure": false, @@ -464,14 +475,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3130", - "id": 4537, + "id": 4997, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "386:2:14", + "src": "408:2:13", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", @@ -486,18 +497,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 4538, + "id": 4998, "name": "EXP", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4524, - "src": "392:3:14", + "referencedDeclaration": 4984, + "src": "414:3:13", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint256_$", "typeString": "function () pure returns (uint256)" } }, - "id": 4539, + "id": 4999, "isConstant": false, "isLValue": false, "isPure": false, @@ -505,27 +516,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "392:5:14", + "src": "414:5:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "386:11:14", + "src": "408:11:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 4536, - "id": 4541, + "functionReturnParameters": 4996, + "id": 5001, "nodeType": "Return", - "src": "379:18:14" + "src": "401:18:13" } ] }, "documentation": null, - "id": 4543, + "id": 5003, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -533,23 +544,23 @@ "name": "MAX", "nodeType": "FunctionDefinition", "parameters": { - "id": 4533, + "id": 4993, "nodeType": "ParameterList", "parameters": [], - "src": "347:2:14" + "src": "369:2:13" }, "payable": false, "returnParameters": { - "id": 4536, + "id": 4996, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4535, + "id": 4995, "name": "", "nodeType": "VariableDeclaration", - "scope": 4543, - "src": "371:4:14", + "scope": 5003, + "src": "393:4:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -557,10 +568,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4534, + "id": 4994, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "371:4:14", + "src": "393:4:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -570,113 +581,20 @@ "visibility": "internal" } ], - "src": "370:6:14" + "src": "392:6:13" }, - "scope": 4631, - "src": "335:65:14", + "scope": 5103, + "src": "357:65:13", "stateMutability": "pure", "superFunction": null, "visibility": "public" }, { "body": { - "id": 4567, + "id": 5021, "nodeType": "Block", - "src": "470:78:14", + "src": "492:45:13", "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4554, - "name": "_b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4547, - "src": "498:2:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 4553, - "name": "isPercent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4586, - "src": "488:9:14", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) pure returns (bool)" - } - }, - "id": 4555, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "488:13:14", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 4552, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 7297, - 7298 - ], - "referencedDeclaration": 7297, - "src": "480:7:14", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 4556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "480:22:14", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4557, - "nodeType": "ExpressionStatement", - "src": "480:22:14" - }, { "expression": { "argumentTypes": null, @@ -686,18 +604,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 4563, + "id": 5017, "name": "MAX", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4543, - "src": "535:3:14", + "referencedDeclaration": 5003, + "src": "524:3:13", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint256_$", "typeString": "function () pure returns (uint256)" } }, - "id": 4564, + "id": 5018, "isConstant": false, "isLValue": false, "isPure": false, @@ -705,7 +623,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "535:5:14", + "src": "524:5:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -724,12 +642,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4560, + "id": 5014, "name": "_b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4547, - "src": "527:2:14", + "referencedDeclaration": 5007, + "src": "516:2:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -745,32 +663,32 @@ ], "expression": { "argumentTypes": null, - "id": 4558, + "id": 5012, "name": "_a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4545, - "src": "520:2:14", + "referencedDeclaration": 5005, + "src": "509:2:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 4559, + "id": 5013, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", - "referencedDeclaration": 6795, - "src": "520:6:14", + "referencedDeclaration": 9543, + "src": "509:6:13", "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": 4561, + "id": 5015, "isConstant": false, "isLValue": false, "isPure": false, @@ -778,27 +696,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "520:10:14", + "src": "509:10:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 4562, + "id": 5016, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "div", "nodeType": "MemberAccess", - "referencedDeclaration": 6809, - "src": "520:14:14", + "referencedDeclaration": 9557, + "src": "509:14:13", "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": 4565, + "id": 5019, "isConstant": false, "isLValue": false, "isPure": false, @@ -806,21 +724,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "520:21:14", + "src": "509:21:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 4551, - "id": 4566, + "functionReturnParameters": 5011, + "id": 5020, "nodeType": "Return", - "src": "513:28:14" + "src": "502:28:13" } ] }, "documentation": null, - "id": 4568, + "id": 5022, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -828,16 +746,16 @@ "name": "percent", "nodeType": "FunctionDefinition", "parameters": { - "id": 4548, + "id": 5008, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4545, + "id": 5005, "name": "_a", "nodeType": "VariableDeclaration", - "scope": 4568, - "src": "423:7:14", + "scope": 5022, + "src": "445:7:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -845,10 +763,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4544, + "id": 5004, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "423:4:14", + "src": "445:4:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -859,11 +777,11 @@ }, { "constant": false, - "id": 4547, + "id": 5007, "name": "_b", "nodeType": "VariableDeclaration", - "scope": 4568, - "src": "432:7:14", + "scope": 5022, + "src": "454:7:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -871,10 +789,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4546, + "id": 5006, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "432:4:14", + "src": "454:4:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -884,20 +802,20 @@ "visibility": "internal" } ], - "src": "422:18:14" + "src": "444:18:13" }, "payable": false, "returnParameters": { - "id": 4551, + "id": 5011, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4550, + "id": 5010, "name": "", "nodeType": "VariableDeclaration", - "scope": 4568, - "src": "464:4:14", + "scope": 5022, + "src": "486:4:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -905,10 +823,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4549, + "id": 5009, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "464:4:14", + "src": "486:4:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -918,139 +836,67 @@ "visibility": "internal" } ], - "src": "463:6:14" + "src": "485:6:13" }, - "scope": 4631, - "src": "406:142:14", + "scope": 5103, + "src": "428:109:13", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 4585, + "id": 5039, "nodeType": "Block", - "src": "611:50:14", + "src": "611:55:13", "statements": [ { "expression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 4583, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4578, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "arguments": [ + { "argumentTypes": null, - "id": 4575, + "id": 5033, "name": "_a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4570, - "src": "628:2:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 4576, - "name": "MIN", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4532, - "src": "634:3:14", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint256_$", - "typeString": "function () pure returns (uint256)" - } - }, - "id": 4577, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "634:5:14", + "referencedDeclaration": 5024, + "src": "645:2:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "628:11:14", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4582, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + { "argumentTypes": null, - "id": 4579, - "name": "_a", + "id": 5034, + "name": "_b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4570, - "src": "643:2:14", + "referencedDeclaration": 5026, + "src": "649:2:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { + { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 4580, + "id": 5035, "name": "MAX", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4543, - "src": "649:3:14", + "referencedDeclaration": 5003, + "src": "653:3:13", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint256_$", "typeString": "function () pure returns (uint256)" } }, - "id": 4581, + "id": 5036, "isConstant": false, "isLValue": false, "isPure": false, @@ -1058,50 +904,121 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "649:5:14", + "src": "653:5:13", "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": 5031, + "name": "Utils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6060, + "src": "628:5:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Utils_$6060_$", + "typeString": "type(library Utils)" + } }, - "src": "643:11:14", + "id": 5032, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeMulDiv", + "nodeType": "MemberAccess", + "referencedDeclaration": 6059, + "src": "628:16:13", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" } }, - "src": "628:26:14", + "id": 5037, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "628:31:13", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "functionReturnParameters": 4574, - "id": 4584, + "functionReturnParameters": 5030, + "id": 5038, "nodeType": "Return", - "src": "621:33:14" + "src": "621:38:13" } ] }, "documentation": null, - "id": 4586, + "id": 5040, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], - "name": "isPercent", + "name": "safePercent", "nodeType": "FunctionDefinition", "parameters": { - "id": 4571, + "id": 5027, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4570, + "id": 5024, "name": "_a", "nodeType": "VariableDeclaration", - "scope": 4586, - "src": "573:7:14", + "scope": 5040, + "src": "564:7:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5023, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "564:4:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5026, + "name": "_b", + "nodeType": "VariableDeclaration", + "scope": 5040, + "src": "573:7:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1109,10 +1026,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4569, + "id": 5025, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "573:4:14", + "src": "573:4:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1122,77 +1039,315 @@ "visibility": "internal" } ], - "src": "572:9:14" + "src": "563:18:13" }, "payable": false, "returnParameters": { - "id": 4574, + "id": 5030, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4573, + "id": 5029, "name": "", "nodeType": "VariableDeclaration", - "scope": 4586, - "src": "605:4:14", + "scope": 5040, + "src": "605:4:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 4572, - "name": "bool", + "id": 5028, + "name": "uint", "nodeType": "ElementaryTypeName", - "src": "605:4:14", + "src": "605:4:13", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], - "src": "604:6:14" + "src": "604:6:13" }, - "scope": 4631, - "src": "554:107:14", + "scope": 5103, + "src": "543:123:13", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 4607, + "id": 5057, "nodeType": "Block", - "src": "724:76:14", + "src": "729:50:13", "statements": [ { "expression": { "argumentTypes": null, - "arguments": [ - { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, - "commonType": { + "id": 5047, + "name": "_a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5042, + "src": "746:2:13", + "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" - }, - "id": 4596, - "isConstant": false, - "isLValue": false, - "isPure": false, + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5048, + "name": "MIN", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4992, + "src": "752:3:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint256_$", + "typeString": "function () pure returns (uint256)" + } + }, + "id": 5049, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "752:5:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "746:11:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5054, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5051, + "name": "_a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5042, + "src": "761:2:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5052, + "name": "MAX", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5003, + "src": "767:3:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint256_$", + "typeString": "function () pure returns (uint256)" + } + }, + "id": 5053, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "767:5:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "761:11:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "746:26:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5046, + "id": 5056, + "nodeType": "Return", + "src": "739:33:13" + } + ] + }, + "documentation": null, + "id": 5058, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isPercent", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5043, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5042, + "name": "_a", + "nodeType": "VariableDeclaration", + "scope": 5058, + "src": "691:7:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5041, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "691:4:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "690:9:13" + }, + "payable": false, + "returnParameters": { + "id": 5046, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5045, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5058, + "src": "723:4:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5044, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "723:4:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "722:6:13" + }, + "scope": 5103, + "src": "672:107:13", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5079, + "nodeType": "Block", + "src": "842:76:13", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5068, + "isConstant": false, + "isLValue": false, + "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 4594, + "id": 5066, "name": "_a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4588, - "src": "742:2:14", + "referencedDeclaration": 5060, + "src": "860:2:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1203,14 +1358,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "313030", - "id": 4595, + "id": 5067, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "748:3:14", + "src": "866:3:13", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_100_by_1", @@ -1218,7 +1373,7 @@ }, "value": "100" }, - "src": "742:9:14", + "src": "860:9:13", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1232,21 +1387,21 @@ "typeString": "bool" } ], - "id": 4593, + "id": 5065, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "734:7:14", + "referencedDeclaration": 10045, + "src": "852:7:13", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 4597, + "id": 5069, "isConstant": false, "isLValue": false, "isPure": false, @@ -1254,15 +1409,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "734:18:14", + "src": "852:18:13", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4598, + "id": 5070, "nodeType": "ExpressionStatement", - "src": "734:18:14" + "src": "852:18:13" }, { "expression": { @@ -1274,7 +1429,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4604, + "id": 5076, "isConstant": false, "isLValue": false, "isPure": false, @@ -1282,14 +1437,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3130", - "id": 4601, + "id": 5073, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "777:2:14", + "src": "895:2:13", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", @@ -1304,18 +1459,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 4602, + "id": 5074, "name": "ADD_EXP", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4513, - "src": "783:7:14", + "referencedDeclaration": 4973, + "src": "901:7:13", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint256_$", "typeString": "function () pure returns (uint256)" } }, - "id": 4603, + "id": 5075, "isConstant": false, "isLValue": false, "isPure": false, @@ -1323,13 +1478,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "783:9:14", + "src": "901:9:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "777:15:14", + "src": "895:15:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1345,32 +1500,32 @@ ], "expression": { "argumentTypes": null, - "id": 4599, + "id": 5071, "name": "_a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4588, - "src": "770:2:14", + "referencedDeclaration": 5060, + "src": "888:2:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 4600, + "id": 5072, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", - "referencedDeclaration": 6795, - "src": "770:6:14", + "referencedDeclaration": 9543, + "src": "888:6:13", "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": 4605, + "id": 5077, "isConstant": false, "isLValue": false, "isPure": false, @@ -1378,21 +1533,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "770:23:14", + "src": "888:23:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 4592, - "id": 4606, + "functionReturnParameters": 5064, + "id": 5078, "nodeType": "Return", - "src": "763:30:14" + "src": "881:30:13" } ] }, "documentation": null, - "id": 4608, + "id": 5080, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1400,16 +1555,16 @@ "name": "toPercent", "nodeType": "FunctionDefinition", "parameters": { - "id": 4589, + "id": 5061, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4588, + "id": 5060, "name": "_a", "nodeType": "VariableDeclaration", - "scope": 4608, - "src": "686:7:14", + "scope": 5080, + "src": "804:7:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1417,10 +1572,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4587, + "id": 5059, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "686:4:14", + "src": "804:4:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1430,20 +1585,20 @@ "visibility": "internal" } ], - "src": "685:9:14" + "src": "803:9:13" }, "payable": false, "returnParameters": { - "id": 4592, + "id": 5064, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4591, + "id": 5063, "name": "", "nodeType": "VariableDeclaration", - "scope": 4608, - "src": "718:4:14", + "scope": 5080, + "src": "836:4:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1451,10 +1606,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4590, + "id": 5062, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "718:4:14", + "src": "836:4:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1464,19 +1619,19 @@ "visibility": "internal" } ], - "src": "717:6:14" + "src": "835:6:13" }, - "scope": 4631, - "src": "667:133:14", + "scope": 5103, + "src": "785:133:13", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 4629, + "id": 5101, "nodeType": "Block", - "src": "865:80:14", + "src": "983:80:13", "statements": [ { "expression": { @@ -1487,12 +1642,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4617, + "id": 5089, "name": "_a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4610, - "src": "893:2:14", + "referencedDeclaration": 5082, + "src": "1011:2:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1506,18 +1661,18 @@ "typeString": "uint256" } ], - "id": 4616, + "id": 5088, "name": "isPercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4586, - "src": "883:9:14", + "referencedDeclaration": 5058, + "src": "1001:9:13", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256) pure returns (bool)" } }, - "id": 4618, + "id": 5090, "isConstant": false, "isLValue": false, "isPure": false, @@ -1525,7 +1680,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "883:13:14", + "src": "1001:13:13", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1539,21 +1694,21 @@ "typeString": "bool" } ], - "id": 4615, + "id": 5087, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "875:7:14", + "referencedDeclaration": 10045, + "src": "993:7:13", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 4619, + "id": 5091, "isConstant": false, "isLValue": false, "isPure": false, @@ -1561,15 +1716,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "875:22:14", + "src": "993:22:13", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4620, + "id": 5092, "nodeType": "ExpressionStatement", - "src": "875:22:14" + "src": "993:22:13" }, { "expression": { @@ -1581,7 +1736,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4626, + "id": 5098, "isConstant": false, "isLValue": false, "isPure": false, @@ -1589,14 +1744,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3130", - "id": 4623, + "id": 5095, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "922:2:14", + "src": "1040:2:13", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", @@ -1611,18 +1766,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 4624, + "id": 5096, "name": "ADD_EXP", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4513, - "src": "928:7:14", + "referencedDeclaration": 4973, + "src": "1046:7:13", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint256_$", "typeString": "function () pure returns (uint256)" } }, - "id": 4625, + "id": 5097, "isConstant": false, "isLValue": false, "isPure": false, @@ -1630,13 +1785,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "928:9:14", + "src": "1046:9:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "922:15:14", + "src": "1040:15:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1652,32 +1807,32 @@ ], "expression": { "argumentTypes": null, - "id": 4621, + "id": 5093, "name": "_a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4610, - "src": "915:2:14", + "referencedDeclaration": 5082, + "src": "1033:2:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 4622, + "id": 5094, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "div", "nodeType": "MemberAccess", - "referencedDeclaration": 6809, - "src": "915:6:14", + "referencedDeclaration": 9557, + "src": "1033:6:13", "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": 4627, + "id": 5099, "isConstant": false, "isLValue": false, "isPure": false, @@ -1685,21 +1840,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "915:23:14", + "src": "1033:23:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 4614, - "id": 4628, + "functionReturnParameters": 5086, + "id": 5100, "nodeType": "Return", - "src": "908:30:14" + "src": "1026:30:13" } ] }, "documentation": null, - "id": 4630, + "id": 5102, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1707,16 +1862,16 @@ "name": "fromPercent", "nodeType": "FunctionDefinition", "parameters": { - "id": 4611, + "id": 5083, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4610, + "id": 5082, "name": "_a", "nodeType": "VariableDeclaration", - "scope": 4630, - "src": "827:7:14", + "scope": 5102, + "src": "945:7:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1724,10 +1879,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4609, + "id": 5081, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "827:4:14", + "src": "945:4:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1737,20 +1892,20 @@ "visibility": "internal" } ], - "src": "826:9:14" + "src": "944:9:13" }, "payable": false, "returnParameters": { - "id": 4614, + "id": 5086, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4613, + "id": 5085, "name": "", "nodeType": "VariableDeclaration", - "scope": 4630, - "src": "859:4:14", + "scope": 5102, + "src": "977:4:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1758,10 +1913,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4612, + "id": 5084, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "859:4:14", + "src": "977:4:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1771,33 +1926,33 @@ "visibility": "internal" } ], - "src": "858:6:14" + "src": "976:6:13" }, - "scope": 4631, - "src": "806:139:14", + "scope": 5103, + "src": "924:139:13", "stateMutability": "pure", "superFunction": null, "visibility": "internal" } ], - "scope": 4632, - "src": "87:860:14" + "scope": 5104, + "src": "109:956:13" } ], - "src": "0:948:14" + "src": "0:1066:13" }, "legacyAST": { "absolutePath": "/home/circleci/code/contracts/libs/Percent.sol", "exportedSymbols": { "Percent": [ - 4631 + 5103 ] }, - "id": 4632, + "id": 5104, "nodeType": "SourceUnit", "nodes": [ { - "id": 4501, + "id": 4960, "literals": [ "solidity", "^", @@ -1805,16 +1960,27 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:14" + "src": "0:24:13" }, { "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 4502, + "id": 4961, + "nodeType": "ImportDirective", + "scope": 5104, + "sourceUnit": 9603, + "src": "26:59:13", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/libs/Utils.sol", + "file": "./Utils.sol", + "id": 4962, "nodeType": "ImportDirective", - "scope": 4632, - "sourceUnit": 6855, - "src": "26:59:14", + "scope": 5104, + "sourceUnit": 6061, + "src": "86:21:13", "symbolAliases": [], "unitAlias": "" }, @@ -1824,34 +1990,34 @@ "contractKind": "library", "documentation": null, "fullyImplemented": true, - "id": 4631, + "id": 5103, "linearizedBaseContracts": [ - 4631 + 5103 ], "name": "Percent", "nodeType": "ContractDefinition", "nodes": [ { - "id": 4505, + "id": 4965, "libraryName": { "contractScope": null, - "id": 4503, + "id": 4963, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6854, - "src": "115:8:14", + "referencedDeclaration": 9602, + "src": "137:8:13", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$6854", + "typeIdentifier": "t_contract$_SafeMath_$9602", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "109:24:14", + "src": "131:24:13", "typeName": { - "id": 4504, + "id": 4964, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "128:4:14", + "src": "150:4:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1860,22 +2026,22 @@ }, { "body": { - "id": 4512, + "id": 4972, "nodeType": "Block", - "src": "185:13:14", + "src": "207:13:13", "statements": [ { "expression": { "argumentTypes": null, "hexValue": "32", - "id": 4510, + "id": 4970, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "194:1:14", + "src": "216:1:13", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -1883,15 +2049,15 @@ }, "value": "2" }, - "functionReturnParameters": 4509, - "id": 4511, + "functionReturnParameters": 4969, + "id": 4971, "nodeType": "Return", - "src": "187:8:14" + "src": "209:8:13" } ] }, "documentation": null, - "id": 4513, + "id": 4973, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1899,23 +2065,23 @@ "name": "ADD_EXP", "nodeType": "FunctionDefinition", "parameters": { - "id": 4506, + "id": 4966, "nodeType": "ParameterList", "parameters": [], - "src": "155:2:14" + "src": "177:2:13" }, "payable": false, "returnParameters": { - "id": 4509, + "id": 4969, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4508, + "id": 4968, "name": "", "nodeType": "VariableDeclaration", - "scope": 4513, - "src": "179:4:14", + "scope": 4973, + "src": "201:4:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1923,10 +2089,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4507, + "id": 4967, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "179:4:14", + "src": "201:4:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1936,19 +2102,19 @@ "visibility": "internal" } ], - "src": "178:6:14" + "src": "200:6:13" }, - "scope": 4631, - "src": "139:59:14", + "scope": 5103, + "src": "161:59:13", "stateMutability": "pure", "superFunction": null, "visibility": "public" }, { "body": { - "id": 4523, + "id": 4983, "nodeType": "Block", - "src": "245:25:14", + "src": "267:25:13", "statements": [ { "expression": { @@ -1957,7 +2123,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4521, + "id": 4981, "isConstant": false, "isLValue": false, "isPure": false, @@ -1965,14 +2131,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "32", - "id": 4518, + "id": 4978, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "254:1:14", + "src": "276:1:13", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -1987,18 +2153,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 4519, + "id": 4979, "name": "ADD_EXP", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4513, - "src": "258:7:14", + "referencedDeclaration": 4973, + "src": "280:7:13", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint256_$", "typeString": "function () pure returns (uint256)" } }, - "id": 4520, + "id": 4980, "isConstant": false, "isLValue": false, "isPure": false, @@ -2006,27 +2172,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "258:9:14", + "src": "280:9:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "254:13:14", + "src": "276:13:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 4517, - "id": 4522, + "functionReturnParameters": 4977, + "id": 4982, "nodeType": "Return", - "src": "247:20:14" + "src": "269:20:13" } ] }, "documentation": null, - "id": 4524, + "id": 4984, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2034,23 +2200,23 @@ "name": "EXP", "nodeType": "FunctionDefinition", "parameters": { - "id": 4514, + "id": 4974, "nodeType": "ParameterList", "parameters": [], - "src": "215:2:14" + "src": "237:2:13" }, "payable": false, "returnParameters": { - "id": 4517, + "id": 4977, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4516, + "id": 4976, "name": "", "nodeType": "VariableDeclaration", - "scope": 4524, - "src": "239:4:14", + "scope": 4984, + "src": "261:4:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2058,10 +2224,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4515, + "id": 4975, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "239:4:14", + "src": "261:4:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2071,32 +2237,32 @@ "visibility": "internal" } ], - "src": "238:6:14" + "src": "260:6:13" }, - "scope": 4631, - "src": "203:67:14", + "scope": 5103, + "src": "225:67:13", "stateMutability": "pure", "superFunction": null, "visibility": "public" }, { "body": { - "id": 4531, + "id": 4991, "nodeType": "Block", - "src": "317:13:14", + "src": "339:13:13", "statements": [ { "expression": { "argumentTypes": null, "hexValue": "30", - "id": 4529, + "id": 4989, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "326:1:14", + "src": "348:1:13", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2104,15 +2270,15 @@ }, "value": "0" }, - "functionReturnParameters": 4528, - "id": 4530, + "functionReturnParameters": 4988, + "id": 4990, "nodeType": "Return", - "src": "319:8:14" + "src": "341:8:13" } ] }, "documentation": null, - "id": 4532, + "id": 4992, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2120,23 +2286,23 @@ "name": "MIN", "nodeType": "FunctionDefinition", "parameters": { - "id": 4525, + "id": 4985, "nodeType": "ParameterList", "parameters": [], - "src": "287:2:14" + "src": "309:2:13" }, "payable": false, "returnParameters": { - "id": 4528, + "id": 4988, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4527, + "id": 4987, "name": "", "nodeType": "VariableDeclaration", - "scope": 4532, - "src": "311:4:14", + "scope": 4992, + "src": "333:4:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2144,10 +2310,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4526, + "id": 4986, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "311:4:14", + "src": "333:4:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2157,19 +2323,19 @@ "visibility": "internal" } ], - "src": "310:6:14" + "src": "332:6:13" }, - "scope": 4631, - "src": "275:55:14", + "scope": 5103, + "src": "297:55:13", "stateMutability": "pure", "superFunction": null, "visibility": "public" }, { "body": { - "id": 4542, + "id": 5002, "nodeType": "Block", - "src": "377:23:14", + "src": "399:23:13", "statements": [ { "expression": { @@ -2178,7 +2344,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4540, + "id": 5000, "isConstant": false, "isLValue": false, "isPure": false, @@ -2186,14 +2352,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3130", - "id": 4537, + "id": 4997, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "386:2:14", + "src": "408:2:13", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", @@ -2208,18 +2374,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 4538, + "id": 4998, "name": "EXP", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4524, - "src": "392:3:14", + "referencedDeclaration": 4984, + "src": "414:3:13", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint256_$", "typeString": "function () pure returns (uint256)" } }, - "id": 4539, + "id": 4999, "isConstant": false, "isLValue": false, "isPure": false, @@ -2227,27 +2393,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "392:5:14", + "src": "414:5:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "386:11:14", + "src": "408:11:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 4536, - "id": 4541, + "functionReturnParameters": 4996, + "id": 5001, "nodeType": "Return", - "src": "379:18:14" + "src": "401:18:13" } ] }, "documentation": null, - "id": 4543, + "id": 5003, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2255,23 +2421,23 @@ "name": "MAX", "nodeType": "FunctionDefinition", "parameters": { - "id": 4533, + "id": 4993, "nodeType": "ParameterList", "parameters": [], - "src": "347:2:14" + "src": "369:2:13" }, "payable": false, "returnParameters": { - "id": 4536, + "id": 4996, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4535, + "id": 4995, "name": "", "nodeType": "VariableDeclaration", - "scope": 4543, - "src": "371:4:14", + "scope": 5003, + "src": "393:4:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2279,10 +2445,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4534, + "id": 4994, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "371:4:14", + "src": "393:4:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2292,113 +2458,20 @@ "visibility": "internal" } ], - "src": "370:6:14" + "src": "392:6:13" }, - "scope": 4631, - "src": "335:65:14", + "scope": 5103, + "src": "357:65:13", "stateMutability": "pure", "superFunction": null, "visibility": "public" }, { "body": { - "id": 4567, + "id": 5021, "nodeType": "Block", - "src": "470:78:14", + "src": "492:45:13", "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4554, - "name": "_b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4547, - "src": "498:2:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 4553, - "name": "isPercent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4586, - "src": "488:9:14", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) pure returns (bool)" - } - }, - "id": 4555, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "488:13:14", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 4552, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 7297, - 7298 - ], - "referencedDeclaration": 7297, - "src": "480:7:14", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 4556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "480:22:14", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4557, - "nodeType": "ExpressionStatement", - "src": "480:22:14" - }, { "expression": { "argumentTypes": null, @@ -2408,18 +2481,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 4563, + "id": 5017, "name": "MAX", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4543, - "src": "535:3:14", + "referencedDeclaration": 5003, + "src": "524:3:13", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint256_$", "typeString": "function () pure returns (uint256)" } }, - "id": 4564, + "id": 5018, "isConstant": false, "isLValue": false, "isPure": false, @@ -2427,7 +2500,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "535:5:14", + "src": "524:5:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2446,12 +2519,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4560, + "id": 5014, "name": "_b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4547, - "src": "527:2:14", + "referencedDeclaration": 5007, + "src": "516:2:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2467,32 +2540,32 @@ ], "expression": { "argumentTypes": null, - "id": 4558, + "id": 5012, "name": "_a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4545, - "src": "520:2:14", + "referencedDeclaration": 5005, + "src": "509:2:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 4559, + "id": 5013, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", - "referencedDeclaration": 6795, - "src": "520:6:14", + "referencedDeclaration": 9543, + "src": "509:6:13", "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": 4561, + "id": 5015, "isConstant": false, "isLValue": false, "isPure": false, @@ -2500,27 +2573,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "520:10:14", + "src": "509:10:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 4562, + "id": 5016, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "div", "nodeType": "MemberAccess", - "referencedDeclaration": 6809, - "src": "520:14:14", + "referencedDeclaration": 9557, + "src": "509:14:13", "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": 4565, + "id": 5019, "isConstant": false, "isLValue": false, "isPure": false, @@ -2528,21 +2601,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "520:21:14", + "src": "509:21:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 4551, - "id": 4566, + "functionReturnParameters": 5011, + "id": 5020, "nodeType": "Return", - "src": "513:28:14" + "src": "502:28:13" } ] }, "documentation": null, - "id": 4568, + "id": 5022, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2550,16 +2623,253 @@ "name": "percent", "nodeType": "FunctionDefinition", "parameters": { - "id": 4548, + "id": 5008, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5005, + "name": "_a", + "nodeType": "VariableDeclaration", + "scope": 5022, + "src": "445:7:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5004, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "445:4:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5007, + "name": "_b", + "nodeType": "VariableDeclaration", + "scope": 5022, + "src": "454:7:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5006, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "454:4:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "444:18:13" + }, + "payable": false, + "returnParameters": { + "id": 5011, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5010, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5022, + "src": "486:4:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5009, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "486:4:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "485:6:13" + }, + "scope": 5103, + "src": "428:109:13", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5039, + "nodeType": "Block", + "src": "611:55:13", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5033, + "name": "_a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5024, + "src": "645:2:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5034, + "name": "_b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5026, + "src": "649:2:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5035, + "name": "MAX", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5003, + "src": "653:3:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint256_$", + "typeString": "function () pure returns (uint256)" + } + }, + "id": 5036, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "653:5:13", + "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": 5031, + "name": "Utils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6060, + "src": "628:5:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Utils_$6060_$", + "typeString": "type(library Utils)" + } + }, + "id": 5032, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeMulDiv", + "nodeType": "MemberAccess", + "referencedDeclaration": 6059, + "src": "628:16:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 5037, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "628:31:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 5030, + "id": 5038, + "nodeType": "Return", + "src": "621:38:13" + } + ] + }, + "documentation": null, + "id": 5040, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "safePercent", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5027, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4545, + "id": 5024, "name": "_a", "nodeType": "VariableDeclaration", - "scope": 4568, - "src": "423:7:14", + "scope": 5040, + "src": "564:7:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2567,10 +2877,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4544, + "id": 5023, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "423:4:14", + "src": "564:4:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2581,11 +2891,11 @@ }, { "constant": false, - "id": 4547, + "id": 5026, "name": "_b", "nodeType": "VariableDeclaration", - "scope": 4568, - "src": "432:7:14", + "scope": 5040, + "src": "573:7:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2593,10 +2903,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4546, + "id": 5025, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "432:4:14", + "src": "573:4:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2606,20 +2916,20 @@ "visibility": "internal" } ], - "src": "422:18:14" + "src": "563:18:13" }, "payable": false, "returnParameters": { - "id": 4551, + "id": 5030, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4550, + "id": 5029, "name": "", "nodeType": "VariableDeclaration", - "scope": 4568, - "src": "464:4:14", + "scope": 5040, + "src": "605:4:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2627,10 +2937,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4549, + "id": 5028, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "464:4:14", + "src": "605:4:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2640,19 +2950,19 @@ "visibility": "internal" } ], - "src": "463:6:14" + "src": "604:6:13" }, - "scope": 4631, - "src": "406:142:14", + "scope": 5103, + "src": "543:123:13", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 4585, + "id": 5057, "nodeType": "Block", - "src": "611:50:14", + "src": "729:50:13", "statements": [ { "expression": { @@ -2661,7 +2971,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 4583, + "id": 5055, "isConstant": false, "isLValue": false, "isPure": false, @@ -2672,19 +2982,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4578, + "id": 5050, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 4575, + "id": 5047, "name": "_a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4570, - "src": "628:2:14", + "referencedDeclaration": 5042, + "src": "746:2:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2697,18 +3007,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 4576, + "id": 5048, "name": "MIN", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4532, - "src": "634:3:14", + "referencedDeclaration": 4992, + "src": "752:3:13", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint256_$", "typeString": "function () pure returns (uint256)" } }, - "id": 4577, + "id": 5049, "isConstant": false, "isLValue": false, "isPure": false, @@ -2716,13 +3026,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "634:5:14", + "src": "752:5:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "628:11:14", + "src": "746:11:13", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2736,19 +3046,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4582, + "id": 5054, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 4579, + "id": 5051, "name": "_a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4570, - "src": "643:2:14", + "referencedDeclaration": 5042, + "src": "761:2:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2761,18 +3071,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 4580, + "id": 5052, "name": "MAX", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4543, - "src": "649:3:14", + "referencedDeclaration": 5003, + "src": "767:3:13", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint256_$", "typeString": "function () pure returns (uint256)" } }, - "id": 4581, + "id": 5053, "isConstant": false, "isLValue": false, "isPure": false, @@ -2780,33 +3090,33 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "649:5:14", + "src": "767:5:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "643:11:14", + "src": "761:11:13", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "628:26:14", + "src": "746:26:13", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 4574, - "id": 4584, + "functionReturnParameters": 5046, + "id": 5056, "nodeType": "Return", - "src": "621:33:14" + "src": "739:33:13" } ] }, "documentation": null, - "id": 4586, + "id": 5058, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2814,16 +3124,16 @@ "name": "isPercent", "nodeType": "FunctionDefinition", "parameters": { - "id": 4571, + "id": 5043, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4570, + "id": 5042, "name": "_a", "nodeType": "VariableDeclaration", - "scope": 4586, - "src": "573:7:14", + "scope": 5058, + "src": "691:7:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2831,10 +3141,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4569, + "id": 5041, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "573:4:14", + "src": "691:4:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2844,20 +3154,20 @@ "visibility": "internal" } ], - "src": "572:9:14" + "src": "690:9:13" }, "payable": false, "returnParameters": { - "id": 4574, + "id": 5046, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4573, + "id": 5045, "name": "", "nodeType": "VariableDeclaration", - "scope": 4586, - "src": "605:4:14", + "scope": 5058, + "src": "723:4:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2865,10 +3175,10 @@ "typeString": "bool" }, "typeName": { - "id": 4572, + "id": 5044, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "605:4:14", + "src": "723:4:13", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2878,19 +3188,19 @@ "visibility": "internal" } ], - "src": "604:6:14" + "src": "722:6:13" }, - "scope": 4631, - "src": "554:107:14", + "scope": 5103, + "src": "672:107:13", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 4607, + "id": 5079, "nodeType": "Block", - "src": "724:76:14", + "src": "842:76:13", "statements": [ { "expression": { @@ -2902,19 +3212,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4596, + "id": 5068, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 4594, + "id": 5066, "name": "_a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4588, - "src": "742:2:14", + "referencedDeclaration": 5060, + "src": "860:2:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2925,14 +3235,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "313030", - "id": 4595, + "id": 5067, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "748:3:14", + "src": "866:3:13", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_100_by_1", @@ -2940,7 +3250,7 @@ }, "value": "100" }, - "src": "742:9:14", + "src": "860:9:13", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2954,21 +3264,21 @@ "typeString": "bool" } ], - "id": 4593, + "id": 5065, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "734:7:14", + "referencedDeclaration": 10045, + "src": "852:7:13", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 4597, + "id": 5069, "isConstant": false, "isLValue": false, "isPure": false, @@ -2976,15 +3286,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "734:18:14", + "src": "852:18:13", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4598, + "id": 5070, "nodeType": "ExpressionStatement", - "src": "734:18:14" + "src": "852:18:13" }, { "expression": { @@ -2996,7 +3306,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4604, + "id": 5076, "isConstant": false, "isLValue": false, "isPure": false, @@ -3004,14 +3314,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3130", - "id": 4601, + "id": 5073, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "777:2:14", + "src": "895:2:13", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", @@ -3026,18 +3336,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 4602, + "id": 5074, "name": "ADD_EXP", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4513, - "src": "783:7:14", + "referencedDeclaration": 4973, + "src": "901:7:13", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint256_$", "typeString": "function () pure returns (uint256)" } }, - "id": 4603, + "id": 5075, "isConstant": false, "isLValue": false, "isPure": false, @@ -3045,13 +3355,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "783:9:14", + "src": "901:9:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "777:15:14", + "src": "895:15:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3067,32 +3377,32 @@ ], "expression": { "argumentTypes": null, - "id": 4599, + "id": 5071, "name": "_a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4588, - "src": "770:2:14", + "referencedDeclaration": 5060, + "src": "888:2:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 4600, + "id": 5072, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", - "referencedDeclaration": 6795, - "src": "770:6:14", + "referencedDeclaration": 9543, + "src": "888:6:13", "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": 4605, + "id": 5077, "isConstant": false, "isLValue": false, "isPure": false, @@ -3100,21 +3410,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "770:23:14", + "src": "888:23:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 4592, - "id": 4606, + "functionReturnParameters": 5064, + "id": 5078, "nodeType": "Return", - "src": "763:30:14" + "src": "881:30:13" } ] }, "documentation": null, - "id": 4608, + "id": 5080, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -3122,16 +3432,16 @@ "name": "toPercent", "nodeType": "FunctionDefinition", "parameters": { - "id": 4589, + "id": 5061, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4588, + "id": 5060, "name": "_a", "nodeType": "VariableDeclaration", - "scope": 4608, - "src": "686:7:14", + "scope": 5080, + "src": "804:7:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3139,10 +3449,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4587, + "id": 5059, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "686:4:14", + "src": "804:4:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3152,20 +3462,20 @@ "visibility": "internal" } ], - "src": "685:9:14" + "src": "803:9:13" }, "payable": false, "returnParameters": { - "id": 4592, + "id": 5064, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4591, + "id": 5063, "name": "", "nodeType": "VariableDeclaration", - "scope": 4608, - "src": "718:4:14", + "scope": 5080, + "src": "836:4:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3173,10 +3483,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4590, + "id": 5062, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "718:4:14", + "src": "836:4:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3186,19 +3496,19 @@ "visibility": "internal" } ], - "src": "717:6:14" + "src": "835:6:13" }, - "scope": 4631, - "src": "667:133:14", + "scope": 5103, + "src": "785:133:13", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 4629, + "id": 5101, "nodeType": "Block", - "src": "865:80:14", + "src": "983:80:13", "statements": [ { "expression": { @@ -3209,12 +3519,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4617, + "id": 5089, "name": "_a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4610, - "src": "893:2:14", + "referencedDeclaration": 5082, + "src": "1011:2:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3228,18 +3538,18 @@ "typeString": "uint256" } ], - "id": 4616, + "id": 5088, "name": "isPercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4586, - "src": "883:9:14", + "referencedDeclaration": 5058, + "src": "1001:9:13", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256) pure returns (bool)" } }, - "id": 4618, + "id": 5090, "isConstant": false, "isLValue": false, "isPure": false, @@ -3247,7 +3557,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "883:13:14", + "src": "1001:13:13", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3261,21 +3571,21 @@ "typeString": "bool" } ], - "id": 4615, + "id": 5087, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "875:7:14", + "referencedDeclaration": 10045, + "src": "993:7:13", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 4619, + "id": 5091, "isConstant": false, "isLValue": false, "isPure": false, @@ -3283,15 +3593,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "875:22:14", + "src": "993:22:13", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4620, + "id": 5092, "nodeType": "ExpressionStatement", - "src": "875:22:14" + "src": "993:22:13" }, { "expression": { @@ -3303,7 +3613,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4626, + "id": 5098, "isConstant": false, "isLValue": false, "isPure": false, @@ -3311,14 +3621,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3130", - "id": 4623, + "id": 5095, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "922:2:14", + "src": "1040:2:13", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", @@ -3333,18 +3643,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 4624, + "id": 5096, "name": "ADD_EXP", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4513, - "src": "928:7:14", + "referencedDeclaration": 4973, + "src": "1046:7:13", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint256_$", "typeString": "function () pure returns (uint256)" } }, - "id": 4625, + "id": 5097, "isConstant": false, "isLValue": false, "isPure": false, @@ -3352,13 +3662,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "928:9:14", + "src": "1046:9:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "922:15:14", + "src": "1040:15:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3374,32 +3684,32 @@ ], "expression": { "argumentTypes": null, - "id": 4621, + "id": 5093, "name": "_a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4610, - "src": "915:2:14", + "referencedDeclaration": 5082, + "src": "1033:2:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 4622, + "id": 5094, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "div", "nodeType": "MemberAccess", - "referencedDeclaration": 6809, - "src": "915:6:14", + "referencedDeclaration": 9557, + "src": "1033:6:13", "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": 4627, + "id": 5099, "isConstant": false, "isLValue": false, "isPure": false, @@ -3407,21 +3717,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "915:23:14", + "src": "1033:23:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 4614, - "id": 4628, + "functionReturnParameters": 5086, + "id": 5100, "nodeType": "Return", - "src": "908:30:14" + "src": "1026:30:13" } ] }, "documentation": null, - "id": 4630, + "id": 5102, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -3429,16 +3739,16 @@ "name": "fromPercent", "nodeType": "FunctionDefinition", "parameters": { - "id": 4611, + "id": 5083, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4610, + "id": 5082, "name": "_a", "nodeType": "VariableDeclaration", - "scope": 4630, - "src": "827:7:14", + "scope": 5102, + "src": "945:7:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3446,10 +3756,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4609, + "id": 5081, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "827:4:14", + "src": "945:4:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3459,20 +3769,20 @@ "visibility": "internal" } ], - "src": "826:9:14" + "src": "944:9:13" }, "payable": false, "returnParameters": { - "id": 4614, + "id": 5086, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4613, + "id": 5085, "name": "", "nodeType": "VariableDeclaration", - "scope": 4630, - "src": "859:4:14", + "scope": 5102, + "src": "977:4:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3480,10 +3790,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4612, + "id": 5084, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "859:4:14", + "src": "977:4:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3493,20 +3803,20 @@ "visibility": "internal" } ], - "src": "858:6:14" + "src": "976:6:13" }, - "scope": 4631, - "src": "806:139:14", + "scope": 5103, + "src": "924:139:13", "stateMutability": "pure", "superFunction": null, "visibility": "internal" } ], - "scope": 4632, - "src": "87:860:14" + "scope": 5104, + "src": "109:956:13" } ], - "src": "0:948:14" + "src": "0:1066:13" }, "compiler": { "name": "solc", @@ -3516,10 +3826,10 @@ "4": { "events": {}, "links": {}, - "address": "0xd98ecddead560f1327823ce8c7580729845ccb7f", - "transactionHash": "0x782de2075d3932b365ab52cdbfadcc57585a3186df52c1830fabe6b4d28d5e46" + "address": "0xd6429c58c604e696d68544add46d2c7bcdfdcae4", + "transactionHash": "0xab2d0134fe33f3627d7a5f45db27eaa6e23c63e4e8c9a7c0697d9277e5b9a09a" } }, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-02T12:01:53.239Z" + "updatedAt": "2018-10-22T07:59:52.057Z" } \ No newline at end of file diff --git a/build/contracts/PercentMock.json b/build/contracts/PercentMock.json index 5f720245..0152865b 100644 --- a/build/contracts/PercentMock.json +++ b/build/contracts/PercentMock.json @@ -82,24 +82,24 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b5061027f806100206000396000f3006080604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630fe91147811461006657806317b8f5e11461009057806342318e3d146100a8578063520b0066146100c3575b600080fd5b34801561007257600080fd5b5061007e6004356100ef565b60408051918252519081900360200190f35b34801561009c57600080fd5b5061007e600435610100565b3480156100b457600080fd5b5061007e60043560243561010b565b3480156100cf57600080fd5b506100db60043561011e565b604080519115158252519081900360200190f35b60006100fa82610129565b92915050565b60006100fa8261015a565b60006101178383610185565b9392505050565b60006100fa826101c2565b6000610134826101c2565b151561013f57600080fd5b6100fa61014a6101e7565b8390600a0a63ffffffff6101ec16565b6000606482111561016a57600080fd5b6100fa6101756101e7565b8390600a0a63ffffffff61020116565b6000610190826101c2565b151561019b57600080fd5b6101176101a661022a565b6101b6858563ffffffff61020116565b9063ffffffff6101ec16565b60006101cc61023c565b82101580156100fa57506101de61022a565b90911115919050565b600290565b600081838115156101f957fe5b049392505050565b6000821515610212575060006100fa565b5081810281838281151561022257fe5b04146100fa57fe5b6000610234610241565b600a0a905090565b600090565b600061024b6101e7565b6002019050905600a165627a7a723058202bdcff937cdcf32fca140f940521c7916c8f6328cee5d9454867f4e5fbc6ab980029", - "deployedBytecode": "0x6080604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630fe91147811461006657806317b8f5e11461009057806342318e3d146100a8578063520b0066146100c3575b600080fd5b34801561007257600080fd5b5061007e6004356100ef565b60408051918252519081900360200190f35b34801561009c57600080fd5b5061007e600435610100565b3480156100b457600080fd5b5061007e60043560243561010b565b3480156100cf57600080fd5b506100db60043561011e565b604080519115158252519081900360200190f35b60006100fa82610129565b92915050565b60006100fa8261015a565b60006101178383610185565b9392505050565b60006100fa826101c2565b6000610134826101c2565b151561013f57600080fd5b6100fa61014a6101e7565b8390600a0a63ffffffff6101ec16565b6000606482111561016a57600080fd5b6100fa6101756101e7565b8390600a0a63ffffffff61020116565b6000610190826101c2565b151561019b57600080fd5b6101176101a661022a565b6101b6858563ffffffff61020116565b9063ffffffff6101ec16565b60006101cc61023c565b82101580156100fa57506101de61022a565b90911115919050565b600290565b600081838115156101f957fe5b049392505050565b6000821515610212575060006100fa565b5081810281838281151561022257fe5b04146100fa57fe5b6000610234610241565b600a0a905090565b600090565b600061024b6101e7565b6002019050905600a165627a7a723058202bdcff937cdcf32fca140f940521c7916c8f6328cee5d9454867f4e5fbc6ab980029", - "sourceMap": "111:519:15:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;111:519:15;;;;;;;", - "deployedSourceMap": "111:519:15:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;524:104;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;524:104:15;;;;;;;;;;;;;;;;;;;;;418:100;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;418:100:15;;;;;196:110;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;196:110:15;;;;;;;312:100;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;312:100:15;;;;;;;;;;;;;;;;;;;;;;;524:104;575:4;598:23;618:2;598:19;:23::i;:::-;591:30;524:104;-1:-1:-1;;524:104:15: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:15:o;312:100::-;361:4;384:21;402:2;384:17;:21::i;806:139:14:-;859:4;883:13;893:2;883:9;:13::i;:::-;875:22;;;;;;;;915:23;928:9;:7;:9::i;:::-;915:2;;922;:15;915:23;:6;:23;:::i;667:133::-;718:4;748:3;742:9;;;734:18;;;;;;770:23;783:9;:7;:9::i;:::-;770:2;;777;:15;770:23;:6;:23;:::i;406:142::-;464:4;488:13;498:2;488:9;:13::i;:::-;480:22;;;;;;;;520:21;535:5;:3;:5::i;:::-;520:10;:2;527;520:10;:6;:10;:::i;:::-;:14;:21;:14;:21;:::i;554:107::-;605:4;634:5;:3;:5::i;:::-;628:2;:11;;:26;;;;;649:5;:3;:5::i;:::-;643:11;;;;;554:107;-1:-1:-1;554:107:14:o;139:59::-;194:1;139:59;:::o;665:283:30:-;725:7;941:2;936;:7;;;;;;;;;665:283;-1:-1:-1;;;665:283:30:o;203:380::-;263:9;489:7;;485:36;;;-1:-1:-1;513:1:30;506:8;;485:36;-1:-1:-1;531:7:30;;;536:2;531;:7;551:6;;;;;;;;:12;544:20;;;335:65:14;371:4;392:5;:3;:5::i;:::-;386:2;:11;379:18;;335:65;:::o;275:55::-;311:4;275:55;:::o;203:67::-;239:4;258:9;:7;:9::i;:::-;254:1;:13;247:20;;203:67;:::o", + "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", "ast": { "absolutePath": "/home/circleci/code/contracts/libs/PercentMock.sol", "exportedSymbols": { "PercentMock": [ - 4697 + 5169 ] }, - "id": 4698, + "id": 5170, "nodeType": "SourceUnit", "nodes": [ { - "id": 4633, + "id": 5105, "literals": [ "solidity", "^", @@ -107,27 +107,27 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:15" + "src": "0:24:14" }, { "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 4634, + "id": 5106, "nodeType": "ImportDirective", - "scope": 4698, - "sourceUnit": 6855, - "src": "26:59:15", + "scope": 5170, + "sourceUnit": 9603, + "src": "26:59:14", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/libs/Percent.sol", "file": "./Percent.sol", - "id": 4635, + "id": 5107, "nodeType": "ImportDirective", - "scope": 4698, - "sourceUnit": 4632, - "src": "86:23:15", + "scope": 5170, + "sourceUnit": 5104, + "src": "86:23:14", "symbolAliases": [], "unitAlias": "" }, @@ -137,34 +137,34 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 4697, + "id": 5169, "linearizedBaseContracts": [ - 4697 + 5169 ], "name": "PercentMock", "nodeType": "ContractDefinition", "nodes": [ { - "id": 4638, + "id": 5110, "libraryName": { "contractScope": null, - "id": 4636, + "id": 5108, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6854, - "src": "144:8:15", + "referencedDeclaration": 9602, + "src": "144:8:14", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$6854", + "typeIdentifier": "t_contract$_SafeMath_$9602", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "138:24:15", + "src": "138:24:14", "typeName": { - "id": 4637, + "id": 5109, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "157:4:15", + "src": "157:4:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -172,26 +172,26 @@ } }, { - "id": 4641, + "id": 5113, "libraryName": { "contractScope": null, - "id": 4639, + "id": 5111, "name": "Percent", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4631, - "src": "173:7:15", + "referencedDeclaration": 5103, + "src": "173:7:14", "typeDescriptions": { - "typeIdentifier": "t_contract$_Percent_$4631", + "typeIdentifier": "t_contract$_Percent_$5103", "typeString": "library Percent" } }, "nodeType": "UsingForDirective", - "src": "167:23:15", + "src": "167:23:14", "typeName": { - "id": 4640, + "id": 5112, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "185:4:15", + "src": "185:4:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -200,9 +200,9 @@ }, { "body": { - "id": 4656, + "id": 5128, "nodeType": "Block", - "src": "259:47:15", + "src": "259:47:14", "statements": [ { "expression": { @@ -210,12 +210,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4652, + "id": 5124, "name": "_a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4643, - "src": "292:2:15", + "referencedDeclaration": 5115, + "src": "292:2:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -223,12 +223,12 @@ }, { "argumentTypes": null, - "id": 4653, + "id": 5125, "name": "_b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4645, - "src": "296:2:15", + "referencedDeclaration": 5117, + "src": "296:2:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -248,32 +248,32 @@ ], "expression": { "argumentTypes": null, - "id": 4650, + "id": 5122, "name": "Percent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4631, - "src": "276:7:15", + "referencedDeclaration": 5103, + "src": "276:7:14", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Percent_$4631_$", + "typeIdentifier": "t_type$_t_contract$_Percent_$5103_$", "typeString": "type(library Percent)" } }, - "id": 4651, + "id": 5123, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "percent", "nodeType": "MemberAccess", - "referencedDeclaration": 4568, - "src": "276:15:15", + "referencedDeclaration": 5022, + "src": "276:15:14", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 4654, + "id": 5126, "isConstant": false, "isLValue": false, "isPure": false, @@ -281,21 +281,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "276:23:15", + "src": "276:23:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 4649, - "id": 4655, + "functionReturnParameters": 5121, + "id": 5127, "nodeType": "Return", - "src": "269:30:15" + "src": "269:30:14" } ] }, "documentation": null, - "id": 4657, + "id": 5129, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -303,16 +303,16 @@ "name": "percent", "nodeType": "FunctionDefinition", "parameters": { - "id": 4646, + "id": 5118, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4643, + "id": 5115, "name": "_a", "nodeType": "VariableDeclaration", - "scope": 4657, - "src": "213:7:15", + "scope": 5129, + "src": "213:7:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -320,10 +320,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4642, + "id": 5114, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "213:4:15", + "src": "213:4:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -334,11 +334,11 @@ }, { "constant": false, - "id": 4645, + "id": 5117, "name": "_b", "nodeType": "VariableDeclaration", - "scope": 4657, - "src": "222:7:15", + "scope": 5129, + "src": "222:7:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -346,10 +346,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4644, + "id": 5116, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "222:4:15", + "src": "222:4:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -359,20 +359,20 @@ "visibility": "internal" } ], - "src": "212:18:15" + "src": "212:18:14" }, "payable": false, "returnParameters": { - "id": 4649, + "id": 5121, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4648, + "id": 5120, "name": "", "nodeType": "VariableDeclaration", - "scope": 4657, - "src": "252:4:15", + "scope": 5129, + "src": "252:4:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -380,10 +380,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4647, + "id": 5119, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "252:4:15", + "src": "252:4:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -393,19 +393,19 @@ "visibility": "internal" } ], - "src": "251:6:15" + "src": "251:6:14" }, - "scope": 4697, - "src": "196:110:15", + "scope": 5169, + "src": "196:110:14", "stateMutability": "pure", "superFunction": null, "visibility": "public" }, { "body": { - "id": 4669, + "id": 5141, "nodeType": "Block", - "src": "367:45:15", + "src": "367:45:14", "statements": [ { "expression": { @@ -413,12 +413,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4666, + "id": 5138, "name": "_a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4659, - "src": "402:2:15", + "referencedDeclaration": 5131, + "src": "402:2:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -434,32 +434,32 @@ ], "expression": { "argumentTypes": null, - "id": 4664, + "id": 5136, "name": "Percent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4631, - "src": "384:7:15", + "referencedDeclaration": 5103, + "src": "384:7:14", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Percent_$4631_$", + "typeIdentifier": "t_type$_t_contract$_Percent_$5103_$", "typeString": "type(library Percent)" } }, - "id": 4665, + "id": 5137, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isPercent", "nodeType": "MemberAccess", - "referencedDeclaration": 4586, - "src": "384:17:15", + "referencedDeclaration": 5058, + "src": "384:17:14", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256) pure returns (bool)" } }, - "id": 4667, + "id": 5139, "isConstant": false, "isLValue": false, "isPure": false, @@ -467,21 +467,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "384:21:15", + "src": "384:21:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 4663, - "id": 4668, + "functionReturnParameters": 5135, + "id": 5140, "nodeType": "Return", - "src": "377:28:15" + "src": "377:28:14" } ] }, "documentation": null, - "id": 4670, + "id": 5142, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -489,16 +489,16 @@ "name": "isPercent", "nodeType": "FunctionDefinition", "parameters": { - "id": 4660, + "id": 5132, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4659, + "id": 5131, "name": "_a", "nodeType": "VariableDeclaration", - "scope": 4670, - "src": "331:7:15", + "scope": 5142, + "src": "331:7:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -506,10 +506,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4658, + "id": 5130, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "331:4:15", + "src": "331:4:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -519,20 +519,20 @@ "visibility": "internal" } ], - "src": "330:9:15" + "src": "330:9:14" }, "payable": false, "returnParameters": { - "id": 4663, + "id": 5135, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4662, + "id": 5134, "name": "", "nodeType": "VariableDeclaration", - "scope": 4670, - "src": "361:4:15", + "scope": 5142, + "src": "361:4:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -540,10 +540,10 @@ "typeString": "bool" }, "typeName": { - "id": 4661, + "id": 5133, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "361:4:15", + "src": "361:4:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -553,19 +553,19 @@ "visibility": "internal" } ], - "src": "360:6:15" + "src": "360:6:14" }, - "scope": 4697, - "src": "312:100:15", + "scope": 5169, + "src": "312:100:14", "stateMutability": "pure", "superFunction": null, "visibility": "public" }, { "body": { - "id": 4682, + "id": 5154, "nodeType": "Block", - "src": "473:45:15", + "src": "473:45:14", "statements": [ { "expression": { @@ -573,12 +573,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4679, + "id": 5151, "name": "_a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4672, - "src": "508:2:15", + "referencedDeclaration": 5144, + "src": "508:2:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -594,32 +594,32 @@ ], "expression": { "argumentTypes": null, - "id": 4677, + "id": 5149, "name": "Percent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4631, - "src": "490:7:15", + "referencedDeclaration": 5103, + "src": "490:7:14", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Percent_$4631_$", + "typeIdentifier": "t_type$_t_contract$_Percent_$5103_$", "typeString": "type(library Percent)" } }, - "id": 4678, + "id": 5150, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "toPercent", "nodeType": "MemberAccess", - "referencedDeclaration": 4608, - "src": "490:17:15", + "referencedDeclaration": 5080, + "src": "490:17:14", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256) pure returns (uint256)" } }, - "id": 4680, + "id": 5152, "isConstant": false, "isLValue": false, "isPure": false, @@ -627,21 +627,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "490:21:15", + "src": "490:21:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 4676, - "id": 4681, + "functionReturnParameters": 5148, + "id": 5153, "nodeType": "Return", - "src": "483:28:15" + "src": "483:28:14" } ] }, "documentation": null, - "id": 4683, + "id": 5155, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -649,16 +649,16 @@ "name": "toPercent", "nodeType": "FunctionDefinition", "parameters": { - "id": 4673, + "id": 5145, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4672, + "id": 5144, "name": "_a", "nodeType": "VariableDeclaration", - "scope": 4683, - "src": "437:7:15", + "scope": 5155, + "src": "437:7:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -666,10 +666,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4671, + "id": 5143, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "437:4:15", + "src": "437:4:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -679,20 +679,20 @@ "visibility": "internal" } ], - "src": "436:9:15" + "src": "436:9:14" }, "payable": false, "returnParameters": { - "id": 4676, + "id": 5148, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4675, + "id": 5147, "name": "", "nodeType": "VariableDeclaration", - "scope": 4683, - "src": "467:4:15", + "scope": 5155, + "src": "467:4:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -700,10 +700,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4674, + "id": 5146, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "467:4:15", + "src": "467:4:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -713,19 +713,19 @@ "visibility": "internal" } ], - "src": "466:6:15" + "src": "466:6:14" }, - "scope": 4697, - "src": "418:100:15", + "scope": 5169, + "src": "418:100:14", "stateMutability": "pure", "superFunction": null, "visibility": "public" }, { "body": { - "id": 4695, + "id": 5167, "nodeType": "Block", - "src": "581:47:15", + "src": "581:47:14", "statements": [ { "expression": { @@ -733,12 +733,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4692, + "id": 5164, "name": "_a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4685, - "src": "618:2:15", + "referencedDeclaration": 5157, + "src": "618:2:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -754,32 +754,32 @@ ], "expression": { "argumentTypes": null, - "id": 4690, + "id": 5162, "name": "Percent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4631, - "src": "598:7:15", + "referencedDeclaration": 5103, + "src": "598:7:14", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Percent_$4631_$", + "typeIdentifier": "t_type$_t_contract$_Percent_$5103_$", "typeString": "type(library Percent)" } }, - "id": 4691, + "id": 5163, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "fromPercent", "nodeType": "MemberAccess", - "referencedDeclaration": 4630, - "src": "598:19:15", + "referencedDeclaration": 5102, + "src": "598:19:14", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256) pure returns (uint256)" } }, - "id": 4693, + "id": 5165, "isConstant": false, "isLValue": false, "isPure": false, @@ -787,21 +787,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "598:23:15", + "src": "598:23:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 4689, - "id": 4694, + "functionReturnParameters": 5161, + "id": 5166, "nodeType": "Return", - "src": "591:30:15" + "src": "591:30:14" } ] }, "documentation": null, - "id": 4696, + "id": 5168, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -809,16 +809,16 @@ "name": "fromPercent", "nodeType": "FunctionDefinition", "parameters": { - "id": 4686, + "id": 5158, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4685, + "id": 5157, "name": "_a", "nodeType": "VariableDeclaration", - "scope": 4696, - "src": "545:7:15", + "scope": 5168, + "src": "545:7:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -826,10 +826,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4684, + "id": 5156, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "545:4:15", + "src": "545:4:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -839,20 +839,20 @@ "visibility": "internal" } ], - "src": "544:9:15" + "src": "544:9:14" }, "payable": false, "returnParameters": { - "id": 4689, + "id": 5161, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4688, + "id": 5160, "name": "", "nodeType": "VariableDeclaration", - "scope": 4696, - "src": "575:4:15", + "scope": 5168, + "src": "575:4:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -860,10 +860,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4687, + "id": 5159, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "575:4:15", + "src": "575:4:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -873,33 +873,33 @@ "visibility": "internal" } ], - "src": "574:6:15" + "src": "574:6:14" }, - "scope": 4697, - "src": "524:104:15", + "scope": 5169, + "src": "524:104:14", "stateMutability": "pure", "superFunction": null, "visibility": "public" } ], - "scope": 4698, - "src": "111:519:15" + "scope": 5170, + "src": "111:519:14" } ], - "src": "0:631:15" + "src": "0:631:14" }, "legacyAST": { "absolutePath": "/home/circleci/code/contracts/libs/PercentMock.sol", "exportedSymbols": { "PercentMock": [ - 4697 + 5169 ] }, - "id": 4698, + "id": 5170, "nodeType": "SourceUnit", "nodes": [ { - "id": 4633, + "id": 5105, "literals": [ "solidity", "^", @@ -907,27 +907,27 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:15" + "src": "0:24:14" }, { "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 4634, + "id": 5106, "nodeType": "ImportDirective", - "scope": 4698, - "sourceUnit": 6855, - "src": "26:59:15", + "scope": 5170, + "sourceUnit": 9603, + "src": "26:59:14", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/libs/Percent.sol", "file": "./Percent.sol", - "id": 4635, + "id": 5107, "nodeType": "ImportDirective", - "scope": 4698, - "sourceUnit": 4632, - "src": "86:23:15", + "scope": 5170, + "sourceUnit": 5104, + "src": "86:23:14", "symbolAliases": [], "unitAlias": "" }, @@ -937,34 +937,34 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 4697, + "id": 5169, "linearizedBaseContracts": [ - 4697 + 5169 ], "name": "PercentMock", "nodeType": "ContractDefinition", "nodes": [ { - "id": 4638, + "id": 5110, "libraryName": { "contractScope": null, - "id": 4636, + "id": 5108, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6854, - "src": "144:8:15", + "referencedDeclaration": 9602, + "src": "144:8:14", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$6854", + "typeIdentifier": "t_contract$_SafeMath_$9602", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "138:24:15", + "src": "138:24:14", "typeName": { - "id": 4637, + "id": 5109, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "157:4:15", + "src": "157:4:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -972,26 +972,26 @@ } }, { - "id": 4641, + "id": 5113, "libraryName": { "contractScope": null, - "id": 4639, + "id": 5111, "name": "Percent", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4631, - "src": "173:7:15", + "referencedDeclaration": 5103, + "src": "173:7:14", "typeDescriptions": { - "typeIdentifier": "t_contract$_Percent_$4631", + "typeIdentifier": "t_contract$_Percent_$5103", "typeString": "library Percent" } }, "nodeType": "UsingForDirective", - "src": "167:23:15", + "src": "167:23:14", "typeName": { - "id": 4640, + "id": 5112, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "185:4:15", + "src": "185:4:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1000,9 +1000,9 @@ }, { "body": { - "id": 4656, + "id": 5128, "nodeType": "Block", - "src": "259:47:15", + "src": "259:47:14", "statements": [ { "expression": { @@ -1010,12 +1010,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4652, + "id": 5124, "name": "_a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4643, - "src": "292:2:15", + "referencedDeclaration": 5115, + "src": "292:2:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1023,12 +1023,12 @@ }, { "argumentTypes": null, - "id": 4653, + "id": 5125, "name": "_b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4645, - "src": "296:2:15", + "referencedDeclaration": 5117, + "src": "296:2:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1048,32 +1048,32 @@ ], "expression": { "argumentTypes": null, - "id": 4650, + "id": 5122, "name": "Percent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4631, - "src": "276:7:15", + "referencedDeclaration": 5103, + "src": "276:7:14", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Percent_$4631_$", + "typeIdentifier": "t_type$_t_contract$_Percent_$5103_$", "typeString": "type(library Percent)" } }, - "id": 4651, + "id": 5123, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "percent", "nodeType": "MemberAccess", - "referencedDeclaration": 4568, - "src": "276:15:15", + "referencedDeclaration": 5022, + "src": "276:15:14", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 4654, + "id": 5126, "isConstant": false, "isLValue": false, "isPure": false, @@ -1081,21 +1081,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "276:23:15", + "src": "276:23:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 4649, - "id": 4655, + "functionReturnParameters": 5121, + "id": 5127, "nodeType": "Return", - "src": "269:30:15" + "src": "269:30:14" } ] }, "documentation": null, - "id": 4657, + "id": 5129, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1103,16 +1103,16 @@ "name": "percent", "nodeType": "FunctionDefinition", "parameters": { - "id": 4646, + "id": 5118, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4643, + "id": 5115, "name": "_a", "nodeType": "VariableDeclaration", - "scope": 4657, - "src": "213:7:15", + "scope": 5129, + "src": "213:7:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1120,10 +1120,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4642, + "id": 5114, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "213:4:15", + "src": "213:4:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1134,11 +1134,11 @@ }, { "constant": false, - "id": 4645, + "id": 5117, "name": "_b", "nodeType": "VariableDeclaration", - "scope": 4657, - "src": "222:7:15", + "scope": 5129, + "src": "222:7:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1146,10 +1146,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4644, + "id": 5116, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "222:4:15", + "src": "222:4:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1159,20 +1159,20 @@ "visibility": "internal" } ], - "src": "212:18:15" + "src": "212:18:14" }, "payable": false, "returnParameters": { - "id": 4649, + "id": 5121, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4648, + "id": 5120, "name": "", "nodeType": "VariableDeclaration", - "scope": 4657, - "src": "252:4:15", + "scope": 5129, + "src": "252:4:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1180,10 +1180,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4647, + "id": 5119, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "252:4:15", + "src": "252:4:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1193,19 +1193,19 @@ "visibility": "internal" } ], - "src": "251:6:15" + "src": "251:6:14" }, - "scope": 4697, - "src": "196:110:15", + "scope": 5169, + "src": "196:110:14", "stateMutability": "pure", "superFunction": null, "visibility": "public" }, { "body": { - "id": 4669, + "id": 5141, "nodeType": "Block", - "src": "367:45:15", + "src": "367:45:14", "statements": [ { "expression": { @@ -1213,12 +1213,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4666, + "id": 5138, "name": "_a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4659, - "src": "402:2:15", + "referencedDeclaration": 5131, + "src": "402:2:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1234,32 +1234,32 @@ ], "expression": { "argumentTypes": null, - "id": 4664, + "id": 5136, "name": "Percent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4631, - "src": "384:7:15", + "referencedDeclaration": 5103, + "src": "384:7:14", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Percent_$4631_$", + "typeIdentifier": "t_type$_t_contract$_Percent_$5103_$", "typeString": "type(library Percent)" } }, - "id": 4665, + "id": 5137, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isPercent", "nodeType": "MemberAccess", - "referencedDeclaration": 4586, - "src": "384:17:15", + "referencedDeclaration": 5058, + "src": "384:17:14", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256) pure returns (bool)" } }, - "id": 4667, + "id": 5139, "isConstant": false, "isLValue": false, "isPure": false, @@ -1267,21 +1267,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "384:21:15", + "src": "384:21:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 4663, - "id": 4668, + "functionReturnParameters": 5135, + "id": 5140, "nodeType": "Return", - "src": "377:28:15" + "src": "377:28:14" } ] }, "documentation": null, - "id": 4670, + "id": 5142, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1289,16 +1289,16 @@ "name": "isPercent", "nodeType": "FunctionDefinition", "parameters": { - "id": 4660, + "id": 5132, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4659, + "id": 5131, "name": "_a", "nodeType": "VariableDeclaration", - "scope": 4670, - "src": "331:7:15", + "scope": 5142, + "src": "331:7:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1306,10 +1306,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4658, + "id": 5130, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "331:4:15", + "src": "331:4:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1319,20 +1319,20 @@ "visibility": "internal" } ], - "src": "330:9:15" + "src": "330:9:14" }, "payable": false, "returnParameters": { - "id": 4663, + "id": 5135, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4662, + "id": 5134, "name": "", "nodeType": "VariableDeclaration", - "scope": 4670, - "src": "361:4:15", + "scope": 5142, + "src": "361:4:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1340,10 +1340,10 @@ "typeString": "bool" }, "typeName": { - "id": 4661, + "id": 5133, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "361:4:15", + "src": "361:4:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1353,19 +1353,19 @@ "visibility": "internal" } ], - "src": "360:6:15" + "src": "360:6:14" }, - "scope": 4697, - "src": "312:100:15", + "scope": 5169, + "src": "312:100:14", "stateMutability": "pure", "superFunction": null, "visibility": "public" }, { "body": { - "id": 4682, + "id": 5154, "nodeType": "Block", - "src": "473:45:15", + "src": "473:45:14", "statements": [ { "expression": { @@ -1373,12 +1373,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4679, + "id": 5151, "name": "_a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4672, - "src": "508:2:15", + "referencedDeclaration": 5144, + "src": "508:2:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1394,32 +1394,32 @@ ], "expression": { "argumentTypes": null, - "id": 4677, + "id": 5149, "name": "Percent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4631, - "src": "490:7:15", + "referencedDeclaration": 5103, + "src": "490:7:14", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Percent_$4631_$", + "typeIdentifier": "t_type$_t_contract$_Percent_$5103_$", "typeString": "type(library Percent)" } }, - "id": 4678, + "id": 5150, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "toPercent", "nodeType": "MemberAccess", - "referencedDeclaration": 4608, - "src": "490:17:15", + "referencedDeclaration": 5080, + "src": "490:17:14", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256) pure returns (uint256)" } }, - "id": 4680, + "id": 5152, "isConstant": false, "isLValue": false, "isPure": false, @@ -1427,21 +1427,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "490:21:15", + "src": "490:21:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 4676, - "id": 4681, + "functionReturnParameters": 5148, + "id": 5153, "nodeType": "Return", - "src": "483:28:15" + "src": "483:28:14" } ] }, "documentation": null, - "id": 4683, + "id": 5155, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1449,16 +1449,16 @@ "name": "toPercent", "nodeType": "FunctionDefinition", "parameters": { - "id": 4673, + "id": 5145, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4672, + "id": 5144, "name": "_a", "nodeType": "VariableDeclaration", - "scope": 4683, - "src": "437:7:15", + "scope": 5155, + "src": "437:7:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1466,10 +1466,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4671, + "id": 5143, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "437:4:15", + "src": "437:4:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1479,20 +1479,20 @@ "visibility": "internal" } ], - "src": "436:9:15" + "src": "436:9:14" }, "payable": false, "returnParameters": { - "id": 4676, + "id": 5148, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4675, + "id": 5147, "name": "", "nodeType": "VariableDeclaration", - "scope": 4683, - "src": "467:4:15", + "scope": 5155, + "src": "467:4:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1500,10 +1500,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4674, + "id": 5146, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "467:4:15", + "src": "467:4:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1513,19 +1513,19 @@ "visibility": "internal" } ], - "src": "466:6:15" + "src": "466:6:14" }, - "scope": 4697, - "src": "418:100:15", + "scope": 5169, + "src": "418:100:14", "stateMutability": "pure", "superFunction": null, "visibility": "public" }, { "body": { - "id": 4695, + "id": 5167, "nodeType": "Block", - "src": "581:47:15", + "src": "581:47:14", "statements": [ { "expression": { @@ -1533,12 +1533,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4692, + "id": 5164, "name": "_a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4685, - "src": "618:2:15", + "referencedDeclaration": 5157, + "src": "618:2:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1554,32 +1554,32 @@ ], "expression": { "argumentTypes": null, - "id": 4690, + "id": 5162, "name": "Percent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4631, - "src": "598:7:15", + "referencedDeclaration": 5103, + "src": "598:7:14", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Percent_$4631_$", + "typeIdentifier": "t_type$_t_contract$_Percent_$5103_$", "typeString": "type(library Percent)" } }, - "id": 4691, + "id": 5163, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "fromPercent", "nodeType": "MemberAccess", - "referencedDeclaration": 4630, - "src": "598:19:15", + "referencedDeclaration": 5102, + "src": "598:19:14", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256) pure returns (uint256)" } }, - "id": 4693, + "id": 5165, "isConstant": false, "isLValue": false, "isPure": false, @@ -1587,21 +1587,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "598:23:15", + "src": "598:23:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 4689, - "id": 4694, + "functionReturnParameters": 5161, + "id": 5166, "nodeType": "Return", - "src": "591:30:15" + "src": "591:30:14" } ] }, "documentation": null, - "id": 4696, + "id": 5168, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1609,16 +1609,16 @@ "name": "fromPercent", "nodeType": "FunctionDefinition", "parameters": { - "id": 4686, + "id": 5158, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4685, + "id": 5157, "name": "_a", "nodeType": "VariableDeclaration", - "scope": 4696, - "src": "545:7:15", + "scope": 5168, + "src": "545:7:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1626,10 +1626,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4684, + "id": 5156, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "545:4:15", + "src": "545:4:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1639,20 +1639,20 @@ "visibility": "internal" } ], - "src": "544:9:15" + "src": "544:9:14" }, "payable": false, "returnParameters": { - "id": 4689, + "id": 5161, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4688, + "id": 5160, "name": "", "nodeType": "VariableDeclaration", - "scope": 4696, - "src": "575:4:15", + "scope": 5168, + "src": "575:4:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1660,10 +1660,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4687, + "id": 5159, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "575:4:15", + "src": "575:4:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1673,20 +1673,20 @@ "visibility": "internal" } ], - "src": "574:6:15" + "src": "574:6:14" }, - "scope": 4697, - "src": "524:104:15", + "scope": 5169, + "src": "524:104:14", "stateMutability": "pure", "superFunction": null, "visibility": "public" } ], - "scope": 4698, - "src": "111:519:15" + "scope": 5170, + "src": "111:519:14" } ], - "src": "0:631:15" + "src": "0:631:14" }, "compiler": { "name": "solc", @@ -1694,5 +1694,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-02T11:52:56.753Z" + "updatedAt": "2018-10-22T07:56:01.550Z" } \ No newline at end of file diff --git a/build/contracts/PricerRole.json b/build/contracts/PricerRole.json index d0e38446..d91dc50b 100644 --- a/build/contracts/PricerRole.json +++ b/build/contracts/PricerRole.json @@ -79,24 +79,24 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b5061002333640100000000610028810204565b6100b1565b600160a060020a038116151561003d57600080fd5b6100556000826401000000006101ee61008c82021704565b604051600160a060020a038216907f02edb648fd57120edd0afed403c9fbc3205997fd07c01b3db9e1ed05647e9ebe90600090a250565b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b610261806100c06000396000f3006080604052600436106100565763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663451a5e65811461005b57806379d445731461007e578063e92179441461009f575b600080fd5b34801561006757600080fd5b5061007c600160a060020a03600435166100d4565b005b34801561008a57600080fd5b5061007c600160a060020a03600435166100f4565b3480156100ab57600080fd5b506100c0600160a060020a03600435166100fd565b604080519115158252519081900360200190f35b6100dd336100fd565b15156100e857600080fd5b6100f181610115565b50565b6100f181610172565b600061010f818363ffffffff6101cf16565b92915050565b600160a060020a038116151561012a57600080fd5b61013b60008263ffffffff6101ee16565b604051600160a060020a038216907f02edb648fd57120edd0afed403c9fbc3205997fd07c01b3db9e1ed05647e9ebe90600090a250565b600160a060020a038116151561018757600080fd5b61019860008263ffffffff61021316565b604051600160a060020a038216907fdbde5a1472d701cfaea5fcee6419072f226c14cc6c5478fbe8552044053a316a90600090a250565b600160a060020a03166000908152602091909152604090205460ff1690565b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b600160a060020a0316600090815260209190915260409020805460ff191690555600a165627a7a72305820bbd05c386cee1a47ef1cad4e9182ae1782c9a80e40258e7aa37e697721008d580029", - "deployedBytecode": "0x6080604052600436106100565763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663451a5e65811461005b57806379d445731461007e578063e92179441461009f575b600080fd5b34801561006757600080fd5b5061007c600160a060020a03600435166100d4565b005b34801561008a57600080fd5b5061007c600160a060020a03600435166100f4565b3480156100ab57600080fd5b506100c0600160a060020a03600435166100fd565b604080519115158252519081900360200190f35b6100dd336100fd565b15156100e857600080fd5b6100f181610115565b50565b6100f181610172565b600061010f818363ffffffff6101cf16565b92915050565b600160a060020a038116151561012a57600080fd5b61013b60008263ffffffff6101ee16565b604051600160a060020a038216907f02edb648fd57120edd0afed403c9fbc3205997fd07c01b3db9e1ed05647e9ebe90600090a250565b600160a060020a038116151561018757600080fd5b61019860008263ffffffff61021316565b604051600160a060020a038216907fdbde5a1472d701cfaea5fcee6419072f226c14cc6c5478fbe8552044053a316a90600090a250565b600160a060020a03166000908152602091909152604090205460ff1690565b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b600160a060020a0316600090815260209190915260409020805460ff191690555600a165627a7a72305820bbd05c386cee1a47ef1cad4e9182ae1782c9a80e40258e7aa37e697721008d580029", - "sourceMap": "91:975:18:-;;;282:60;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;313:22:18;324:10;313;;;;:22;:::i;:::-;91:975;;732:159;-1:-1:-1;;;;;796:21:18;;;;788:30;;;;;;829:20;:7;841;829:11;;;;;;:20;:::i;:::-;864;;-1:-1:-1;;;;;864:20:18;;;;;;;;732:159;:::o;321:100:29:-;-1:-1:-1;;;;;390:19:29;:12;:19;;;;;;;;;;;:26;;-1:-1:-1;;390:26:29;412:4;390:26;;;321:100::o;91:975:18:-;;;;;;;", - "deployedSourceMap": "91:975:18:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;545:90;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;545:90:18;-1:-1:-1;;;;;545:90:18;;;;;;;641:85;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;641:85:18;-1:-1:-1;;;;;641:85:18;;;;;433:106;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;433:106:18;-1:-1:-1;;;;;433:106:18;;;;;;;;;;;;;;;;;;;;;;;545:90;388:20;397:10;388:8;:20::i;:::-;380:29;;;;;;;;609:19;620:7;609:10;:19::i;:::-;545:90;:::o;641:85::-;697:22;711:7;697:13;:22::i;433:106::-;489:4;512:20;489:4;524:7;512:20;:11;:20;:::i;:::-;505:27;433:106;-1:-1:-1;;433:106:18:o;732:159::-;-1:-1:-1;;;;;796:21:18;;;;788:30;;;;;;829:20;:7;841;829:20;:11;:20;:::i;:::-;864;;-1:-1:-1;;;;;864:20:18;;;;;;;;732:159;:::o;897:167::-;-1:-1:-1;;;;;964:21:18;;;;956:30;;;;;;997:23;:7;1012;997:23;:14;:23;:::i;:::-;1035:22;;-1:-1:-1;;;;;1035:22:18;;;;;;;;897:167;:::o;855:128:29:-;-1:-1:-1;;;;;959:19:29;938:4;959:19;;;;;;;;;;;;;;;855:128::o;321:100::-;-1:-1:-1;;;;;390:19:29;:12;:19;;;;;;;;;;;:26;;-1:-1:-1;;390:26:29;412:4;390:26;;;321:100::o;486:104::-;-1:-1:-1;;;;;558:19:29;580:5;558:19;;;;;;;;;;;:27;;-1:-1:-1;;558:27:29;;;486:104::o", - "source": "pragma solidity ^0.4.24;\n\nimport \"openzeppelin-solidity/contracts/access/rbac/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() 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", + "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", "ast": { "absolutePath": "/home/circleci/code/contracts/rates/roles/Pricer.sol", "exportedSymbols": { "PricerRole": [ - 5069 + 7545 ] }, - "id": 5070, + "id": 7546, "nodeType": "SourceUnit", "nodes": [ { - "id": 4951, + "id": 7424, "literals": [ "solidity", "^", @@ -104,57 +104,90 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:18" + "src": "0:24:28" }, { "absolutePath": "openzeppelin-solidity/contracts/access/rbac/Roles.sol", "file": "openzeppelin-solidity/contracts/access/rbac/Roles.sol", - "id": 4952, + "id": 7425, "nodeType": "ImportDirective", - "scope": 5070, - "sourceUnit": 6761, - "src": "26:63:18", + "scope": 7546, + "sourceUnit": 9509, + "src": "26:63:28", "symbolAliases": [], "unitAlias": "" }, { - "baseContracts": [], - "contractDependencies": [], + "absolutePath": "/home/circleci/code/contracts/rates/roles/IPricer.sol", + "file": "./IPricer.sol", + "id": 7426, + "nodeType": "ImportDirective", + "scope": 7546, + "sourceUnit": 7423, + "src": "90:23:28", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 7427, + "name": "IPricerRole", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7422, + "src": "138:11:28", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPricerRole_$7422", + "typeString": "contract IPricerRole" + } + }, + "id": 7428, + "nodeType": "InheritanceSpecifier", + "src": "138:11:28" + } + ], + "contractDependencies": [ + 7422 + ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 5069, + "id": 7545, "linearizedBaseContracts": [ - 5069 + 7545, + 7422 ], "name": "PricerRole", "nodeType": "ContractDefinition", "nodes": [ { - "id": 4955, + "id": 7431, "libraryName": { "contractScope": null, - "id": 4953, + "id": 7429, "name": "Roles", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6760, - "src": "123:5:18", + "referencedDeclaration": 9508, + "src": "162:5:28", "typeDescriptions": { - "typeIdentifier": "t_contract$_Roles_$6760", + "typeIdentifier": "t_contract$_Roles_$9508", "typeString": "library Roles" } }, "nodeType": "UsingForDirective", - "src": "117:27:18", + "src": "156:27:28", "typeName": { "contractScope": null, - "id": 4954, + "id": 7430, "name": "Roles.Role", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6697, - "src": "133:10:18", + "referencedDeclaration": 9445, + "src": "172:10:28", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$6697_storage_ptr", + "typeIdentifier": "t_struct$_Role_$9445_storage_ptr", "typeString": "struct Roles.Role" } } @@ -162,21 +195,21 @@ { "anonymous": false, "documentation": null, - "id": 4959, + "id": 7435, "name": "PricerAdded", "nodeType": "EventDefinition", "parameters": { - "id": 4958, + "id": 7434, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4957, + "id": 7433, "indexed": true, "name": "account", "nodeType": "VariableDeclaration", - "scope": 4959, - "src": "168:23:18", + "scope": 7435, + "src": "207:23:28", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -184,10 +217,10 @@ "typeString": "address" }, "typeName": { - "id": 4956, + "id": 7432, "name": "address", "nodeType": "ElementaryTypeName", - "src": "168:7:18", + "src": "207:7:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -197,28 +230,28 @@ "visibility": "internal" } ], - "src": "167:25:18" + "src": "206:25:28" }, - "src": "150:43:18" + "src": "189:43:28" }, { "anonymous": false, "documentation": null, - "id": 4963, + "id": 7439, "name": "PricerRemoved", "nodeType": "EventDefinition", "parameters": { - "id": 4962, + "id": 7438, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4961, + "id": 7437, "indexed": true, "name": "account", "nodeType": "VariableDeclaration", - "scope": 4963, - "src": "218:23:18", + "scope": 7439, + "src": "257:23:28", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -226,10 +259,10 @@ "typeString": "address" }, "typeName": { - "id": 4960, + "id": 7436, "name": "address", "nodeType": "ElementaryTypeName", - "src": "218:7:18", + "src": "257:7:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -239,32 +272,32 @@ "visibility": "internal" } ], - "src": "217:25:18" + "src": "256:25:28" }, - "src": "198:45:18" + "src": "237:45:28" }, { "constant": false, - "id": 4965, + "id": 7441, "name": "pricers", "nodeType": "VariableDeclaration", - "scope": 5069, - "src": "249:26:18", + "scope": 7545, + "src": "288:26:28", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$6697_storage", + "typeIdentifier": "t_struct$_Role_$9445_storage", "typeString": "struct Roles.Role" }, "typeName": { "contractScope": null, - "id": 4964, + "id": 7440, "name": "Roles.Role", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6697, - "src": "249:10:18", + "referencedDeclaration": 9445, + "src": "288:10:28", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$6697_storage_ptr", + "typeIdentifier": "t_struct$_Role_$9445_storage_ptr", "typeString": "struct Roles.Role" } }, @@ -273,9 +306,9 @@ }, { "body": { - "id": 4973, + "id": 7449, "nodeType": "Block", - "src": "303:39:18", + "src": "342:39:28", "statements": [ { "expression": { @@ -285,18 +318,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4969, + "id": 7445, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "324:3:18", + "referencedDeclaration": 10042, + "src": "363:3:28", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 4970, + "id": 7446, "isConstant": false, "isLValue": false, "isPure": false, @@ -304,7 +337,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "324:10:18", + "src": "363:10:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -318,18 +351,18 @@ "typeString": "address" } ], - "id": 4968, + "id": 7444, "name": "_addPricer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5044, - "src": "313:10:18", + "referencedDeclaration": 7520, + "src": "352:10:28", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 4971, + "id": 7447, "isConstant": false, "isLValue": false, "isPure": false, @@ -337,20 +370,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "313:22:18", + "src": "352:22:28", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4972, + "id": 7448, "nodeType": "ExpressionStatement", - "src": "313:22:18" + "src": "352:22:28" } ] }, "documentation": null, - "id": 4974, + "id": 7450, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -358,29 +391,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 4966, + "id": 7442, "nodeType": "ParameterList", "parameters": [], - "src": "293:2:18" + "src": "332:2:28" }, "payable": false, "returnParameters": { - "id": 4967, + "id": 7443, "nodeType": "ParameterList", "parameters": [], - "src": "303:0:18" + "src": "342:0:28" }, - "scope": 5069, - "src": "282:60:18", + "scope": 7545, + "src": "321:60:28", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 4984, + "id": 7460, "nodeType": "Block", - "src": "370:57:18", + "src": "409:57:28", "statements": [ { "expression": { @@ -393,18 +426,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4978, + "id": 7454, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "397:3:18", + "referencedDeclaration": 10042, + "src": "436:3:28", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 4979, + "id": 7455, "isConstant": false, "isLValue": false, "isPure": false, @@ -412,7 +445,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "397:10:18", + "src": "436:10:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -426,18 +459,20 @@ "typeString": "address" } ], - "id": 4977, + "id": 7453, "name": "isPricer", "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4998, - "src": "388:8:18", + "overloadedDeclarations": [ + 7474 + ], + "referencedDeclaration": 7474, + "src": "427:8:28", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view returns (bool)" } }, - "id": 4980, + "id": 7456, "isConstant": false, "isLValue": false, "isPure": false, @@ -445,7 +480,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "388:20:18", + "src": "427:20:28", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -459,21 +494,21 @@ "typeString": "bool" } ], - "id": 4976, + "id": 7452, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "380:7:18", + "referencedDeclaration": 10045, + "src": "419:7:28", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 4981, + "id": 7457, "isConstant": false, "isLValue": false, "isPure": false, @@ -481,41 +516,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "380:29:18", + "src": "419:29:28", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4982, + "id": 7458, "nodeType": "ExpressionStatement", - "src": "380:29:18" + "src": "419:29:28" }, { - "id": 4983, + "id": 7459, "nodeType": "PlaceholderStatement", - "src": "419:1:18" + "src": "458:1:28" } ] }, "documentation": null, - "id": 4985, + "id": 7461, "name": "onlyPricer", "nodeType": "ModifierDefinition", "parameters": { - "id": 4975, + "id": 7451, "nodeType": "ParameterList", "parameters": [], - "src": "367:2:18" + "src": "406:2:28" }, - "src": "348:79:18", + "src": "387:79:28", "visibility": "internal" }, { "body": { - "id": 4997, + "id": 7473, "nodeType": "Block", - "src": "495:44:18", + "src": "534:44:28", "statements": [ { "expression": { @@ -523,12 +558,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4994, + "id": 7470, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4987, - "src": "524:7:18", + "referencedDeclaration": 7463, + "src": "563:7:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -544,32 +579,32 @@ ], "expression": { "argumentTypes": null, - "id": 4992, + "id": 7468, "name": "pricers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4965, - "src": "512:7:18", + "referencedDeclaration": 7441, + "src": "551:7:28", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$6697_storage", + "typeIdentifier": "t_struct$_Role_$9445_storage", "typeString": "struct Roles.Role storage ref" } }, - "id": 4993, + "id": 7469, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "has", "nodeType": "MemberAccess", - "referencedDeclaration": 6759, - "src": "512:11:18", + "referencedDeclaration": 9507, + "src": "551:11:28", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$6697_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Role_$6697_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$9445_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Role_$9445_storage_ptr_$", "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)" } }, - "id": 4995, + "id": 7471, "isConstant": false, "isLValue": false, "isPure": false, @@ -577,21 +612,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "512:20:18", + "src": "551:20:28", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 4991, - "id": 4996, + "functionReturnParameters": 7467, + "id": 7472, "nodeType": "Return", - "src": "505:27:18" + "src": "544:27:28" } ] }, "documentation": null, - "id": 4998, + "id": 7474, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -599,16 +634,16 @@ "name": "isPricer", "nodeType": "FunctionDefinition", "parameters": { - "id": 4988, + "id": 7464, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4987, + "id": 7463, "name": "account", "nodeType": "VariableDeclaration", - "scope": 4998, - "src": "451:15:18", + "scope": 7474, + "src": "490:15:28", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -616,10 +651,10 @@ "typeString": "address" }, "typeName": { - "id": 4986, + "id": 7462, "name": "address", "nodeType": "ElementaryTypeName", - "src": "451:7:18", + "src": "490:7:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -629,20 +664,20 @@ "visibility": "internal" } ], - "src": "450:17:18" + "src": "489:17:28" }, "payable": false, "returnParameters": { - "id": 4991, + "id": 7467, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4990, + "id": 7466, "name": "", "nodeType": "VariableDeclaration", - "scope": 4998, - "src": "489:4:18", + "scope": 7474, + "src": "528:4:28", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -650,10 +685,10 @@ "typeString": "bool" }, "typeName": { - "id": 4989, + "id": 7465, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "489:4:18", + "src": "528:4:28", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -663,19 +698,19 @@ "visibility": "internal" } ], - "src": "488:6:18" + "src": "527:6:28" }, - "scope": 5069, - "src": "433:106:18", + "scope": 7545, + "src": "472:106:28", "stateMutability": "view", - "superFunction": null, + "superFunction": 7411, "visibility": "public" }, { "body": { - "id": 5009, + "id": 7485, "nodeType": "Block", - "src": "599:36:18", + "src": "638:36:28", "statements": [ { "expression": { @@ -683,12 +718,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5006, + "id": 7482, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5000, - "src": "620:7:18", + "referencedDeclaration": 7476, + "src": "659:7:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -702,18 +737,18 @@ "typeString": "address" } ], - "id": 5005, + "id": 7481, "name": "_addPricer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5044, - "src": "609:10:18", + "referencedDeclaration": 7520, + "src": "648:10:28", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 5007, + "id": 7483, "isConstant": false, "isLValue": false, "isPure": false, @@ -721,57 +756,57 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "609:19:18", + "src": "648:19:28", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5008, + "id": 7484, "nodeType": "ExpressionStatement", - "src": "609:19:18" + "src": "648:19:28" } ] }, "documentation": null, - "id": 5010, + "id": 7486, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 5003, + "id": 7479, "modifierName": { "argumentTypes": null, - "id": 5002, + "id": 7478, "name": "onlyPricer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4985, - "src": "588:10:18", + "referencedDeclaration": 7461, + "src": "627:10:28", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "588:10:18" + "src": "627:10:28" } ], "name": "addPricer", "nodeType": "FunctionDefinition", "parameters": { - "id": 5001, + "id": 7477, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5000, + "id": 7476, "name": "account", "nodeType": "VariableDeclaration", - "scope": 5010, - "src": "564:15:18", + "scope": 7486, + "src": "603:15:28", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -779,10 +814,10 @@ "typeString": "address" }, "typeName": { - "id": 4999, + "id": 7475, "name": "address", "nodeType": "ElementaryTypeName", - "src": "564:7:18", + "src": "603:7:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -792,26 +827,26 @@ "visibility": "internal" } ], - "src": "563:17:18" + "src": "602:17:28" }, "payable": false, "returnParameters": { - "id": 5004, + "id": 7480, "nodeType": "ParameterList", "parameters": [], - "src": "599:0:18" + "src": "638:0:28" }, - "scope": 5069, - "src": "545:90:18", + "scope": 7545, + "src": "584:90:28", "stateMutability": "nonpayable", - "superFunction": null, + "superFunction": 7416, "visibility": "public" }, { "body": { - "id": 5019, + "id": 7495, "nodeType": "Block", - "src": "687:39:18", + "src": "726:39:28", "statements": [ { "expression": { @@ -819,12 +854,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5016, + "id": 7492, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5012, - "src": "711:7:18", + "referencedDeclaration": 7488, + "src": "750:7:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -838,18 +873,18 @@ "typeString": "address" } ], - "id": 5015, + "id": 7491, "name": "_removePricer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5068, - "src": "697:13:18", + "referencedDeclaration": 7544, + "src": "736:13:28", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 5017, + "id": 7493, "isConstant": false, "isLValue": false, "isPure": false, @@ -857,20 +892,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "697:22:18", + "src": "736:22:28", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5018, + "id": 7494, "nodeType": "ExpressionStatement", - "src": "697:22:18" + "src": "736:22:28" } ] }, "documentation": null, - "id": 5020, + "id": 7496, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -878,16 +913,16 @@ "name": "removePricer", "nodeType": "FunctionDefinition", "parameters": { - "id": 5013, + "id": 7489, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5012, + "id": 7488, "name": "account", "nodeType": "VariableDeclaration", - "scope": 5020, - "src": "663:15:18", + "scope": 7496, + "src": "702:15:28", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -895,10 +930,10 @@ "typeString": "address" }, "typeName": { - "id": 5011, + "id": 7487, "name": "address", "nodeType": "ElementaryTypeName", - "src": "663:7:18", + "src": "702:7:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -908,26 +943,26 @@ "visibility": "internal" } ], - "src": "662:17:18" + "src": "701:17:28" }, "payable": false, "returnParameters": { - "id": 5014, + "id": 7490, "nodeType": "ParameterList", "parameters": [], - "src": "687:0:18" + "src": "726:0:28" }, - "scope": 5069, - "src": "641:85:18", + "scope": 7545, + "src": "680:85:28", "stateMutability": "nonpayable", - "superFunction": null, + "superFunction": 7421, "visibility": "public" }, { "body": { - "id": 5043, + "id": 7519, "nodeType": "Block", - "src": "778:113:18", + "src": "817:113:28", "statements": [ { "expression": { @@ -939,19 +974,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 5030, + "id": 7506, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5026, + "id": 7502, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5022, - "src": "796:7:18", + "referencedDeclaration": 7498, + "src": "835:7:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -965,14 +1000,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 5028, + "id": 7504, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "815:1:18", + "src": "854:1:28", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -988,20 +1023,20 @@ "typeString": "int_const 0" } ], - "id": 5027, + "id": 7503, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "807:7:18", + "src": "846:7:28", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 5029, + "id": 7505, "isConstant": false, "isLValue": false, "isPure": true, @@ -1009,13 +1044,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "807:10:18", + "src": "846:10:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "796:21:18", + "src": "835:21:28", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1029,21 +1064,21 @@ "typeString": "bool" } ], - "id": 5025, + "id": 7501, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "788:7:18", + "referencedDeclaration": 10045, + "src": "827:7:28", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5031, + "id": 7507, "isConstant": false, "isLValue": false, "isPure": false, @@ -1051,15 +1086,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "788:30:18", + "src": "827:30:28", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5032, + "id": 7508, "nodeType": "ExpressionStatement", - "src": "788:30:18" + "src": "827:30:28" }, { "expression": { @@ -1067,12 +1102,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5036, + "id": 7512, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5022, - "src": "841:7:18", + "referencedDeclaration": 7498, + "src": "880:7:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1088,32 +1123,32 @@ ], "expression": { "argumentTypes": null, - "id": 5033, + "id": 7509, "name": "pricers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4965, - "src": "829:7:18", + "referencedDeclaration": 7441, + "src": "868:7:28", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$6697_storage", + "typeIdentifier": "t_struct$_Role_$9445_storage", "typeString": "struct Roles.Role storage ref" } }, - "id": 5035, + "id": 7511, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 6713, - "src": "829:11:18", + "referencedDeclaration": 9461, + "src": "868:11:28", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$6697_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$6697_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$9445_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$9445_storage_ptr_$", "typeString": "function (struct Roles.Role storage pointer,address)" } }, - "id": 5037, + "id": 7513, "isConstant": false, "isLValue": false, "isPure": false, @@ -1121,15 +1156,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "829:20:18", + "src": "868:20:28", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5038, + "id": 7514, "nodeType": "ExpressionStatement", - "src": "829:20:18" + "src": "868:20:28" }, { "eventCall": { @@ -1137,12 +1172,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5040, + "id": 7516, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5022, - "src": "876:7:18", + "referencedDeclaration": 7498, + "src": "915:7:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1156,18 +1191,18 @@ "typeString": "address" } ], - "id": 5039, + "id": 7515, "name": "PricerAdded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4959, - "src": "864:11:18", + "referencedDeclaration": 7435, + "src": "903:11:28", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 5041, + "id": 7517, "isConstant": false, "isLValue": false, "isPure": false, @@ -1175,20 +1210,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "864:20:18", + "src": "903:20:28", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5042, + "id": 7518, "nodeType": "EmitStatement", - "src": "859:25:18" + "src": "898:25:28" } ] }, "documentation": null, - "id": 5044, + "id": 7520, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1196,16 +1231,16 @@ "name": "_addPricer", "nodeType": "FunctionDefinition", "parameters": { - "id": 5023, + "id": 7499, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5022, + "id": 7498, "name": "account", "nodeType": "VariableDeclaration", - "scope": 5044, - "src": "752:15:18", + "scope": 7520, + "src": "791:15:28", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1213,10 +1248,10 @@ "typeString": "address" }, "typeName": { - "id": 5021, + "id": 7497, "name": "address", "nodeType": "ElementaryTypeName", - "src": "752:7:18", + "src": "791:7:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1226,26 +1261,26 @@ "visibility": "internal" } ], - "src": "751:17:18" + "src": "790:17:28" }, "payable": false, "returnParameters": { - "id": 5024, + "id": 7500, "nodeType": "ParameterList", "parameters": [], - "src": "778:0:18" + "src": "817:0:28" }, - "scope": 5069, - "src": "732:159:18", + "scope": 7545, + "src": "771:159:28", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 5067, + "id": 7543, "nodeType": "Block", - "src": "946:118:18", + "src": "985:118:28", "statements": [ { "expression": { @@ -1257,19 +1292,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 5054, + "id": 7530, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5050, + "id": 7526, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5046, - "src": "964:7:18", + "referencedDeclaration": 7522, + "src": "1003:7:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1283,14 +1318,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 5052, + "id": 7528, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "983:1:18", + "src": "1022:1:28", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1306,20 +1341,20 @@ "typeString": "int_const 0" } ], - "id": 5051, + "id": 7527, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "975:7:18", + "src": "1014:7:28", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 5053, + "id": 7529, "isConstant": false, "isLValue": false, "isPure": true, @@ -1327,13 +1362,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "975:10:18", + "src": "1014:10:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "964:21:18", + "src": "1003:21:28", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1347,21 +1382,21 @@ "typeString": "bool" } ], - "id": 5049, + "id": 7525, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "956:7:18", + "referencedDeclaration": 10045, + "src": "995:7:28", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5055, + "id": 7531, "isConstant": false, "isLValue": false, "isPure": false, @@ -1369,15 +1404,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "956:30:18", + "src": "995:30:28", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5056, + "id": 7532, "nodeType": "ExpressionStatement", - "src": "956:30:18" + "src": "995:30:28" }, { "expression": { @@ -1385,12 +1420,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5060, + "id": 7536, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5046, - "src": "1012:7:18", + "referencedDeclaration": 7522, + "src": "1051:7:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1406,32 +1441,32 @@ ], "expression": { "argumentTypes": null, - "id": 5057, + "id": 7533, "name": "pricers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4965, - "src": "997:7:18", + "referencedDeclaration": 7441, + "src": "1036:7:28", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$6697_storage", + "typeIdentifier": "t_struct$_Role_$9445_storage", "typeString": "struct Roles.Role storage ref" } }, - "id": 5059, + "id": 7535, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "remove", "nodeType": "MemberAccess", - "referencedDeclaration": 6729, - "src": "997:14:18", + "referencedDeclaration": 9477, + "src": "1036:14:28", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$6697_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$6697_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$9445_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$9445_storage_ptr_$", "typeString": "function (struct Roles.Role storage pointer,address)" } }, - "id": 5061, + "id": 7537, "isConstant": false, "isLValue": false, "isPure": false, @@ -1439,15 +1474,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "997:23:18", + "src": "1036:23:28", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5062, + "id": 7538, "nodeType": "ExpressionStatement", - "src": "997:23:18" + "src": "1036:23:28" }, { "eventCall": { @@ -1455,12 +1490,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5064, + "id": 7540, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5046, - "src": "1049:7:18", + "referencedDeclaration": 7522, + "src": "1088:7:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1474,18 +1509,18 @@ "typeString": "address" } ], - "id": 5063, + "id": 7539, "name": "PricerRemoved", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4963, - "src": "1035:13:18", + "referencedDeclaration": 7439, + "src": "1074:13:28", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 5065, + "id": 7541, "isConstant": false, "isLValue": false, "isPure": false, @@ -1493,20 +1528,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1035:22:18", + "src": "1074:22:28", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5066, + "id": 7542, "nodeType": "EmitStatement", - "src": "1030:27:18" + "src": "1069:27:28" } ] }, "documentation": null, - "id": 5068, + "id": 7544, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1514,16 +1549,16 @@ "name": "_removePricer", "nodeType": "FunctionDefinition", "parameters": { - "id": 5047, + "id": 7523, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5046, + "id": 7522, "name": "account", "nodeType": "VariableDeclaration", - "scope": 5068, - "src": "920:15:18", + "scope": 7544, + "src": "959:15:28", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1531,10 +1566,10 @@ "typeString": "address" }, "typeName": { - "id": 5045, + "id": 7521, "name": "address", "nodeType": "ElementaryTypeName", - "src": "920:7:18", + "src": "959:7:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1544,40 +1579,40 @@ "visibility": "internal" } ], - "src": "919:17:18" + "src": "958:17:28" }, "payable": false, "returnParameters": { - "id": 5048, + "id": 7524, "nodeType": "ParameterList", "parameters": [], - "src": "946:0:18" + "src": "985:0:28" }, - "scope": 5069, - "src": "897:167:18", + "scope": 7545, + "src": "936:167:28", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" } ], - "scope": 5070, - "src": "91:975:18" + "scope": 7546, + "src": "115:990:28" } ], - "src": "0:1067:18" + "src": "0:1106:28" }, "legacyAST": { "absolutePath": "/home/circleci/code/contracts/rates/roles/Pricer.sol", "exportedSymbols": { "PricerRole": [ - 5069 + 7545 ] }, - "id": 5070, + "id": 7546, "nodeType": "SourceUnit", "nodes": [ { - "id": 4951, + "id": 7424, "literals": [ "solidity", "^", @@ -1585,57 +1620,90 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:18" + "src": "0:24:28" }, { "absolutePath": "openzeppelin-solidity/contracts/access/rbac/Roles.sol", "file": "openzeppelin-solidity/contracts/access/rbac/Roles.sol", - "id": 4952, + "id": 7425, "nodeType": "ImportDirective", - "scope": 5070, - "sourceUnit": 6761, - "src": "26:63:18", + "scope": 7546, + "sourceUnit": 9509, + "src": "26:63:28", "symbolAliases": [], "unitAlias": "" }, { - "baseContracts": [], - "contractDependencies": [], + "absolutePath": "/home/circleci/code/contracts/rates/roles/IPricer.sol", + "file": "./IPricer.sol", + "id": 7426, + "nodeType": "ImportDirective", + "scope": 7546, + "sourceUnit": 7423, + "src": "90:23:28", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 7427, + "name": "IPricerRole", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7422, + "src": "138:11:28", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IPricerRole_$7422", + "typeString": "contract IPricerRole" + } + }, + "id": 7428, + "nodeType": "InheritanceSpecifier", + "src": "138:11:28" + } + ], + "contractDependencies": [ + 7422 + ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 5069, + "id": 7545, "linearizedBaseContracts": [ - 5069 + 7545, + 7422 ], "name": "PricerRole", "nodeType": "ContractDefinition", "nodes": [ { - "id": 4955, + "id": 7431, "libraryName": { "contractScope": null, - "id": 4953, + "id": 7429, "name": "Roles", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6760, - "src": "123:5:18", + "referencedDeclaration": 9508, + "src": "162:5:28", "typeDescriptions": { - "typeIdentifier": "t_contract$_Roles_$6760", + "typeIdentifier": "t_contract$_Roles_$9508", "typeString": "library Roles" } }, "nodeType": "UsingForDirective", - "src": "117:27:18", + "src": "156:27:28", "typeName": { "contractScope": null, - "id": 4954, + "id": 7430, "name": "Roles.Role", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6697, - "src": "133:10:18", + "referencedDeclaration": 9445, + "src": "172:10:28", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$6697_storage_ptr", + "typeIdentifier": "t_struct$_Role_$9445_storage_ptr", "typeString": "struct Roles.Role" } } @@ -1643,21 +1711,21 @@ { "anonymous": false, "documentation": null, - "id": 4959, + "id": 7435, "name": "PricerAdded", "nodeType": "EventDefinition", "parameters": { - "id": 4958, + "id": 7434, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4957, + "id": 7433, "indexed": true, "name": "account", "nodeType": "VariableDeclaration", - "scope": 4959, - "src": "168:23:18", + "scope": 7435, + "src": "207:23:28", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1665,10 +1733,10 @@ "typeString": "address" }, "typeName": { - "id": 4956, + "id": 7432, "name": "address", "nodeType": "ElementaryTypeName", - "src": "168:7:18", + "src": "207:7:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1678,28 +1746,28 @@ "visibility": "internal" } ], - "src": "167:25:18" + "src": "206:25:28" }, - "src": "150:43:18" + "src": "189:43:28" }, { "anonymous": false, "documentation": null, - "id": 4963, + "id": 7439, "name": "PricerRemoved", "nodeType": "EventDefinition", "parameters": { - "id": 4962, + "id": 7438, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4961, + "id": 7437, "indexed": true, "name": "account", "nodeType": "VariableDeclaration", - "scope": 4963, - "src": "218:23:18", + "scope": 7439, + "src": "257:23:28", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1707,10 +1775,10 @@ "typeString": "address" }, "typeName": { - "id": 4960, + "id": 7436, "name": "address", "nodeType": "ElementaryTypeName", - "src": "218:7:18", + "src": "257:7:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1720,32 +1788,32 @@ "visibility": "internal" } ], - "src": "217:25:18" + "src": "256:25:28" }, - "src": "198:45:18" + "src": "237:45:28" }, { "constant": false, - "id": 4965, + "id": 7441, "name": "pricers", "nodeType": "VariableDeclaration", - "scope": 5069, - "src": "249:26:18", + "scope": 7545, + "src": "288:26:28", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$6697_storage", + "typeIdentifier": "t_struct$_Role_$9445_storage", "typeString": "struct Roles.Role" }, "typeName": { "contractScope": null, - "id": 4964, + "id": 7440, "name": "Roles.Role", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6697, - "src": "249:10:18", + "referencedDeclaration": 9445, + "src": "288:10:28", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$6697_storage_ptr", + "typeIdentifier": "t_struct$_Role_$9445_storage_ptr", "typeString": "struct Roles.Role" } }, @@ -1754,9 +1822,9 @@ }, { "body": { - "id": 4973, + "id": 7449, "nodeType": "Block", - "src": "303:39:18", + "src": "342:39:28", "statements": [ { "expression": { @@ -1766,18 +1834,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4969, + "id": 7445, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "324:3:18", + "referencedDeclaration": 10042, + "src": "363:3:28", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 4970, + "id": 7446, "isConstant": false, "isLValue": false, "isPure": false, @@ -1785,7 +1853,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "324:10:18", + "src": "363:10:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1799,18 +1867,18 @@ "typeString": "address" } ], - "id": 4968, + "id": 7444, "name": "_addPricer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5044, - "src": "313:10:18", + "referencedDeclaration": 7520, + "src": "352:10:28", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 4971, + "id": 7447, "isConstant": false, "isLValue": false, "isPure": false, @@ -1818,20 +1886,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "313:22:18", + "src": "352:22:28", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4972, + "id": 7448, "nodeType": "ExpressionStatement", - "src": "313:22:18" + "src": "352:22:28" } ] }, "documentation": null, - "id": 4974, + "id": 7450, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -1839,29 +1907,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 4966, + "id": 7442, "nodeType": "ParameterList", "parameters": [], - "src": "293:2:18" + "src": "332:2:28" }, "payable": false, "returnParameters": { - "id": 4967, + "id": 7443, "nodeType": "ParameterList", "parameters": [], - "src": "303:0:18" + "src": "342:0:28" }, - "scope": 5069, - "src": "282:60:18", + "scope": 7545, + "src": "321:60:28", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 4984, + "id": 7460, "nodeType": "Block", - "src": "370:57:18", + "src": "409:57:28", "statements": [ { "expression": { @@ -1874,18 +1942,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4978, + "id": 7454, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "397:3:18", + "referencedDeclaration": 10042, + "src": "436:3:28", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 4979, + "id": 7455, "isConstant": false, "isLValue": false, "isPure": false, @@ -1893,7 +1961,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "397:10:18", + "src": "436:10:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1907,18 +1975,20 @@ "typeString": "address" } ], - "id": 4977, + "id": 7453, "name": "isPricer", "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4998, - "src": "388:8:18", + "overloadedDeclarations": [ + 7474 + ], + "referencedDeclaration": 7474, + "src": "427:8:28", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view returns (bool)" } }, - "id": 4980, + "id": 7456, "isConstant": false, "isLValue": false, "isPure": false, @@ -1926,7 +1996,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "388:20:18", + "src": "427:20:28", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1940,21 +2010,21 @@ "typeString": "bool" } ], - "id": 4976, + "id": 7452, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "380:7:18", + "referencedDeclaration": 10045, + "src": "419:7:28", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 4981, + "id": 7457, "isConstant": false, "isLValue": false, "isPure": false, @@ -1962,41 +2032,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "380:29:18", + "src": "419:29:28", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4982, + "id": 7458, "nodeType": "ExpressionStatement", - "src": "380:29:18" + "src": "419:29:28" }, { - "id": 4983, + "id": 7459, "nodeType": "PlaceholderStatement", - "src": "419:1:18" + "src": "458:1:28" } ] }, "documentation": null, - "id": 4985, + "id": 7461, "name": "onlyPricer", "nodeType": "ModifierDefinition", "parameters": { - "id": 4975, + "id": 7451, "nodeType": "ParameterList", "parameters": [], - "src": "367:2:18" + "src": "406:2:28" }, - "src": "348:79:18", + "src": "387:79:28", "visibility": "internal" }, { "body": { - "id": 4997, + "id": 7473, "nodeType": "Block", - "src": "495:44:18", + "src": "534:44:28", "statements": [ { "expression": { @@ -2004,12 +2074,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4994, + "id": 7470, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4987, - "src": "524:7:18", + "referencedDeclaration": 7463, + "src": "563:7:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2025,32 +2095,32 @@ ], "expression": { "argumentTypes": null, - "id": 4992, + "id": 7468, "name": "pricers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4965, - "src": "512:7:18", + "referencedDeclaration": 7441, + "src": "551:7:28", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$6697_storage", + "typeIdentifier": "t_struct$_Role_$9445_storage", "typeString": "struct Roles.Role storage ref" } }, - "id": 4993, + "id": 7469, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "has", "nodeType": "MemberAccess", - "referencedDeclaration": 6759, - "src": "512:11:18", + "referencedDeclaration": 9507, + "src": "551:11:28", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$6697_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Role_$6697_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$9445_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Role_$9445_storage_ptr_$", "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)" } }, - "id": 4995, + "id": 7471, "isConstant": false, "isLValue": false, "isPure": false, @@ -2058,21 +2128,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "512:20:18", + "src": "551:20:28", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 4991, - "id": 4996, + "functionReturnParameters": 7467, + "id": 7472, "nodeType": "Return", - "src": "505:27:18" + "src": "544:27:28" } ] }, "documentation": null, - "id": 4998, + "id": 7474, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2080,16 +2150,16 @@ "name": "isPricer", "nodeType": "FunctionDefinition", "parameters": { - "id": 4988, + "id": 7464, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4987, + "id": 7463, "name": "account", "nodeType": "VariableDeclaration", - "scope": 4998, - "src": "451:15:18", + "scope": 7474, + "src": "490:15:28", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2097,10 +2167,10 @@ "typeString": "address" }, "typeName": { - "id": 4986, + "id": 7462, "name": "address", "nodeType": "ElementaryTypeName", - "src": "451:7:18", + "src": "490:7:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2110,20 +2180,20 @@ "visibility": "internal" } ], - "src": "450:17:18" + "src": "489:17:28" }, "payable": false, "returnParameters": { - "id": 4991, + "id": 7467, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4990, + "id": 7466, "name": "", "nodeType": "VariableDeclaration", - "scope": 4998, - "src": "489:4:18", + "scope": 7474, + "src": "528:4:28", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2131,10 +2201,10 @@ "typeString": "bool" }, "typeName": { - "id": 4989, + "id": 7465, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "489:4:18", + "src": "528:4:28", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2144,19 +2214,19 @@ "visibility": "internal" } ], - "src": "488:6:18" + "src": "527:6:28" }, - "scope": 5069, - "src": "433:106:18", + "scope": 7545, + "src": "472:106:28", "stateMutability": "view", - "superFunction": null, + "superFunction": 7411, "visibility": "public" }, { "body": { - "id": 5009, + "id": 7485, "nodeType": "Block", - "src": "599:36:18", + "src": "638:36:28", "statements": [ { "expression": { @@ -2164,12 +2234,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5006, + "id": 7482, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5000, - "src": "620:7:18", + "referencedDeclaration": 7476, + "src": "659:7:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2183,18 +2253,18 @@ "typeString": "address" } ], - "id": 5005, + "id": 7481, "name": "_addPricer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5044, - "src": "609:10:18", + "referencedDeclaration": 7520, + "src": "648:10:28", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 5007, + "id": 7483, "isConstant": false, "isLValue": false, "isPure": false, @@ -2202,57 +2272,57 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "609:19:18", + "src": "648:19:28", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5008, + "id": 7484, "nodeType": "ExpressionStatement", - "src": "609:19:18" + "src": "648:19:28" } ] }, "documentation": null, - "id": 5010, + "id": 7486, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 5003, + "id": 7479, "modifierName": { "argumentTypes": null, - "id": 5002, + "id": 7478, "name": "onlyPricer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4985, - "src": "588:10:18", + "referencedDeclaration": 7461, + "src": "627:10:28", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "588:10:18" + "src": "627:10:28" } ], "name": "addPricer", "nodeType": "FunctionDefinition", "parameters": { - "id": 5001, + "id": 7477, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5000, + "id": 7476, "name": "account", "nodeType": "VariableDeclaration", - "scope": 5010, - "src": "564:15:18", + "scope": 7486, + "src": "603:15:28", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2260,10 +2330,10 @@ "typeString": "address" }, "typeName": { - "id": 4999, + "id": 7475, "name": "address", "nodeType": "ElementaryTypeName", - "src": "564:7:18", + "src": "603:7:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2273,26 +2343,26 @@ "visibility": "internal" } ], - "src": "563:17:18" + "src": "602:17:28" }, "payable": false, "returnParameters": { - "id": 5004, + "id": 7480, "nodeType": "ParameterList", "parameters": [], - "src": "599:0:18" + "src": "638:0:28" }, - "scope": 5069, - "src": "545:90:18", + "scope": 7545, + "src": "584:90:28", "stateMutability": "nonpayable", - "superFunction": null, + "superFunction": 7416, "visibility": "public" }, { "body": { - "id": 5019, + "id": 7495, "nodeType": "Block", - "src": "687:39:18", + "src": "726:39:28", "statements": [ { "expression": { @@ -2300,12 +2370,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5016, + "id": 7492, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5012, - "src": "711:7:18", + "referencedDeclaration": 7488, + "src": "750:7:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2319,18 +2389,18 @@ "typeString": "address" } ], - "id": 5015, + "id": 7491, "name": "_removePricer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5068, - "src": "697:13:18", + "referencedDeclaration": 7544, + "src": "736:13:28", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 5017, + "id": 7493, "isConstant": false, "isLValue": false, "isPure": false, @@ -2338,20 +2408,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "697:22:18", + "src": "736:22:28", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5018, + "id": 7494, "nodeType": "ExpressionStatement", - "src": "697:22:18" + "src": "736:22:28" } ] }, "documentation": null, - "id": 5020, + "id": 7496, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -2359,16 +2429,16 @@ "name": "removePricer", "nodeType": "FunctionDefinition", "parameters": { - "id": 5013, + "id": 7489, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5012, + "id": 7488, "name": "account", "nodeType": "VariableDeclaration", - "scope": 5020, - "src": "663:15:18", + "scope": 7496, + "src": "702:15:28", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2376,10 +2446,10 @@ "typeString": "address" }, "typeName": { - "id": 5011, + "id": 7487, "name": "address", "nodeType": "ElementaryTypeName", - "src": "663:7:18", + "src": "702:7:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2389,26 +2459,26 @@ "visibility": "internal" } ], - "src": "662:17:18" + "src": "701:17:28" }, "payable": false, "returnParameters": { - "id": 5014, + "id": 7490, "nodeType": "ParameterList", "parameters": [], - "src": "687:0:18" + "src": "726:0:28" }, - "scope": 5069, - "src": "641:85:18", + "scope": 7545, + "src": "680:85:28", "stateMutability": "nonpayable", - "superFunction": null, + "superFunction": 7421, "visibility": "public" }, { "body": { - "id": 5043, + "id": 7519, "nodeType": "Block", - "src": "778:113:18", + "src": "817:113:28", "statements": [ { "expression": { @@ -2420,19 +2490,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 5030, + "id": 7506, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5026, + "id": 7502, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5022, - "src": "796:7:18", + "referencedDeclaration": 7498, + "src": "835:7:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2446,14 +2516,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 5028, + "id": 7504, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "815:1:18", + "src": "854:1:28", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2469,20 +2539,20 @@ "typeString": "int_const 0" } ], - "id": 5027, + "id": 7503, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "807:7:18", + "src": "846:7:28", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 5029, + "id": 7505, "isConstant": false, "isLValue": false, "isPure": true, @@ -2490,13 +2560,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "807:10:18", + "src": "846:10:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "796:21:18", + "src": "835:21:28", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2510,21 +2580,21 @@ "typeString": "bool" } ], - "id": 5025, + "id": 7501, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "788:7:18", + "referencedDeclaration": 10045, + "src": "827:7:28", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5031, + "id": 7507, "isConstant": false, "isLValue": false, "isPure": false, @@ -2532,15 +2602,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "788:30:18", + "src": "827:30:28", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5032, + "id": 7508, "nodeType": "ExpressionStatement", - "src": "788:30:18" + "src": "827:30:28" }, { "expression": { @@ -2548,12 +2618,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5036, + "id": 7512, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5022, - "src": "841:7:18", + "referencedDeclaration": 7498, + "src": "880:7:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2569,32 +2639,32 @@ ], "expression": { "argumentTypes": null, - "id": 5033, + "id": 7509, "name": "pricers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4965, - "src": "829:7:18", + "referencedDeclaration": 7441, + "src": "868:7:28", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$6697_storage", + "typeIdentifier": "t_struct$_Role_$9445_storage", "typeString": "struct Roles.Role storage ref" } }, - "id": 5035, + "id": 7511, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 6713, - "src": "829:11:18", + "referencedDeclaration": 9461, + "src": "868:11:28", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$6697_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$6697_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$9445_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$9445_storage_ptr_$", "typeString": "function (struct Roles.Role storage pointer,address)" } }, - "id": 5037, + "id": 7513, "isConstant": false, "isLValue": false, "isPure": false, @@ -2602,15 +2672,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "829:20:18", + "src": "868:20:28", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5038, + "id": 7514, "nodeType": "ExpressionStatement", - "src": "829:20:18" + "src": "868:20:28" }, { "eventCall": { @@ -2618,12 +2688,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5040, + "id": 7516, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5022, - "src": "876:7:18", + "referencedDeclaration": 7498, + "src": "915:7:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2637,18 +2707,18 @@ "typeString": "address" } ], - "id": 5039, + "id": 7515, "name": "PricerAdded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4959, - "src": "864:11:18", + "referencedDeclaration": 7435, + "src": "903:11:28", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 5041, + "id": 7517, "isConstant": false, "isLValue": false, "isPure": false, @@ -2656,20 +2726,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "864:20:18", + "src": "903:20:28", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5042, + "id": 7518, "nodeType": "EmitStatement", - "src": "859:25:18" + "src": "898:25:28" } ] }, "documentation": null, - "id": 5044, + "id": 7520, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -2677,16 +2747,16 @@ "name": "_addPricer", "nodeType": "FunctionDefinition", "parameters": { - "id": 5023, + "id": 7499, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5022, + "id": 7498, "name": "account", "nodeType": "VariableDeclaration", - "scope": 5044, - "src": "752:15:18", + "scope": 7520, + "src": "791:15:28", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2694,10 +2764,10 @@ "typeString": "address" }, "typeName": { - "id": 5021, + "id": 7497, "name": "address", "nodeType": "ElementaryTypeName", - "src": "752:7:18", + "src": "791:7:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2707,26 +2777,26 @@ "visibility": "internal" } ], - "src": "751:17:18" + "src": "790:17:28" }, "payable": false, "returnParameters": { - "id": 5024, + "id": 7500, "nodeType": "ParameterList", "parameters": [], - "src": "778:0:18" + "src": "817:0:28" }, - "scope": 5069, - "src": "732:159:18", + "scope": 7545, + "src": "771:159:28", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 5067, + "id": 7543, "nodeType": "Block", - "src": "946:118:18", + "src": "985:118:28", "statements": [ { "expression": { @@ -2738,19 +2808,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 5054, + "id": 7530, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5050, + "id": 7526, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5046, - "src": "964:7:18", + "referencedDeclaration": 7522, + "src": "1003:7:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2764,14 +2834,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 5052, + "id": 7528, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "983:1:18", + "src": "1022:1:28", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2787,20 +2857,20 @@ "typeString": "int_const 0" } ], - "id": 5051, + "id": 7527, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "975:7:18", + "src": "1014:7:28", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 5053, + "id": 7529, "isConstant": false, "isLValue": false, "isPure": true, @@ -2808,13 +2878,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "975:10:18", + "src": "1014:10:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "964:21:18", + "src": "1003:21:28", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2828,21 +2898,21 @@ "typeString": "bool" } ], - "id": 5049, + "id": 7525, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "956:7:18", + "referencedDeclaration": 10045, + "src": "995:7:28", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5055, + "id": 7531, "isConstant": false, "isLValue": false, "isPure": false, @@ -2850,15 +2920,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "956:30:18", + "src": "995:30:28", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5056, + "id": 7532, "nodeType": "ExpressionStatement", - "src": "956:30:18" + "src": "995:30:28" }, { "expression": { @@ -2866,12 +2936,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5060, + "id": 7536, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5046, - "src": "1012:7:18", + "referencedDeclaration": 7522, + "src": "1051:7:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2887,32 +2957,32 @@ ], "expression": { "argumentTypes": null, - "id": 5057, + "id": 7533, "name": "pricers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4965, - "src": "997:7:18", + "referencedDeclaration": 7441, + "src": "1036:7:28", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$6697_storage", + "typeIdentifier": "t_struct$_Role_$9445_storage", "typeString": "struct Roles.Role storage ref" } }, - "id": 5059, + "id": 7535, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "remove", "nodeType": "MemberAccess", - "referencedDeclaration": 6729, - "src": "997:14:18", + "referencedDeclaration": 9477, + "src": "1036:14:28", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$6697_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$6697_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$9445_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$9445_storage_ptr_$", "typeString": "function (struct Roles.Role storage pointer,address)" } }, - "id": 5061, + "id": 7537, "isConstant": false, "isLValue": false, "isPure": false, @@ -2920,15 +2990,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "997:23:18", + "src": "1036:23:28", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5062, + "id": 7538, "nodeType": "ExpressionStatement", - "src": "997:23:18" + "src": "1036:23:28" }, { "eventCall": { @@ -2936,12 +3006,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5064, + "id": 7540, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5046, - "src": "1049:7:18", + "referencedDeclaration": 7522, + "src": "1088:7:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2955,18 +3025,18 @@ "typeString": "address" } ], - "id": 5063, + "id": 7539, "name": "PricerRemoved", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4963, - "src": "1035:13:18", + "referencedDeclaration": 7439, + "src": "1074:13:28", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 5065, + "id": 7541, "isConstant": false, "isLValue": false, "isPure": false, @@ -2974,20 +3044,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1035:22:18", + "src": "1074:22:28", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5066, + "id": 7542, "nodeType": "EmitStatement", - "src": "1030:27:18" + "src": "1069:27:28" } ] }, "documentation": null, - "id": 5068, + "id": 7544, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -2995,16 +3065,16 @@ "name": "_removePricer", "nodeType": "FunctionDefinition", "parameters": { - "id": 5047, + "id": 7523, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5046, + "id": 7522, "name": "account", "nodeType": "VariableDeclaration", - "scope": 5068, - "src": "920:15:18", + "scope": 7544, + "src": "959:15:28", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3012,10 +3082,10 @@ "typeString": "address" }, "typeName": { - "id": 5045, + "id": 7521, "name": "address", "nodeType": "ElementaryTypeName", - "src": "920:7:18", + "src": "959:7:28", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3025,27 +3095,27 @@ "visibility": "internal" } ], - "src": "919:17:18" + "src": "958:17:28" }, "payable": false, "returnParameters": { - "id": 5048, + "id": 7524, "nodeType": "ParameterList", "parameters": [], - "src": "946:0:18" + "src": "985:0:28" }, - "scope": 5069, - "src": "897:167:18", + "scope": 7545, + "src": "936:167:28", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" } ], - "scope": 5070, - "src": "91:975:18" + "scope": 7546, + "src": "115:990:28" } ], - "src": "0:1067:18" + "src": "0:1106:28" }, "compiler": { "name": "solc", @@ -3053,5 +3123,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-02T11:52:56.758Z" + "updatedAt": "2018-10-22T07:56:01.682Z" } \ No newline at end of file diff --git a/build/contracts/PurchaseProcessing.json b/build/contracts/PurchaseProcessing.json new file mode 100644 index 00000000..99096595 --- /dev/null +++ b/build/contracts/PurchaseProcessing.json @@ -0,0 +1,19701 @@ +{ + "contractName": "PurchaseProcessing", + "abi": [], + "bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a7230582091634acfa9685fefa92b43760d5301d1fb68f95eddbf8a144e7d0d6923e61e870029", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a7230582091634acfa9685fefa92b43760d5301d1fb68f95eddbf8a144e7d0d6923e61e870029", + "sourceMap": "228:6443: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:6443: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 paymentAmount,\n uint methodUSDRate,\n uint tokenUSDRate,\n uint currentBalanceInTokens,\n uint tokenDecimals,\n uint methodDecimals\n ) internal pure returns(bool result) {\n result = paymentAmount > 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 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", + "sourcePath": "/home/circleci/code/contracts/libs/PurchaseProcessing.sol", + "ast": { + "absolutePath": "/home/circleci/code/contracts/libs/PurchaseProcessing.sol", + "exportedSymbols": { + "PurchaseProcessing": [ + 5854 + ] + }, + "id": 5855, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 5171, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:15" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", + "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", + "id": 5172, + "nodeType": "ImportDirective", + "scope": 5855, + "sourceUnit": 9603, + "src": "26:59:15", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", + "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", + "id": 5173, + "nodeType": "ImportDirective", + "scope": 5855, + "sourceUnit": 9766, + "src": "86:63:15", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/libs/Percent.sol", + "file": "./Percent.sol", + "id": 5174, + "nodeType": "ImportDirective", + "scope": 5855, + "sourceUnit": 5104, + "src": "150:23:15", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/libs/Utils.sol", + "file": "./Utils.sol", + "id": 5175, + "nodeType": "ImportDirective", + "scope": 5855, + "sourceUnit": 6061, + "src": "174:21:15", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/token/IWToken.sol", + "file": "../token/IWToken.sol", + "id": 5176, + "nodeType": "ImportDirective", + "scope": 5855, + "sourceUnit": 7631, + "src": "196:30:15", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 5854, + "linearizedBaseContracts": [ + 5854 + ], + "name": "PurchaseProcessing", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 5179, + "libraryName": { + "contractScope": null, + "id": 5177, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9602, + "src": "267:8:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$9602", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "261:24:15", + "typeName": { + "id": 5178, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "280:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 5182, + "libraryName": { + "contractScope": null, + "id": 5180, + "name": "Percent", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5103, + "src": "296:7:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Percent_$5103", + "typeString": "library Percent" + } + }, + "nodeType": "UsingForDirective", + "src": "290:23:15", + "typeName": { + "id": 5181, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "308:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "body": { + "id": 5191, + "nodeType": "Block", + "src": "373:24:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "455448", + "id": 5188, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "389:5:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_aaaebeba3810b1e6b70781f14b2d72c1cb89c0b2b320c43bb67ff79f562f5ff4", + "typeString": "literal_string \"ETH\"" + }, + "value": "ETH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_aaaebeba3810b1e6b70781f14b2d72c1cb89c0b2b320c43bb67ff79f562f5ff4", + "typeString": "literal_string \"ETH\"" + } + ], + "id": 5187, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "381:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": "bytes32" + }, + "id": 5189, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "381:14:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 5186, + "id": 5190, + "nodeType": "Return", + "src": "374:21:15" + } + ] + }, + "documentation": null, + "id": 5192, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "METHOD_ETH", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5183, + "nodeType": "ParameterList", + "parameters": [], + "src": "338:2:15" + }, + "payable": false, + "returnParameters": { + "id": 5186, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5185, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5192, + "src": "364:7:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5184, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "364:7:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "363:9:15" + }, + "scope": 5854, + "src": "319:78:15", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5245, + "nodeType": "Block", + "src": "672:271:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5229, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5211, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5209, + "src": "682:6:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5228, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5218, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5214, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5212, + "name": "paymentAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5196, + "src": "691:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5213, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "707:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "691:17:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5217, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5215, + "name": "methodUSDRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5198, + "src": "724:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5216, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "740:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "724:17:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "691:50:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5221, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5219, + "name": "tokenUSDRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5200, + "src": "757:12:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5220, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "772:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "757:16:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "691:82:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5223, + "name": "currentBalanceInTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5202, + "src": "789:22:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 5224, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "815:2:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "id": 5225, + "name": "tokenDecimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5204, + "src": "821:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "815:19:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "789:45:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "691:143:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "682:152:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5230, + "nodeType": "ExpressionStatement", + "src": "682:152:15" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 5234, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5231, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5194, + "src": "849:6:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5232, + "name": "METHOD_ETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5192, + "src": "859:10:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 5233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "859:12:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "849:22:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5244, + "nodeType": "IfStatement", + "src": "845:92:15", + "trueBody": { + "id": 5243, + "nodeType": "Block", + "src": "873:64:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5241, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5235, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5209, + "src": "887:6:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5240, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5236, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5209, + "src": "896:6:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5237, + "name": "methodDecimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5206, + "src": "906:14:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3138", + "id": 5238, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "924:2:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "src": "906:20:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "896:30:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "887:39:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5242, + "nodeType": "ExpressionStatement", + "src": "887:39:15" + } + ] + } + } + ] + }, + "documentation": null, + "id": 5246, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "checkInvoiceInput", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5207, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5194, + "name": "method", + "nodeType": "VariableDeclaration", + "scope": 5246, + "src": "439:14:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5193, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "439:7:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5196, + "name": "paymentAmount", + "nodeType": "VariableDeclaration", + "scope": 5246, + "src": "463:18:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5195, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "463:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5198, + "name": "methodUSDRate", + "nodeType": "VariableDeclaration", + "scope": 5246, + "src": "491:18:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5197, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "491:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5200, + "name": "tokenUSDRate", + "nodeType": "VariableDeclaration", + "scope": 5246, + "src": "519:17:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5199, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "519:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5202, + "name": "currentBalanceInTokens", + "nodeType": "VariableDeclaration", + "scope": 5246, + "src": "546:27:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5201, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "546:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5204, + "name": "tokenDecimals", + "nodeType": "VariableDeclaration", + "scope": 5246, + "src": "583:18:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5203, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "583:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5206, + "name": "methodDecimals", + "nodeType": "VariableDeclaration", + "scope": 5246, + "src": "611:19:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5205, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "611:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "429:207:15" + }, + "payable": false, + "returnParameters": { + "id": 5210, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5209, + "name": "result", + "nodeType": "VariableDeclaration", + "scope": 5246, + "src": "659:11:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5208, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "659:4:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "658:13:15" + }, + "scope": 5854, + "src": "403:540:15", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5438, + "nodeType": "Block", + "src": "2349:1620:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5277, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5248, + "src": "2398:6:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 5278, + "name": "paymentAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5250, + "src": "2418:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5279, + "name": "methodUSDRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5260, + "src": "2445:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5280, + "name": "tokenUSDRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5262, + "src": "2472:12:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5281, + "name": "currentBalanceInTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5268, + "src": "2498:22:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5282, + "name": "tokenDecimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "2534:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5283, + "name": "methodDecimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5266, + "src": "2561:14:15", + "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_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5276, + "name": "checkInvoiceInput", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5246, + "src": "2367:17:15", + "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": 5284, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2367:218:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5275, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "2359:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2359:227:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5286, + "nodeType": "ExpressionStatement", + "src": "2359:227:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 5296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5287, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5273, + "src": "2616:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 5289, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5288, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2623:1:15", + "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": "2616:9:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5292, + "name": "paymentAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5250, + "src": "2668:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5293, + "name": "methodDecimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5266, + "src": "2695:14:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5294, + "name": "methodUSDRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5260, + "src": "2723:13:15", + "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": 5290, + "name": "Utils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6060, + "src": "2628:5:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Utils_$6060_$", + "typeString": "type(library Utils)" + } + }, + "id": 5291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeConversionByRate", + "nodeType": "MemberAccess", + "referencedDeclaration": 5905, + "src": "2628:26:15", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 5295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2628:118:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2616:130:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5297, + "nodeType": "ExpressionStatement", + "src": "2616:130:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5299, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5273, + "src": "2803:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 5301, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5300, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2810:1:15", + "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": "2803:9:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 5302, + "name": "tokenUSDRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5262, + "src": "2816:12:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2803:25:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5298, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "2795:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2795:34:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5305, + "nodeType": "ExpressionStatement", + "src": "2795:34:15" + }, + { + "assignments": [ + 5307 + ], + "declarations": [ + { + "constant": false, + "id": 5307, + "name": "bonus", + "nodeType": "VariableDeclaration", + "scope": 5439, + "src": "2840:10:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5306, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2840:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5315, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5309, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5273, + "src": "2862:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 5311, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5310, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2869:1:15", + "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": "2862:9:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5312, + "name": "volumeBoundaries", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5255, + "src": "2873:16:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "argumentTypes": null, + "id": 5313, + "name": "volumeBonuses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5258, + "src": "2891:13:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + ], + "id": 5308, + "name": "getBonus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5853, + "src": "2853:8:15", + "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": 5314, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2853:52:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2840:65:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 5332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5316, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5273, + "src": "2936:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 5318, + "indexExpression": { + "argumentTypes": null, + "hexValue": "34", + "id": 5317, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2943:1:15", + "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": "2936:9:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5321, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5319, + "name": "discount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5252, + "src": "2948:8:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5320, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2959:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2948:12:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "id": 5330, + "name": "tokenUSDRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5262, + "src": "3036:12:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5331, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "2948:100:15", + "trueExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5328, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 5324, + "name": "Percent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5103, + "src": "2996:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Percent_$5103_$", + "typeString": "type(library Percent)" + } + }, + "id": 5325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "MAX", + "nodeType": "MemberAccess", + "referencedDeclaration": 5003, + "src": "2996:11:15", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$__$returns$_t_uint256_$", + "typeString": "function () pure returns (uint256)" + } + }, + "id": 5326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2996:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 5327, + "name": "discount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5252, + "src": "3012:8:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2996:24:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5322, + "name": "tokenUSDRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5262, + "src": "2975:12:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "percent", + "nodeType": "MemberAccess", + "referencedDeclaration": 5022, + "src": "2975:20:15", + "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": 5329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2975:46:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2936:112:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5333, + "nodeType": "ExpressionStatement", + "src": "2936:112:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 5355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5334, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5273, + "src": "3077:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 5336, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5335, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3084:1:15", + "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": "3077:9:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5347, + "name": "bonus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5307, + "src": "3176:5:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 5343, + "name": "Percent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5103, + "src": "3158:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Percent_$5103_$", + "typeString": "type(library Percent)" + } + }, + "id": 5344, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "MAX", + "nodeType": "MemberAccess", + "referencedDeclaration": 5003, + "src": "3158:11:15", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$__$returns$_t_uint256_$", + "typeString": "function () pure returns (uint256)" + } + }, + "id": 5345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3158:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5346, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9601, + "src": "3158:17:15", + "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": 5348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3158:24:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5339, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5273, + "src": "3136:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 5341, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5340, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3143:1:15", + "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": "3136:9:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5342, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 5040, + "src": "3136:21:15", + "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": 5349, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3136:47:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5350, + "name": "tokenDecimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "3197:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5351, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5273, + "src": "3224:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 5353, + "indexExpression": { + "argumentTypes": null, + "hexValue": "34", + "id": 5352, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3231:1:15", + "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": "3224:9:15", + "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": 5337, + "name": "Utils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6060, + "src": "3089:5:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Utils_$6060_$", + "typeString": "type(library Utils)" + } + }, + "id": 5338, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeReverseConversionByRate", + "nodeType": "MemberAccess", + "referencedDeclaration": 5941, + "src": "3089:33:15", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 5354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3089:154:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3077:166:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5356, + "nodeType": "ExpressionStatement", + "src": "3077:166:15" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5361, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5357, + "name": "currentBalanceInTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5268, + "src": "3302:22:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5358, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5273, + "src": "3327:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 5360, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5359, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3334:1:15", + "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": "3327:9:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3302:34:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5382, + "nodeType": "IfStatement", + "src": "3298:263:15", + "trueBody": { + "id": 5381, + "nodeType": "Block", + "src": "3338:223:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5362, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5273, + "src": "3352:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 5364, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5363, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3359:1:15", + "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": "3352:9:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5367, + "name": "currentBalanceInTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5268, + "src": "3408:22:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5368, + "name": "tokenDecimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "3448:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5369, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5273, + "src": "3479:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 5371, + "indexExpression": { + "argumentTypes": null, + "hexValue": "34", + "id": 5370, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3486:1:15", + "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": "3479:9:15", + "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": 5365, + "name": "Utils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6060, + "src": "3364:5:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Utils_$6060_$", + "typeString": "type(library Utils)" + } + }, + "id": 5366, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeConversionByRate", + "nodeType": "MemberAccess", + "referencedDeclaration": 5905, + "src": "3364:26:15", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 5372, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3364:138:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3352:150:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5374, + "nodeType": "ExpressionStatement", + "src": "3352:150:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 5379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5375, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5273, + "src": "3516:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 5377, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5376, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3523:1:15", + "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": "3516:9:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5378, + "name": "currentBalanceInTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5268, + "src": "3528:22:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3516:34:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5380, + "nodeType": "ExpressionStatement", + "src": "3516:34:15" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 5394, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5383, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5273, + "src": "3587:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 5385, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5384, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3594:1:15", + "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": "3587:9:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5388, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5273, + "src": "3646:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 5390, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5389, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3653:1:15", + "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": "3646:9:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5391, + "name": "methodDecimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5266, + "src": "3669:14:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5392, + "name": "methodUSDRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5260, + "src": "3697:13:15", + "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": 5386, + "name": "Utils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6060, + "src": "3599:5:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Utils_$6060_$", + "typeString": "type(library Utils)" + } + }, + "id": 5387, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeReverseConversionByRate", + "nodeType": "MemberAccess", + "referencedDeclaration": 5941, + "src": "3599:33:15", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 5393, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3599:121:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3587:133:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5395, + "nodeType": "ExpressionStatement", + "src": "3587:133:15" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5406, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5396, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5273, + "src": "3768:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 5398, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5397, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3775:1:15", + "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": "3768:9:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5399, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3781:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3768:14:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5405, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5401, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5273, + "src": "3786:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 5403, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5402, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3793:1:15", + "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": "3786:9:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5404, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3799:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3786:14:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3768:32:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5426, + "nodeType": "IfStatement", + "src": "3764:130:15", + "trueBody": { + "id": 5425, + "nodeType": "Block", + "src": "3802:92:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5411, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5407, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5273, + "src": "3816:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 5409, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5408, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3823:1:15", + "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": "3816:9:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 5410, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3828:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3816:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5412, + "nodeType": "ExpressionStatement", + "src": "3816:13:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 5417, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5413, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5273, + "src": "3843:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 5415, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5414, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3850:1:15", + "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": "3843:9:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 5416, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3855:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3843:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5418, + "nodeType": "ExpressionStatement", + "src": "3843:13:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 5423, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5419, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5273, + "src": "3870:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 5421, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5420, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3877:1:15", + "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": "3870:9:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 5422, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3882:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3870:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5424, + "nodeType": "ExpressionStatement", + "src": "3870:13:15" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 5436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5427, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5273, + "src": "3922:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 5429, + "indexExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 5428, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3929:1:15", + "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": "3922:9:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5432, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5273, + "src": "3952:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 5434, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5433, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3959:1:15", + "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": "3952:9:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5430, + "name": "paymentAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5250, + "src": "3934:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5431, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9577, + "src": "3934:17:15", + "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": 5435, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3934:28:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3922:40:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5437, + "nodeType": "ExpressionStatement", + "src": "3922:40:15" + } + ] + }, + "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": 5439, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "invoice", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5269, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5248, + "name": "method", + "nodeType": "VariableDeclaration", + "scope": 5439, + "src": "2015:14:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5247, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2015:7:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5250, + "name": "paymentAmount", + "nodeType": "VariableDeclaration", + "scope": 5439, + "src": "2039:18:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5249, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2039:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5252, + "name": "discount", + "nodeType": "VariableDeclaration", + "scope": 5439, + "src": "2067:13:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5251, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2067:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5255, + "name": "volumeBoundaries", + "nodeType": "VariableDeclaration", + "scope": 5439, + "src": "2090:23:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 5253, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2090:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5254, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2090:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5258, + "name": "volumeBonuses", + "nodeType": "VariableDeclaration", + "scope": 5439, + "src": "2123:20:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 5256, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2123:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5257, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2123:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5260, + "name": "methodUSDRate", + "nodeType": "VariableDeclaration", + "scope": 5439, + "src": "2153:18:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5259, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2153:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5262, + "name": "tokenUSDRate", + "nodeType": "VariableDeclaration", + "scope": 5439, + "src": "2181:17:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5261, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2181:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5264, + "name": "tokenDecimals", + "nodeType": "VariableDeclaration", + "scope": 5439, + "src": "2208:18:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5263, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2208:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5266, + "name": "methodDecimals", + "nodeType": "VariableDeclaration", + "scope": 5439, + "src": "2236:19:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5265, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2236:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5268, + "name": "currentBalanceInTokens", + "nodeType": "VariableDeclaration", + "scope": 5439, + "src": "2265:27:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5267, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2265:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2005:293:15" + }, + "payable": false, + "returnParameters": { + "id": 5274, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5273, + "name": "result", + "nodeType": "VariableDeclaration", + "scope": 5439, + "src": "2329:14:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5]" + }, + "typeName": { + "baseType": { + "id": 5270, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2329:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5272, + "length": { + "argumentTypes": null, + "hexValue": "35", + "id": 5271, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2334:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "5" + }, + "nodeType": "ArrayTypeName", + "src": "2329:7:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr", + "typeString": "uint256[5]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2328:16:15" + }, + "scope": 5854, + "src": "1989:1980:15", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5480, + "nodeType": "Block", + "src": "4088:152:15", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5454, + "name": "tokenFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5445, + "src": "4102:8:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5455, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4113:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4102:12:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5466, + "nodeType": "IfStatement", + "src": "4098:63:15", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 5464, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5457, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5452, + "src": "4116:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + "id": 5459, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5458, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4123:1:15", + "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": "4116:9:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5462, + "name": "tokenFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5445, + "src": "4152:8:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5460, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "4128:11:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 5040, + "src": "4128:23:15", + "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": 5463, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4128:33:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4116:45:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5465, + "nodeType": "ExpressionStatement", + "src": "4116:45:15" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5469, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5467, + "name": "purchaseFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5447, + "src": "4175:11:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5468, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4189:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4175:15:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5479, + "nodeType": "IfStatement", + "src": "4171:62:15", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 5477, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5470, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5452, + "src": "4192:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + "id": 5472, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5471, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4199:1:15", + "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": "4192:9:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5475, + "name": "purchaseFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5447, + "src": "4221:11:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5473, + "name": "cost", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5443, + "src": "4204:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 5040, + "src": "4204:16:15", + "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": 5476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4204:29:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4192:41:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5478, + "nodeType": "ExpressionStatement", + "src": "4192:41:15" + } + } + ] + }, + "documentation": null, + "id": 5481, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "fee", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5448, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5441, + "name": "tokenAmount", + "nodeType": "VariableDeclaration", + "scope": 5481, + "src": "3988:16:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5440, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3988:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5443, + "name": "cost", + "nodeType": "VariableDeclaration", + "scope": 5481, + "src": "4006:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5442, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4006:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5445, + "name": "tokenFee", + "nodeType": "VariableDeclaration", + "scope": 5481, + "src": "4017:13:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5444, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4017:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5447, + "name": "purchaseFee", + "nodeType": "VariableDeclaration", + "scope": 5481, + "src": "4032:16:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5446, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4032:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3987:62:15" + }, + "payable": false, + "returnParameters": { + "id": 5453, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5452, + "name": "result", + "nodeType": "VariableDeclaration", + "scope": 5481, + "src": "4072:14:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2]" + }, + "typeName": { + "baseType": { + "id": 5449, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4072:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5451, + "length": { + "argumentTypes": null, + "hexValue": "32", + "id": 5450, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4077:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "4072:7:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4071:16:15" + }, + "scope": 5854, + "src": "3975:265:15", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5637, + "nodeType": "Block", + "src": "4467:831:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5505, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5501, + "name": "originToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5493, + "src": "4485:11:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5503, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4508: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": 5502, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4500:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5504, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4500:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4485:25:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5500, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "4477:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5506, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4477:34:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5507, + "nodeType": "ExpressionStatement", + "src": "4477:34:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5513, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5509, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5491, + "src": "4529:5:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5511, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4546: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": 5510, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4538:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5512, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4538:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4529:19:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5508, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "4521:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5514, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4521:28:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5515, + "nodeType": "ExpressionStatement", + "src": "4521:28:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5521, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5517, + "name": "exchanger", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5495, + "src": "4567:9:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5519, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4588: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": 5518, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4580:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5520, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4580:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4567:23:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5516, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "4559:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5522, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4559:32:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5523, + "nodeType": "ExpressionStatement", + "src": "4559:32:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5529, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5525, + "name": "serviceWallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5497, + "src": "4609:13:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5527, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4634: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": 5526, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4626:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5528, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4626:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4609:27:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5524, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "4601:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5530, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4601:36:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5531, + "nodeType": "ExpressionStatement", + "src": "4601:36:15" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5541, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5532, + "name": "_fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5485, + "src": "4652:4:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + "id": 5534, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5533, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4657:1:15", + "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": "4652:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5535, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4662:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4652:11:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 5540, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5537, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5487, + "src": "4667:6:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5538, + "name": "METHOD_ETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5192, + "src": "4677:10:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 5539, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4677:12:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "4667:22:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4652:37:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5551, + "nodeType": "IfStatement", + "src": "4648:102:15", + "trueBody": { + "id": 5550, + "nodeType": "Block", + "src": "4691:59:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5547, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5543, + "name": "methodToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5489, + "src": "4713:11:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5545, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4736: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": 5544, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4728:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5546, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4728:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4713:25:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5542, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "4705:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5548, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4705:34:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5549, + "nodeType": "ExpressionStatement", + "src": "4705:34:15" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5556, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5552, + "name": "_fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5485, + "src": "4764:4:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + "id": 5554, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5553, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4769:1:15", + "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": "4764:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5555, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4774:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4764:11:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5583, + "nodeType": "IfStatement", + "src": "4760:181:15", + "trueBody": { + "id": 5582, + "nodeType": "Block", + "src": "4777:164:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5562, + "name": "exchanger", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5495, + "src": "4831:9:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5563, + "name": "serviceWallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5497, + "src": "4842:13:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5564, + "name": "_fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5485, + "src": "4857:4:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + "id": 5566, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5565, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4862:1:15", + "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": "4857:7:15", + "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, + "arguments": [ + { + "argumentTypes": null, + "id": 5559, + "name": "originToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5493, + "src": "4805:11:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5558, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9765, + "src": "4799:5:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$9765_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 5560, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4799:18:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$9765", + "typeString": "contract ERC20" + } + }, + "id": 5561, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 9747, + "src": "4799:31:15", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 5567, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4799:66:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5557, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "4791:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5568, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4791:75:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5569, + "nodeType": "ExpressionStatement", + "src": "4791:75:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5575, + "name": "exchanger", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5495, + "src": "4910:9:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5576, + "name": "_fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5485, + "src": "4921:4:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + "id": 5578, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5577, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4926:1:15", + "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": "4921:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5572, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5491, + "src": "4894:5:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5571, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9765, + "src": "4888:5:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$9765_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 5573, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4888:12:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$9765", + "typeString": "contract ERC20" + } + }, + "id": 5574, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 9788, + "src": "4888:21:15", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 5579, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4888:41:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5570, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "4880:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5580, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4880:50:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5581, + "nodeType": "ExpressionStatement", + "src": "4880:50:15" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5588, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5584, + "name": "_fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5485, + "src": "4955:4:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + "id": 5586, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5585, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4960:1:15", + "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": "4955:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5587, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4965:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4955:11:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5636, + "nodeType": "IfStatement", + "src": "4951:341:15", + "trueBody": { + "id": 5635, + "nodeType": "Block", + "src": "4968:324:15", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 5592, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5589, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5487, + "src": "4986:6:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5590, + "name": "METHOD_ETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5192, + "src": "4996:10:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 5591, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4996:12:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "4986:22:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 5633, + "nodeType": "Block", + "src": "5080:202:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5616, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5607, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10042, + "src": "5135:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5608, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5135:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5610, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10111, + "src": "5155:4:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_PurchaseProcessing_$5854", + "typeString": "library PurchaseProcessing" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_PurchaseProcessing_$5854", + "typeString": "library PurchaseProcessing" + } + ], + "id": 5609, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5147:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5147:13:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5604, + "name": "methodToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5489, + "src": "5112:11:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5603, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9765, + "src": "5106:5:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$9765_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 5605, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5106:18:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$9765", + "typeString": "contract ERC20" + } + }, + "id": 5606, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 9736, + "src": "5106:28:15", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 5612, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5106:55:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5613, + "name": "_fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5485, + "src": "5165:4:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + "id": 5615, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5614, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5170:1:15", + "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": "5165:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5106:66:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5602, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "5098:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5617, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5098:75:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5618, + "nodeType": "ExpressionStatement", + "src": "5098:75:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5624, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10042, + "src": "5231:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5625, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5231:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5626, + "name": "serviceWallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5497, + "src": "5243:13:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5627, + "name": "_fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5485, + "src": "5258:4:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + "id": 5629, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5628, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5263:1:15", + "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": "5258:7:15", + "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, + "arguments": [ + { + "argumentTypes": null, + "id": 5621, + "name": "methodToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5489, + "src": "5205:11:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5620, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9765, + "src": "5199:5:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$9765_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 5622, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5199:18:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$9765", + "typeString": "contract ERC20" + } + }, + "id": 5623, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 9747, + "src": "5199:31:15", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 5630, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5199:67:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5619, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "5191:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5631, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5191:76:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5632, + "nodeType": "ExpressionStatement", + "src": "5191:76:15" + } + ] + }, + "id": 5634, + "nodeType": "IfStatement", + "src": "4982:300:15", + "trueBody": { + "id": 5601, + "nodeType": "Block", + "src": "5010:64:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5596, + "name": "_fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5485, + "src": "5051:4:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + "id": 5598, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5597, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5056:1:15", + "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": "5051:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5593, + "name": "serviceWallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5497, + "src": "5028:13:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5595, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5028:22:15", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 5599, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5028:31:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5600, + "nodeType": "ExpressionStatement", + "src": "5028:31:15" + } + ] + } + } + ] + } + } + ] + }, + "documentation": null, + "id": 5638, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferFee", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5498, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5485, + "name": "_fee", + "nodeType": "VariableDeclaration", + "scope": 5638, + "src": "4276:12:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2]" + }, + "typeName": { + "baseType": { + "id": 5482, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4276:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5484, + "length": { + "argumentTypes": null, + "hexValue": "32", + "id": 5483, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4281:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "4276:7:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5487, + "name": "method", + "nodeType": "VariableDeclaration", + "scope": 5638, + "src": "4298:14:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5486, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4298:7:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5489, + "name": "methodToken", + "nodeType": "VariableDeclaration", + "scope": 5638, + "src": "4322:19:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5488, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4322:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5491, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 5638, + "src": "4351:13:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5490, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4351:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5493, + "name": "originToken", + "nodeType": "VariableDeclaration", + "scope": 5638, + "src": "4374:19:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5492, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4374:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5495, + "name": "exchanger", + "nodeType": "VariableDeclaration", + "scope": 5638, + "src": "4403:17:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5494, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4403:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5497, + "name": "serviceWallet", + "nodeType": "VariableDeclaration", + "scope": 5638, + "src": "4430:21:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5496, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4430:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4266:191:15" + }, + "payable": false, + "returnParameters": { + "id": 5499, + "nodeType": "ParameterList", + "parameters": [], + "src": "4467:0:15" + }, + "scope": 5854, + "src": "4246:1052:15", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5810, + "nodeType": "Block", + "src": "5493:833:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5662, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5658, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5654, + "src": "5511:5:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5660, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5528: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": 5659, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5520:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5661, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5520:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5511:19:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5657, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "5503:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5663, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5503:28:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5664, + "nodeType": "ExpressionStatement", + "src": "5503:28:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5670, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5666, + "name": "_invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5642, + "src": "5549:8:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 5668, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5667, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5558:1:15", + "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": "5549:11:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5669, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5564:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5549:16:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5665, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "5541:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5541:25:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5672, + "nodeType": "ExpressionStatement", + "src": "5541:25:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5678, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5674, + "name": "_invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5642, + "src": "5584:8:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 5676, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5675, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5593:1:15", + "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": "5584:11:15", + "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": "5599:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5584:16:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5673, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "5576:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5679, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5576:25:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5680, + "nodeType": "ExpressionStatement", + "src": "5576:25:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5688, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5682, + "name": "_invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5642, + "src": "5619:8:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 5684, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5683, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5628:1:15", + "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": "5619:11:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5685, + "name": "_fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5646, + "src": "5633:4:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + "id": 5687, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5686, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5638:1:15", + "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": "5633:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5619:21:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5681, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "5611:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5689, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5611:30:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5690, + "nodeType": "ExpressionStatement", + "src": "5611:30:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5698, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5692, + "name": "_invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5642, + "src": "5659:8:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 5694, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5693, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5668:1:15", + "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": "5659:11:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5695, + "name": "_fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5646, + "src": "5673:4:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + "id": 5697, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5696, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5678:1:15", + "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": "5673:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5659:21:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5691, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "5651:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5699, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5651:30:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5700, + "nodeType": "ExpressionStatement", + "src": "5651:30:15" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 5704, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5701, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5650, + "src": "5696:6:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5702, + "name": "METHOD_ETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5192, + "src": "5706:10:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 5703, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5706:12:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "5696:22:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5715, + "nodeType": "IfStatement", + "src": "5692:86:15", + "trueBody": { + "id": 5714, + "nodeType": "Block", + "src": "5720:58:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5711, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5706, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10042, + "src": "5742:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5707, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5742:9:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5708, + "name": "_invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5642, + "src": "5755:8:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 5710, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5709, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5764:1:15", + "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": "5755:11:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5742:24:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5705, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "5734:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5712, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5734:33:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5713, + "nodeType": "ExpressionStatement", + "src": "5734:33:15" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 5719, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5716, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5650, + "src": "5792:6:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5717, + "name": "METHOD_ETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5192, + "src": "5802:10:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 5718, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5802:12:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "5792:22:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5772, + "nodeType": "IfStatement", + "src": "5788:300:15", + "trueBody": { + "id": 5771, + "nodeType": "Block", + "src": "5816:272:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5721, + "name": "methodToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5652, + "src": "5838:11:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5723, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5861: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": 5722, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5853:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5724, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5853:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5838:25:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5720, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "5830:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5726, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5830:34:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5727, + "nodeType": "ExpressionStatement", + "src": "5830:34:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5733, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10042, + "src": "5915:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5734, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5915:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5736, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10111, + "src": "5935:4:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_PurchaseProcessing_$5854", + "typeString": "library PurchaseProcessing" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_PurchaseProcessing_$5854", + "typeString": "library PurchaseProcessing" + } + ], + "id": 5735, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5927:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5737, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5927:13:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5730, + "name": "methodToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5652, + "src": "5892:11:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5729, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9765, + "src": "5886:5:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$9765_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 5731, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5886:18:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$9765", + "typeString": "contract ERC20" + } + }, + "id": 5732, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 9736, + "src": "5886:28:15", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 5738, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5886:55:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5743, + "name": "_fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5646, + "src": "5961:4:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + "id": 5745, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5744, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5966:1:15", + "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": "5961:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5739, + "name": "_invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5642, + "src": "5945:8:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 5741, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5740, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5954:1:15", + "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": "5945:11:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5742, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9577, + "src": "5945:15:15", + "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": 5746, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5945:24:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5886:83:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5728, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "5878:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5748, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5878:92:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5749, + "nodeType": "ExpressionStatement", + "src": "5878:92:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5755, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10042, + "src": "6024:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5756, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6024:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5758, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10111, + "src": "6044:4:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_PurchaseProcessing_$5854", + "typeString": "library PurchaseProcessing" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_PurchaseProcessing_$5854", + "typeString": "library PurchaseProcessing" + } + ], + "id": 5757, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6036:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5759, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6036:13:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5764, + "name": "_fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5646, + "src": "6067:4:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + "id": 5766, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5765, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6072:1:15", + "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": "6067:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5760, + "name": "_invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5642, + "src": "6051:8:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 5762, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5761, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6060:1:15", + "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": "6051:11:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9577, + "src": "6051:15:15", + "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": 5767, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6051:24:15", + "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, + "arguments": [ + { + "argumentTypes": null, + "id": 5752, + "name": "methodToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5652, + "src": "5998:11:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5751, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9765, + "src": "5992:5:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$9765_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 5753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5992:18:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$9765", + "typeString": "contract ERC20" + } + }, + "id": 5754, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 9747, + "src": "5992:31:15", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 5768, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5992:84:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5750, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "5984:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5984:93:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5770, + "nodeType": "ExpressionStatement", + "src": "5984:93:15" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5778, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10042, + "src": "6137:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5779, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6137:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5780, + "name": "_invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5642, + "src": "6149:8:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 5782, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5781, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6158:1:15", + "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": "6149:11:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5783, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5648, + "src": "6162:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5775, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5654, + "src": "6114:5:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5774, + "name": "IWToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7630, + "src": "6106:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IWToken_$7630_$", + "typeString": "type(contract IWToken)" + } + }, + "id": 5776, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6106:14:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" + } + }, + "id": 5777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "vestingTransfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 7571, + "src": "6106:30:15", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint32_$returns$_t_bool_$", + "typeString": "function (address,uint256,uint32) external returns (bool)" + } + }, + "id": 5784, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6106:64:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5773, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "6098:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5785, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6098:73:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5786, + "nodeType": "ExpressionStatement", + "src": "6098:73:15" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5787, + "name": "_invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5642, + "src": "6186:8:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 5789, + "indexExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 5788, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6195:1:15", + "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:11:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5790, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6200:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6186:15:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5809, + "nodeType": "IfStatement", + "src": "6182:138:15", + "trueBody": { + "id": 5808, + "nodeType": "Block", + "src": "6203:117:15", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 5795, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5792, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5650, + "src": "6221:6:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5793, + "name": "METHOD_ETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5192, + "src": "6231:10:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 5794, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6231:12:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "6221:22:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5807, + "nodeType": "IfStatement", + "src": "6217:93:15", + "trueBody": { + "id": 5806, + "nodeType": "Block", + "src": "6245:65:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5801, + "name": "_invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5642, + "src": "6283:8:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 5803, + "indexExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 5802, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6292:1:15", + "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": "6283:11:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5796, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10042, + "src": "6263:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6263:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5800, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6263:19:15", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 5804, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6263:32:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5805, + "nodeType": "ExpressionStatement", + "src": "6263:32:15" + } + ] + } + } + ] + } + } + ] + }, + "documentation": null, + "id": 5811, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferPurchase", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5655, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5642, + "name": "_invoice", + "nodeType": "VariableDeclaration", + "scope": 5811, + "src": "5339:16:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5]" + }, + "typeName": { + "baseType": { + "id": 5639, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5339:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5641, + "length": { + "argumentTypes": null, + "hexValue": "35", + "id": 5640, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5344:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "5" + }, + "nodeType": "ArrayTypeName", + "src": "5339:7:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr", + "typeString": "uint256[5]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5646, + "name": "_fee", + "nodeType": "VariableDeclaration", + "scope": 5811, + "src": "5365:12:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2]" + }, + "typeName": { + "baseType": { + "id": 5643, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5365:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5645, + "length": { + "argumentTypes": null, + "hexValue": "32", + "id": 5644, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5370:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "5365:7:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5648, + "name": "vesting", + "nodeType": "VariableDeclaration", + "scope": 5811, + "src": "5387:14:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5647, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "5387:6:15", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5650, + "name": "method", + "nodeType": "VariableDeclaration", + "scope": 5811, + "src": "5411:14:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5649, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5411:7:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5652, + "name": "methodToken", + "nodeType": "VariableDeclaration", + "scope": 5811, + "src": "5435:19:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5651, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5435:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5654, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 5811, + "src": "5464:13:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5653, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5464:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5329:154:15" + }, + "payable": false, + "returnParameters": { + "id": 5656, + "nodeType": "ParameterList", + "parameters": [], + "src": "5493:0:15" + }, + "scope": 5854, + "src": "5304:1022:15", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5852, + "nodeType": "Block", + "src": "6443:226:15", + "statements": [ + { + "body": { + "id": 5850, + "nodeType": "Block", + "src": "6504:159:15", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5839, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5835, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5813, + "src": "6522:5:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5836, + "name": "volumeBoundaries", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5816, + "src": "6531:16:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 5838, + "indexExpression": { + "argumentTypes": null, + "id": 5837, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5825, + "src": "6548:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6531:19:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6522:28:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 5848, + "nodeType": "Block", + "src": "6615:38:15", + "statements": [ + { + "id": 5847, + "nodeType": "Break", + "src": "6633:5:15" + } + ] + }, + "id": 5849, + "nodeType": "IfStatement", + "src": "6518:135:15", + "trueBody": { + "id": 5846, + "nodeType": "Block", + "src": "6552:57:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5840, + "name": "bonus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5822, + "src": "6570:5:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5841, + "name": "volumeBonuses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5819, + "src": "6578:13:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 5843, + "indexExpression": { + "argumentTypes": null, + "id": 5842, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5825, + "src": "6592:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6578:16:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6570:24:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5845, + "nodeType": "ExpressionStatement", + "src": "6570:24:15" + } + ] + } + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5831, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5828, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5825, + "src": "6470:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5829, + "name": "volumeBoundaries", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5816, + "src": "6474:16:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 5830, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6474:23:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6470:27:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5851, + "initializationExpression": { + "assignments": [ + 5825 + ], + "declarations": [ + { + "constant": false, + "id": 5825, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 5853, + "src": "6458:6:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5824, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6458:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5827, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 5826, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6467:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "6458:10:15" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 5833, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "6499:3:15", + "subExpression": { + "argumentTypes": null, + "id": 5832, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5825, + "src": "6499:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5834, + "nodeType": "ExpressionStatement", + "src": "6499:3:15" + }, + "nodeType": "ForStatement", + "src": "6453:210:15" + } + ] + }, + "documentation": null, + "id": 5853, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getBonus", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5820, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5813, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 5853, + "src": "6350:10:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5812, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6350:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5816, + "name": "volumeBoundaries", + "nodeType": "VariableDeclaration", + "scope": 5853, + "src": "6362:23:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 5814, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6362:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5815, + "length": null, + "nodeType": "ArrayTypeName", + "src": "6362:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5819, + "name": "volumeBonuses", + "nodeType": "VariableDeclaration", + "scope": 5853, + "src": "6387:20:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 5817, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6387:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5818, + "length": null, + "nodeType": "ArrayTypeName", + "src": "6387:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6349:59:15" + }, + "payable": false, + "returnParameters": { + "id": 5823, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5822, + "name": "bonus", + "nodeType": "VariableDeclaration", + "scope": 5853, + "src": "6431:10:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5821, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6431:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6430:12:15" + }, + "scope": 5854, + "src": "6332:337:15", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 5855, + "src": "228:6443:15" + } + ], + "src": "0:6672:15" + }, + "legacyAST": { + "absolutePath": "/home/circleci/code/contracts/libs/PurchaseProcessing.sol", + "exportedSymbols": { + "PurchaseProcessing": [ + 5854 + ] + }, + "id": 5855, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 5171, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:15" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", + "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", + "id": 5172, + "nodeType": "ImportDirective", + "scope": 5855, + "sourceUnit": 9603, + "src": "26:59:15", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", + "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", + "id": 5173, + "nodeType": "ImportDirective", + "scope": 5855, + "sourceUnit": 9766, + "src": "86:63:15", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/libs/Percent.sol", + "file": "./Percent.sol", + "id": 5174, + "nodeType": "ImportDirective", + "scope": 5855, + "sourceUnit": 5104, + "src": "150:23:15", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/libs/Utils.sol", + "file": "./Utils.sol", + "id": 5175, + "nodeType": "ImportDirective", + "scope": 5855, + "sourceUnit": 6061, + "src": "174:21:15", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/token/IWToken.sol", + "file": "../token/IWToken.sol", + "id": 5176, + "nodeType": "ImportDirective", + "scope": 5855, + "sourceUnit": 7631, + "src": "196:30:15", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 5854, + "linearizedBaseContracts": [ + 5854 + ], + "name": "PurchaseProcessing", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 5179, + "libraryName": { + "contractScope": null, + "id": 5177, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9602, + "src": "267:8:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$9602", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "261:24:15", + "typeName": { + "id": 5178, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "280:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 5182, + "libraryName": { + "contractScope": null, + "id": 5180, + "name": "Percent", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5103, + "src": "296:7:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Percent_$5103", + "typeString": "library Percent" + } + }, + "nodeType": "UsingForDirective", + "src": "290:23:15", + "typeName": { + "id": 5181, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "308:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "body": { + "id": 5191, + "nodeType": "Block", + "src": "373:24:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "455448", + "id": 5188, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "389:5:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_aaaebeba3810b1e6b70781f14b2d72c1cb89c0b2b320c43bb67ff79f562f5ff4", + "typeString": "literal_string \"ETH\"" + }, + "value": "ETH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_aaaebeba3810b1e6b70781f14b2d72c1cb89c0b2b320c43bb67ff79f562f5ff4", + "typeString": "literal_string \"ETH\"" + } + ], + "id": 5187, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "381:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": "bytes32" + }, + "id": 5189, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "381:14:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 5186, + "id": 5190, + "nodeType": "Return", + "src": "374:21:15" + } + ] + }, + "documentation": null, + "id": 5192, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "METHOD_ETH", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5183, + "nodeType": "ParameterList", + "parameters": [], + "src": "338:2:15" + }, + "payable": false, + "returnParameters": { + "id": 5186, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5185, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5192, + "src": "364:7:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5184, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "364:7:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "363:9:15" + }, + "scope": 5854, + "src": "319:78:15", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5245, + "nodeType": "Block", + "src": "672:271:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5229, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5211, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5209, + "src": "682:6:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5228, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5218, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5214, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5212, + "name": "paymentAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5196, + "src": "691:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5213, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "707:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "691:17:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5217, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5215, + "name": "methodUSDRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5198, + "src": "724:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5216, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "740:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "724:17:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "691:50:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5221, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5219, + "name": "tokenUSDRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5200, + "src": "757:12:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5220, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "772:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "757:16:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "691:82:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5223, + "name": "currentBalanceInTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5202, + "src": "789:22:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 5224, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "815:2:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "id": 5225, + "name": "tokenDecimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5204, + "src": "821:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "815:19:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "789:45:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "691:143:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "682:152:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5230, + "nodeType": "ExpressionStatement", + "src": "682:152:15" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 5234, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5231, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5194, + "src": "849:6:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5232, + "name": "METHOD_ETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5192, + "src": "859:10:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 5233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "859:12:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "849:22:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5244, + "nodeType": "IfStatement", + "src": "845:92:15", + "trueBody": { + "id": 5243, + "nodeType": "Block", + "src": "873:64:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5241, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5235, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5209, + "src": "887:6:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5240, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5236, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5209, + "src": "896:6:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5237, + "name": "methodDecimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5206, + "src": "906:14:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3138", + "id": 5238, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "924:2:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "src": "906:20:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "896:30:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "887:39:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5242, + "nodeType": "ExpressionStatement", + "src": "887:39:15" + } + ] + } + } + ] + }, + "documentation": null, + "id": 5246, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "checkInvoiceInput", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5207, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5194, + "name": "method", + "nodeType": "VariableDeclaration", + "scope": 5246, + "src": "439:14:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5193, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "439:7:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5196, + "name": "paymentAmount", + "nodeType": "VariableDeclaration", + "scope": 5246, + "src": "463:18:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5195, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "463:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5198, + "name": "methodUSDRate", + "nodeType": "VariableDeclaration", + "scope": 5246, + "src": "491:18:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5197, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "491:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5200, + "name": "tokenUSDRate", + "nodeType": "VariableDeclaration", + "scope": 5246, + "src": "519:17:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5199, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "519:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5202, + "name": "currentBalanceInTokens", + "nodeType": "VariableDeclaration", + "scope": 5246, + "src": "546:27:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5201, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "546:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5204, + "name": "tokenDecimals", + "nodeType": "VariableDeclaration", + "scope": 5246, + "src": "583:18:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5203, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "583:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5206, + "name": "methodDecimals", + "nodeType": "VariableDeclaration", + "scope": 5246, + "src": "611:19:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5205, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "611:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "429:207:15" + }, + "payable": false, + "returnParameters": { + "id": 5210, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5209, + "name": "result", + "nodeType": "VariableDeclaration", + "scope": 5246, + "src": "659:11:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5208, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "659:4:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "658:13:15" + }, + "scope": 5854, + "src": "403:540:15", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5438, + "nodeType": "Block", + "src": "2349:1620:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5277, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5248, + "src": "2398:6:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 5278, + "name": "paymentAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5250, + "src": "2418:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5279, + "name": "methodUSDRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5260, + "src": "2445:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5280, + "name": "tokenUSDRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5262, + "src": "2472:12:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5281, + "name": "currentBalanceInTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5268, + "src": "2498:22:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5282, + "name": "tokenDecimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "2534:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5283, + "name": "methodDecimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5266, + "src": "2561:14:15", + "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_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5276, + "name": "checkInvoiceInput", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5246, + "src": "2367:17:15", + "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": 5284, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2367:218:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5275, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "2359:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2359:227:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5286, + "nodeType": "ExpressionStatement", + "src": "2359:227:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 5296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5287, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5273, + "src": "2616:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 5289, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5288, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2623:1:15", + "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": "2616:9:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5292, + "name": "paymentAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5250, + "src": "2668:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5293, + "name": "methodDecimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5266, + "src": "2695:14:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5294, + "name": "methodUSDRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5260, + "src": "2723:13:15", + "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": 5290, + "name": "Utils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6060, + "src": "2628:5:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Utils_$6060_$", + "typeString": "type(library Utils)" + } + }, + "id": 5291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeConversionByRate", + "nodeType": "MemberAccess", + "referencedDeclaration": 5905, + "src": "2628:26:15", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 5295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2628:118:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2616:130:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5297, + "nodeType": "ExpressionStatement", + "src": "2616:130:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5299, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5273, + "src": "2803:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 5301, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5300, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2810:1:15", + "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": "2803:9:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 5302, + "name": "tokenUSDRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5262, + "src": "2816:12:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2803:25:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5298, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "2795:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2795:34:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5305, + "nodeType": "ExpressionStatement", + "src": "2795:34:15" + }, + { + "assignments": [ + 5307 + ], + "declarations": [ + { + "constant": false, + "id": 5307, + "name": "bonus", + "nodeType": "VariableDeclaration", + "scope": 5439, + "src": "2840:10:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5306, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2840:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5315, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5309, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5273, + "src": "2862:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 5311, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5310, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2869:1:15", + "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": "2862:9:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5312, + "name": "volumeBoundaries", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5255, + "src": "2873:16:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "argumentTypes": null, + "id": 5313, + "name": "volumeBonuses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5258, + "src": "2891:13:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + ], + "id": 5308, + "name": "getBonus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5853, + "src": "2853:8:15", + "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": 5314, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2853:52:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2840:65:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 5332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5316, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5273, + "src": "2936:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 5318, + "indexExpression": { + "argumentTypes": null, + "hexValue": "34", + "id": 5317, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2943:1:15", + "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": "2936:9:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5321, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5319, + "name": "discount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5252, + "src": "2948:8:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5320, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2959:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2948:12:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "id": 5330, + "name": "tokenUSDRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5262, + "src": "3036:12:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5331, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "2948:100:15", + "trueExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5328, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 5324, + "name": "Percent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5103, + "src": "2996:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Percent_$5103_$", + "typeString": "type(library Percent)" + } + }, + "id": 5325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "MAX", + "nodeType": "MemberAccess", + "referencedDeclaration": 5003, + "src": "2996:11:15", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$__$returns$_t_uint256_$", + "typeString": "function () pure returns (uint256)" + } + }, + "id": 5326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2996:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 5327, + "name": "discount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5252, + "src": "3012:8:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2996:24:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5322, + "name": "tokenUSDRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5262, + "src": "2975:12:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "percent", + "nodeType": "MemberAccess", + "referencedDeclaration": 5022, + "src": "2975:20:15", + "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": 5329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2975:46:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2936:112:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5333, + "nodeType": "ExpressionStatement", + "src": "2936:112:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 5355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5334, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5273, + "src": "3077:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 5336, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5335, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3084:1:15", + "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": "3077:9:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5347, + "name": "bonus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5307, + "src": "3176:5:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 5343, + "name": "Percent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5103, + "src": "3158:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Percent_$5103_$", + "typeString": "type(library Percent)" + } + }, + "id": 5344, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "MAX", + "nodeType": "MemberAccess", + "referencedDeclaration": 5003, + "src": "3158:11:15", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$__$returns$_t_uint256_$", + "typeString": "function () pure returns (uint256)" + } + }, + "id": 5345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3158:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5346, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9601, + "src": "3158:17:15", + "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": 5348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3158:24:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5339, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5273, + "src": "3136:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 5341, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5340, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3143:1:15", + "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": "3136:9:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5342, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 5040, + "src": "3136:21:15", + "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": 5349, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3136:47:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5350, + "name": "tokenDecimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "3197:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5351, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5273, + "src": "3224:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 5353, + "indexExpression": { + "argumentTypes": null, + "hexValue": "34", + "id": 5352, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3231:1:15", + "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": "3224:9:15", + "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": 5337, + "name": "Utils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6060, + "src": "3089:5:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Utils_$6060_$", + "typeString": "type(library Utils)" + } + }, + "id": 5338, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeReverseConversionByRate", + "nodeType": "MemberAccess", + "referencedDeclaration": 5941, + "src": "3089:33:15", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 5354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3089:154:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3077:166:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5356, + "nodeType": "ExpressionStatement", + "src": "3077:166:15" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5361, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5357, + "name": "currentBalanceInTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5268, + "src": "3302:22:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5358, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5273, + "src": "3327:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 5360, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5359, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3334:1:15", + "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": "3327:9:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3302:34:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5382, + "nodeType": "IfStatement", + "src": "3298:263:15", + "trueBody": { + "id": 5381, + "nodeType": "Block", + "src": "3338:223:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5362, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5273, + "src": "3352:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 5364, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5363, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3359:1:15", + "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": "3352:9:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5367, + "name": "currentBalanceInTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5268, + "src": "3408:22:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5368, + "name": "tokenDecimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "3448:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5369, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5273, + "src": "3479:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 5371, + "indexExpression": { + "argumentTypes": null, + "hexValue": "34", + "id": 5370, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3486:1:15", + "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": "3479:9:15", + "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": 5365, + "name": "Utils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6060, + "src": "3364:5:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Utils_$6060_$", + "typeString": "type(library Utils)" + } + }, + "id": 5366, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeConversionByRate", + "nodeType": "MemberAccess", + "referencedDeclaration": 5905, + "src": "3364:26:15", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 5372, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3364:138:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3352:150:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5374, + "nodeType": "ExpressionStatement", + "src": "3352:150:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 5379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5375, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5273, + "src": "3516:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 5377, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5376, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3523:1:15", + "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": "3516:9:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5378, + "name": "currentBalanceInTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5268, + "src": "3528:22:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3516:34:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5380, + "nodeType": "ExpressionStatement", + "src": "3516:34:15" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 5394, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5383, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5273, + "src": "3587:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 5385, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5384, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3594:1:15", + "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": "3587:9:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5388, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5273, + "src": "3646:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 5390, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5389, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3653:1:15", + "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": "3646:9:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5391, + "name": "methodDecimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5266, + "src": "3669:14:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5392, + "name": "methodUSDRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5260, + "src": "3697:13:15", + "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": 5386, + "name": "Utils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6060, + "src": "3599:5:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Utils_$6060_$", + "typeString": "type(library Utils)" + } + }, + "id": 5387, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeReverseConversionByRate", + "nodeType": "MemberAccess", + "referencedDeclaration": 5941, + "src": "3599:33:15", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 5393, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3599:121:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3587:133:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5395, + "nodeType": "ExpressionStatement", + "src": "3587:133:15" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5406, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5396, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5273, + "src": "3768:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 5398, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5397, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3775:1:15", + "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": "3768:9:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5399, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3781:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3768:14:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5405, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5401, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5273, + "src": "3786:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 5403, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5402, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3793:1:15", + "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": "3786:9:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5404, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3799:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3786:14:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3768:32:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5426, + "nodeType": "IfStatement", + "src": "3764:130:15", + "trueBody": { + "id": 5425, + "nodeType": "Block", + "src": "3802:92:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5411, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5407, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5273, + "src": "3816:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 5409, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5408, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3823:1:15", + "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": "3816:9:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 5410, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3828:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3816:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5412, + "nodeType": "ExpressionStatement", + "src": "3816:13:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 5417, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5413, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5273, + "src": "3843:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 5415, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5414, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3850:1:15", + "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": "3843:9:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 5416, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3855:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3843:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5418, + "nodeType": "ExpressionStatement", + "src": "3843:13:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 5423, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5419, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5273, + "src": "3870:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 5421, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5420, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3877:1:15", + "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": "3870:9:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 5422, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3882:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3870:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5424, + "nodeType": "ExpressionStatement", + "src": "3870:13:15" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 5436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5427, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5273, + "src": "3922:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 5429, + "indexExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 5428, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3929:1:15", + "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": "3922:9:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5432, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5273, + "src": "3952:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 5434, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5433, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3959:1:15", + "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": "3952:9:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5430, + "name": "paymentAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5250, + "src": "3934:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5431, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9577, + "src": "3934:17:15", + "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": 5435, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3934:28:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3922:40:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5437, + "nodeType": "ExpressionStatement", + "src": "3922:40:15" + } + ] + }, + "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": 5439, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "invoice", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5269, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5248, + "name": "method", + "nodeType": "VariableDeclaration", + "scope": 5439, + "src": "2015:14:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5247, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2015:7:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5250, + "name": "paymentAmount", + "nodeType": "VariableDeclaration", + "scope": 5439, + "src": "2039:18:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5249, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2039:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5252, + "name": "discount", + "nodeType": "VariableDeclaration", + "scope": 5439, + "src": "2067:13:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5251, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2067:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5255, + "name": "volumeBoundaries", + "nodeType": "VariableDeclaration", + "scope": 5439, + "src": "2090:23:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 5253, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2090:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5254, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2090:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5258, + "name": "volumeBonuses", + "nodeType": "VariableDeclaration", + "scope": 5439, + "src": "2123:20:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 5256, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2123:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5257, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2123:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5260, + "name": "methodUSDRate", + "nodeType": "VariableDeclaration", + "scope": 5439, + "src": "2153:18:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5259, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2153:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5262, + "name": "tokenUSDRate", + "nodeType": "VariableDeclaration", + "scope": 5439, + "src": "2181:17:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5261, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2181:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5264, + "name": "tokenDecimals", + "nodeType": "VariableDeclaration", + "scope": 5439, + "src": "2208:18:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5263, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2208:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5266, + "name": "methodDecimals", + "nodeType": "VariableDeclaration", + "scope": 5439, + "src": "2236:19:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5265, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2236:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5268, + "name": "currentBalanceInTokens", + "nodeType": "VariableDeclaration", + "scope": 5439, + "src": "2265:27:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5267, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2265:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2005:293:15" + }, + "payable": false, + "returnParameters": { + "id": 5274, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5273, + "name": "result", + "nodeType": "VariableDeclaration", + "scope": 5439, + "src": "2329:14:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5]" + }, + "typeName": { + "baseType": { + "id": 5270, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2329:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5272, + "length": { + "argumentTypes": null, + "hexValue": "35", + "id": 5271, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2334:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "5" + }, + "nodeType": "ArrayTypeName", + "src": "2329:7:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr", + "typeString": "uint256[5]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2328:16:15" + }, + "scope": 5854, + "src": "1989:1980:15", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5480, + "nodeType": "Block", + "src": "4088:152:15", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5454, + "name": "tokenFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5445, + "src": "4102:8:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5455, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4113:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4102:12:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5466, + "nodeType": "IfStatement", + "src": "4098:63:15", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 5464, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5457, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5452, + "src": "4116:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + "id": 5459, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5458, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4123:1:15", + "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": "4116:9:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5462, + "name": "tokenFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5445, + "src": "4152:8:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5460, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "4128:11:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 5040, + "src": "4128:23:15", + "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": 5463, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4128:33:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4116:45:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5465, + "nodeType": "ExpressionStatement", + "src": "4116:45:15" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5469, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5467, + "name": "purchaseFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5447, + "src": "4175:11:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5468, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4189:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4175:15:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5479, + "nodeType": "IfStatement", + "src": "4171:62:15", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 5477, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5470, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5452, + "src": "4192:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + "id": 5472, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5471, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4199:1:15", + "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": "4192:9:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5475, + "name": "purchaseFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5447, + "src": "4221:11:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5473, + "name": "cost", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5443, + "src": "4204:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 5040, + "src": "4204:16:15", + "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": 5476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4204:29:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4192:41:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5478, + "nodeType": "ExpressionStatement", + "src": "4192:41:15" + } + } + ] + }, + "documentation": null, + "id": 5481, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "fee", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5448, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5441, + "name": "tokenAmount", + "nodeType": "VariableDeclaration", + "scope": 5481, + "src": "3988:16:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5440, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3988:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5443, + "name": "cost", + "nodeType": "VariableDeclaration", + "scope": 5481, + "src": "4006:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5442, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4006:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5445, + "name": "tokenFee", + "nodeType": "VariableDeclaration", + "scope": 5481, + "src": "4017:13:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5444, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4017:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5447, + "name": "purchaseFee", + "nodeType": "VariableDeclaration", + "scope": 5481, + "src": "4032:16:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5446, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4032:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3987:62:15" + }, + "payable": false, + "returnParameters": { + "id": 5453, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5452, + "name": "result", + "nodeType": "VariableDeclaration", + "scope": 5481, + "src": "4072:14:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2]" + }, + "typeName": { + "baseType": { + "id": 5449, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4072:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5451, + "length": { + "argumentTypes": null, + "hexValue": "32", + "id": 5450, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4077:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "4072:7:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4071:16:15" + }, + "scope": 5854, + "src": "3975:265:15", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5637, + "nodeType": "Block", + "src": "4467:831:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5505, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5501, + "name": "originToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5493, + "src": "4485:11:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5503, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4508: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": 5502, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4500:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5504, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4500:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4485:25:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5500, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "4477:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5506, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4477:34:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5507, + "nodeType": "ExpressionStatement", + "src": "4477:34:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5513, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5509, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5491, + "src": "4529:5:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5511, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4546: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": 5510, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4538:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5512, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4538:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4529:19:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5508, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "4521:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5514, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4521:28:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5515, + "nodeType": "ExpressionStatement", + "src": "4521:28:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5521, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5517, + "name": "exchanger", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5495, + "src": "4567:9:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5519, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4588: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": 5518, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4580:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5520, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4580:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4567:23:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5516, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "4559:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5522, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4559:32:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5523, + "nodeType": "ExpressionStatement", + "src": "4559:32:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5529, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5525, + "name": "serviceWallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5497, + "src": "4609:13:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5527, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4634: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": 5526, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4626:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5528, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4626:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4609:27:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5524, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "4601:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5530, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4601:36:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5531, + "nodeType": "ExpressionStatement", + "src": "4601:36:15" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5541, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5532, + "name": "_fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5485, + "src": "4652:4:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + "id": 5534, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5533, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4657:1:15", + "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": "4652:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5535, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4662:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4652:11:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 5540, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5537, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5487, + "src": "4667:6:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5538, + "name": "METHOD_ETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5192, + "src": "4677:10:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 5539, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4677:12:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "4667:22:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4652:37:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5551, + "nodeType": "IfStatement", + "src": "4648:102:15", + "trueBody": { + "id": 5550, + "nodeType": "Block", + "src": "4691:59:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5547, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5543, + "name": "methodToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5489, + "src": "4713:11:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5545, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4736: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": 5544, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4728:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5546, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4728:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4713:25:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5542, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "4705:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5548, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4705:34:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5549, + "nodeType": "ExpressionStatement", + "src": "4705:34:15" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5556, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5552, + "name": "_fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5485, + "src": "4764:4:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + "id": 5554, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5553, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4769:1:15", + "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": "4764:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5555, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4774:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4764:11:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5583, + "nodeType": "IfStatement", + "src": "4760:181:15", + "trueBody": { + "id": 5582, + "nodeType": "Block", + "src": "4777:164:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5562, + "name": "exchanger", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5495, + "src": "4831:9:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5563, + "name": "serviceWallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5497, + "src": "4842:13:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5564, + "name": "_fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5485, + "src": "4857:4:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + "id": 5566, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5565, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4862:1:15", + "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": "4857:7:15", + "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, + "arguments": [ + { + "argumentTypes": null, + "id": 5559, + "name": "originToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5493, + "src": "4805:11:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5558, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9765, + "src": "4799:5:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$9765_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 5560, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4799:18:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$9765", + "typeString": "contract ERC20" + } + }, + "id": 5561, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 9747, + "src": "4799:31:15", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 5567, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4799:66:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5557, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "4791:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5568, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4791:75:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5569, + "nodeType": "ExpressionStatement", + "src": "4791:75:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5575, + "name": "exchanger", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5495, + "src": "4910:9:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5576, + "name": "_fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5485, + "src": "4921:4:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + "id": 5578, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5577, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4926:1:15", + "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": "4921:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5572, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5491, + "src": "4894:5:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5571, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9765, + "src": "4888:5:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$9765_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 5573, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4888:12:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$9765", + "typeString": "contract ERC20" + } + }, + "id": 5574, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 9788, + "src": "4888:21:15", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 5579, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4888:41:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5570, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "4880:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5580, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4880:50:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5581, + "nodeType": "ExpressionStatement", + "src": "4880:50:15" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5588, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5584, + "name": "_fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5485, + "src": "4955:4:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + "id": 5586, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5585, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4960:1:15", + "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": "4955:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5587, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4965:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4955:11:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5636, + "nodeType": "IfStatement", + "src": "4951:341:15", + "trueBody": { + "id": 5635, + "nodeType": "Block", + "src": "4968:324:15", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 5592, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5589, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5487, + "src": "4986:6:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5590, + "name": "METHOD_ETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5192, + "src": "4996:10:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 5591, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4996:12:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "4986:22:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 5633, + "nodeType": "Block", + "src": "5080:202:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5616, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5607, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10042, + "src": "5135:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5608, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5135:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5610, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10111, + "src": "5155:4:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_PurchaseProcessing_$5854", + "typeString": "library PurchaseProcessing" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_PurchaseProcessing_$5854", + "typeString": "library PurchaseProcessing" + } + ], + "id": 5609, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5147:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5147:13:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5604, + "name": "methodToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5489, + "src": "5112:11:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5603, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9765, + "src": "5106:5:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$9765_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 5605, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5106:18:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$9765", + "typeString": "contract ERC20" + } + }, + "id": 5606, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 9736, + "src": "5106:28:15", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 5612, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5106:55:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5613, + "name": "_fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5485, + "src": "5165:4:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + "id": 5615, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5614, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5170:1:15", + "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": "5165:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5106:66:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5602, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "5098:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5617, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5098:75:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5618, + "nodeType": "ExpressionStatement", + "src": "5098:75:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5624, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10042, + "src": "5231:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5625, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5231:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5626, + "name": "serviceWallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5497, + "src": "5243:13:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5627, + "name": "_fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5485, + "src": "5258:4:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + "id": 5629, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5628, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5263:1:15", + "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": "5258:7:15", + "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, + "arguments": [ + { + "argumentTypes": null, + "id": 5621, + "name": "methodToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5489, + "src": "5205:11:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5620, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9765, + "src": "5199:5:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$9765_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 5622, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5199:18:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$9765", + "typeString": "contract ERC20" + } + }, + "id": 5623, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 9747, + "src": "5199:31:15", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 5630, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5199:67:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5619, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "5191:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5631, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5191:76:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5632, + "nodeType": "ExpressionStatement", + "src": "5191:76:15" + } + ] + }, + "id": 5634, + "nodeType": "IfStatement", + "src": "4982:300:15", + "trueBody": { + "id": 5601, + "nodeType": "Block", + "src": "5010:64:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5596, + "name": "_fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5485, + "src": "5051:4:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + "id": 5598, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5597, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5056:1:15", + "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": "5051:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5593, + "name": "serviceWallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5497, + "src": "5028:13:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5595, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5028:22:15", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 5599, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5028:31:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5600, + "nodeType": "ExpressionStatement", + "src": "5028:31:15" + } + ] + } + } + ] + } + } + ] + }, + "documentation": null, + "id": 5638, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferFee", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5498, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5485, + "name": "_fee", + "nodeType": "VariableDeclaration", + "scope": 5638, + "src": "4276:12:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2]" + }, + "typeName": { + "baseType": { + "id": 5482, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4276:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5484, + "length": { + "argumentTypes": null, + "hexValue": "32", + "id": 5483, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4281:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "4276:7:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5487, + "name": "method", + "nodeType": "VariableDeclaration", + "scope": 5638, + "src": "4298:14:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5486, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4298:7:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5489, + "name": "methodToken", + "nodeType": "VariableDeclaration", + "scope": 5638, + "src": "4322:19:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5488, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4322:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5491, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 5638, + "src": "4351:13:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5490, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4351:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5493, + "name": "originToken", + "nodeType": "VariableDeclaration", + "scope": 5638, + "src": "4374:19:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5492, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4374:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5495, + "name": "exchanger", + "nodeType": "VariableDeclaration", + "scope": 5638, + "src": "4403:17:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5494, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4403:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5497, + "name": "serviceWallet", + "nodeType": "VariableDeclaration", + "scope": 5638, + "src": "4430:21:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5496, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4430:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4266:191:15" + }, + "payable": false, + "returnParameters": { + "id": 5499, + "nodeType": "ParameterList", + "parameters": [], + "src": "4467:0:15" + }, + "scope": 5854, + "src": "4246:1052:15", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5810, + "nodeType": "Block", + "src": "5493:833:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5662, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5658, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5654, + "src": "5511:5:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5660, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5528: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": 5659, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5520:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5661, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5520:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5511:19:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5657, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "5503:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5663, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5503:28:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5664, + "nodeType": "ExpressionStatement", + "src": "5503:28:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5670, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5666, + "name": "_invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5642, + "src": "5549:8:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 5668, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5667, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5558:1:15", + "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": "5549:11:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5669, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5564:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5549:16:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5665, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "5541:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5541:25:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5672, + "nodeType": "ExpressionStatement", + "src": "5541:25:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5678, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5674, + "name": "_invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5642, + "src": "5584:8:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 5676, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5675, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5593:1:15", + "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": "5584:11:15", + "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": "5599:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5584:16:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5673, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "5576:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5679, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5576:25:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5680, + "nodeType": "ExpressionStatement", + "src": "5576:25:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5688, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5682, + "name": "_invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5642, + "src": "5619:8:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 5684, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5683, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5628:1:15", + "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": "5619:11:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5685, + "name": "_fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5646, + "src": "5633:4:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + "id": 5687, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5686, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5638:1:15", + "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": "5633:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5619:21:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5681, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "5611:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5689, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5611:30:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5690, + "nodeType": "ExpressionStatement", + "src": "5611:30:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5698, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5692, + "name": "_invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5642, + "src": "5659:8:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 5694, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5693, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5668:1:15", + "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": "5659:11:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5695, + "name": "_fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5646, + "src": "5673:4:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + "id": 5697, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5696, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5678:1:15", + "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": "5673:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5659:21:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5691, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "5651:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5699, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5651:30:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5700, + "nodeType": "ExpressionStatement", + "src": "5651:30:15" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 5704, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5701, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5650, + "src": "5696:6:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5702, + "name": "METHOD_ETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5192, + "src": "5706:10:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 5703, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5706:12:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "5696:22:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5715, + "nodeType": "IfStatement", + "src": "5692:86:15", + "trueBody": { + "id": 5714, + "nodeType": "Block", + "src": "5720:58:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5711, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5706, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10042, + "src": "5742:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5707, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5742:9:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5708, + "name": "_invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5642, + "src": "5755:8:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 5710, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5709, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5764:1:15", + "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": "5755:11:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5742:24:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5705, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "5734:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5712, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5734:33:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5713, + "nodeType": "ExpressionStatement", + "src": "5734:33:15" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 5719, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5716, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5650, + "src": "5792:6:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5717, + "name": "METHOD_ETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5192, + "src": "5802:10:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 5718, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5802:12:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "5792:22:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5772, + "nodeType": "IfStatement", + "src": "5788:300:15", + "trueBody": { + "id": 5771, + "nodeType": "Block", + "src": "5816:272:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5721, + "name": "methodToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5652, + "src": "5838:11:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5723, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5861: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": 5722, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5853:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5724, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5853:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5838:25:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5720, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "5830:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5726, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5830:34:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5727, + "nodeType": "ExpressionStatement", + "src": "5830:34:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5733, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10042, + "src": "5915:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5734, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5915:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5736, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10111, + "src": "5935:4:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_PurchaseProcessing_$5854", + "typeString": "library PurchaseProcessing" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_PurchaseProcessing_$5854", + "typeString": "library PurchaseProcessing" + } + ], + "id": 5735, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5927:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5737, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5927:13:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5730, + "name": "methodToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5652, + "src": "5892:11:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5729, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9765, + "src": "5886:5:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$9765_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 5731, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5886:18:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$9765", + "typeString": "contract ERC20" + } + }, + "id": 5732, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 9736, + "src": "5886:28:15", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 5738, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5886:55:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5743, + "name": "_fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5646, + "src": "5961:4:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + "id": 5745, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5744, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5966:1:15", + "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": "5961:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5739, + "name": "_invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5642, + "src": "5945:8:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 5741, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5740, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5954:1:15", + "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": "5945:11:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5742, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9577, + "src": "5945:15:15", + "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": 5746, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5945:24:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5886:83:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5728, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "5878:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5748, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5878:92:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5749, + "nodeType": "ExpressionStatement", + "src": "5878:92:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5755, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10042, + "src": "6024:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5756, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6024:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5758, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10111, + "src": "6044:4:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_PurchaseProcessing_$5854", + "typeString": "library PurchaseProcessing" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_PurchaseProcessing_$5854", + "typeString": "library PurchaseProcessing" + } + ], + "id": 5757, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6036:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5759, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6036:13:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5764, + "name": "_fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5646, + "src": "6067:4:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + "id": 5766, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5765, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6072:1:15", + "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": "6067:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5760, + "name": "_invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5642, + "src": "6051:8:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 5762, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5761, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6060:1:15", + "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": "6051:11:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9577, + "src": "6051:15:15", + "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": 5767, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6051:24:15", + "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, + "arguments": [ + { + "argumentTypes": null, + "id": 5752, + "name": "methodToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5652, + "src": "5998:11:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5751, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9765, + "src": "5992:5:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$9765_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 5753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5992:18:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$9765", + "typeString": "contract ERC20" + } + }, + "id": 5754, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 9747, + "src": "5992:31:15", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 5768, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5992:84:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5750, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "5984:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5984:93:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5770, + "nodeType": "ExpressionStatement", + "src": "5984:93:15" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5778, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10042, + "src": "6137:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5779, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6137:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5780, + "name": "_invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5642, + "src": "6149:8:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 5782, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5781, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6158:1:15", + "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": "6149:11:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5783, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5648, + "src": "6162:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5775, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5654, + "src": "6114:5:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5774, + "name": "IWToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7630, + "src": "6106:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IWToken_$7630_$", + "typeString": "type(contract IWToken)" + } + }, + "id": 5776, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6106:14:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" + } + }, + "id": 5777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "vestingTransfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 7571, + "src": "6106:30:15", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint32_$returns$_t_bool_$", + "typeString": "function (address,uint256,uint32) external returns (bool)" + } + }, + "id": 5784, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6106:64:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5773, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "6098:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5785, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6098:73:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5786, + "nodeType": "ExpressionStatement", + "src": "6098:73:15" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5787, + "name": "_invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5642, + "src": "6186:8:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 5789, + "indexExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 5788, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6195:1:15", + "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:11:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5790, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6200:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6186:15:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5809, + "nodeType": "IfStatement", + "src": "6182:138:15", + "trueBody": { + "id": 5808, + "nodeType": "Block", + "src": "6203:117:15", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 5795, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5792, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5650, + "src": "6221:6:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5793, + "name": "METHOD_ETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5192, + "src": "6231:10:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 5794, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6231:12:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "6221:22:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5807, + "nodeType": "IfStatement", + "src": "6217:93:15", + "trueBody": { + "id": 5806, + "nodeType": "Block", + "src": "6245:65:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5801, + "name": "_invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5642, + "src": "6283:8:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 5803, + "indexExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 5802, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6292:1:15", + "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": "6283:11:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5796, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10042, + "src": "6263:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6263:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5800, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6263:19:15", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 5804, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6263:32:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5805, + "nodeType": "ExpressionStatement", + "src": "6263:32:15" + } + ] + } + } + ] + } + } + ] + }, + "documentation": null, + "id": 5811, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferPurchase", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5655, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5642, + "name": "_invoice", + "nodeType": "VariableDeclaration", + "scope": 5811, + "src": "5339:16:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5]" + }, + "typeName": { + "baseType": { + "id": 5639, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5339:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5641, + "length": { + "argumentTypes": null, + "hexValue": "35", + "id": 5640, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5344:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "5" + }, + "nodeType": "ArrayTypeName", + "src": "5339:7:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr", + "typeString": "uint256[5]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5646, + "name": "_fee", + "nodeType": "VariableDeclaration", + "scope": 5811, + "src": "5365:12:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2]" + }, + "typeName": { + "baseType": { + "id": 5643, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5365:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5645, + "length": { + "argumentTypes": null, + "hexValue": "32", + "id": 5644, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5370:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "5365:7:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5648, + "name": "vesting", + "nodeType": "VariableDeclaration", + "scope": 5811, + "src": "5387:14:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5647, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "5387:6:15", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5650, + "name": "method", + "nodeType": "VariableDeclaration", + "scope": 5811, + "src": "5411:14:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5649, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5411:7:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5652, + "name": "methodToken", + "nodeType": "VariableDeclaration", + "scope": 5811, + "src": "5435:19:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5651, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5435:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5654, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 5811, + "src": "5464:13:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5653, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5464:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5329:154:15" + }, + "payable": false, + "returnParameters": { + "id": 5656, + "nodeType": "ParameterList", + "parameters": [], + "src": "5493:0:15" + }, + "scope": 5854, + "src": "5304:1022:15", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5852, + "nodeType": "Block", + "src": "6443:226:15", + "statements": [ + { + "body": { + "id": 5850, + "nodeType": "Block", + "src": "6504:159:15", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5839, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5835, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5813, + "src": "6522:5:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5836, + "name": "volumeBoundaries", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5816, + "src": "6531:16:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 5838, + "indexExpression": { + "argumentTypes": null, + "id": 5837, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5825, + "src": "6548:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6531:19:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6522:28:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 5848, + "nodeType": "Block", + "src": "6615:38:15", + "statements": [ + { + "id": 5847, + "nodeType": "Break", + "src": "6633:5:15" + } + ] + }, + "id": 5849, + "nodeType": "IfStatement", + "src": "6518:135:15", + "trueBody": { + "id": 5846, + "nodeType": "Block", + "src": "6552:57:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5840, + "name": "bonus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5822, + "src": "6570:5:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5841, + "name": "volumeBonuses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5819, + "src": "6578:13:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 5843, + "indexExpression": { + "argumentTypes": null, + "id": 5842, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5825, + "src": "6592:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6578:16:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6570:24:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5845, + "nodeType": "ExpressionStatement", + "src": "6570:24:15" + } + ] + } + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5831, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5828, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5825, + "src": "6470:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5829, + "name": "volumeBoundaries", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5816, + "src": "6474:16:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 5830, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6474:23:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6470:27:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5851, + "initializationExpression": { + "assignments": [ + 5825 + ], + "declarations": [ + { + "constant": false, + "id": 5825, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 5853, + "src": "6458:6:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5824, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6458:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5827, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 5826, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6467:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "6458:10:15" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 5833, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "6499:3:15", + "subExpression": { + "argumentTypes": null, + "id": 5832, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5825, + "src": "6499:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5834, + "nodeType": "ExpressionStatement", + "src": "6499:3:15" + }, + "nodeType": "ForStatement", + "src": "6453:210:15" + } + ] + }, + "documentation": null, + "id": 5853, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getBonus", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5820, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5813, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 5853, + "src": "6350:10:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5812, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6350:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5816, + "name": "volumeBoundaries", + "nodeType": "VariableDeclaration", + "scope": 5853, + "src": "6362:23:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 5814, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6362:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5815, + "length": null, + "nodeType": "ArrayTypeName", + "src": "6362:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5819, + "name": "volumeBonuses", + "nodeType": "VariableDeclaration", + "scope": 5853, + "src": "6387:20:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 5817, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6387:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5818, + "length": null, + "nodeType": "ArrayTypeName", + "src": "6387:6:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6349:59:15" + }, + "payable": false, + "returnParameters": { + "id": 5823, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5822, + "name": "bonus", + "nodeType": "VariableDeclaration", + "scope": 5853, + "src": "6431:10:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5821, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6431:4:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6430:12:15" + }, + "scope": 5854, + "src": "6332:337:15", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 5855, + "src": "228:6443:15" + } + ], + "src": "0:6672:15" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.1", + "updatedAt": "2018-10-22T07:56:01.508Z" +} \ No newline at end of file diff --git a/build/contracts/PurchaseProcessingMock.json b/build/contracts/PurchaseProcessingMock.json new file mode 100644 index 00000000..354cdda8 --- /dev/null +++ b/build/contracts/PurchaseProcessingMock.json @@ -0,0 +1,5247 @@ +{ + "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" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b5061121f806100206000396000f30060806040526004361061005e5763ffffffff60e060020a6000350416633676737c81146100605780634bb1e9ff146100c35780636cd5c0561461013f57806391bfca311461019b578063b8005df214610264578063d8e5c91414610309575b005b60408051808201825261005e913691600491604491908390600290839083908082843750939650508335945050600160a060020a036020840135811693604081013582169350606081013582169250608081013582169160a09091013516610347565b6040805160a081810190925261005e91369160049160a49190839060059083908390808284375050604080518082018252949796958181019594509250600291508390839080828437509396505050823563ffffffff16935050506020810135906040810135600160a060020a0390811691606001351661035f565b34801561014b57600080fd5b50610160600435602435604435606435610375565b6040518082600260200280838360005b83811015610188578181015183820152602001610170565b5050505090500191505060405180910390f35b3480156101a757600080fd5b50604080516064356004818101356020818102858101820190965281855261024f958335956024803596604435963696909560849592909301929091829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a99890198929750908201955093508392508501908490808284375094975050843595505050602083013592604081013592506060810135915060800135610394565b60405181518152808260a08083836020610170565b34801561027057600080fd5b506040805160206004602480358281013584810280870186019097528086526102f796843596369660449591949091019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a9989019892975090820195509350839250850190849080828437509497506103bd9650505050505050565b60408051918252519081900360200190f35b34801561031557600080fd5b5061033360043560243560443560643560843560a43560c4356103ca565b604080519115158252519081900360200190f35b610356878787878787876103e9565b50505050505050565b61036d868686868686610778565b505050505050565b61037d6111b9565b61038985858585610a73565b90505b949350505050565b61039c6111d4565b6103ae8b8b8b8b8b8b8b8b8b8b610abd565b9b9a5050505050505050505050565b600061038c848484610ef8565b60006103db88888888888888610f57565b90505b979650505050505050565b600160a060020a03831615156103fe57600080fd5b600160a060020a038416151561041357600080fd5b600160a060020a038216151561042857600080fd5b600160a060020a038116151561043d57600080fd5b602087015160001080156104585750610454610faa565b8614155b1561047257600160a060020a038516151561047257600080fd5b8651600010156105d0578651604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152848116602483015260448201939093529051918516916323b872dd916064808201926020929091908290030181600087803b1580156104f357600080fd5b505af1158015610507573d6000803e3d6000fd5b505050506040513d602081101561051d57600080fd5b5051151561052a57600080fd5b8651604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152602482019390935290519186169163a9059cbb916044808201926020929091908290030181600087803b15801561059957600080fd5b505af11580156105ad573d6000803e3d6000fd5b505050506040513d60208110156105c357600080fd5b505115156105d057600080fd5b602087015160001015610356576105e5610faa565b86141561062b576020870151604051600160a060020a0383169180156108fc02916000818181858888f19350505050158015610625573d6000803e3d6000fd5b50610356565b602080880151604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290519192600160a060020a0389169263dd62ed3e9260448082019392918290030181600087803b15801561069757600080fd5b505af11580156106ab573d6000803e3d6000fd5b505050506040513d60208110156106c157600080fd5b505110156106ce57600080fd5b602080880151604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a03858116602483015260448201939093529051918816926323b872dd926064808401938290030181600087803b15801561074157600080fd5b505af1158015610755573d6000803e3d6000fd5b505050506040513d602081101561076b57600080fd5b5051151561035657600080fd5b600160a060020a038116151561078d57600080fd5b8551151561079a57600080fd5b602086015115156107aa57600080fd5b84518651116107b857600080fd5b60208086015190870151116107cc57600080fd5b6107d4610faa565b8314156107ec5760208601513410156107ec57600080fd5b6107f4610faa565b831461097a57600160a060020a038216151561080f57600080fd5b602085015161082d908760015b60200201519063ffffffff610fce16565b604080517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523360048201523060248201529051600160a060020a0385169163dd62ed3e9160448083019260209291908290030181600087803b15801561089457600080fd5b505af11580156108a8573d6000803e3d6000fd5b505050506040513d60208110156108be57600080fd5b505110156108cb57600080fd5b600160a060020a0382166323b872dd33306108ef89600160200201518b600161081c565b6040805160e060020a63ffffffff8716028152600160a060020a0394851660048201529290931660248301526044820152905160648083019260209291908290030181600087803b15801561094357600080fd5b505af1158015610957573d6000803e3d6000fd5b505050506040513d602081101561096d57600080fd5b5051151561097a57600080fd5b8551604080517f9d2e4777000000000000000000000000000000000000000000000000000000008152336004820152602481019290925263ffffffff8616604483015251600160a060020a03831691639d2e47779160648083019260209291908290030181600087803b1580156109f057600080fd5b505af1158015610a04573d6000803e3d6000fd5b505050506040513d6020811015610a1a57600080fd5b50511515610a2757600080fd5b60608601516000101561036d57610a3c610faa565b83141561036d576060860151604051339180156108fc02916000818181858888f19350505050158015610356573d6000803e3d6000fd5b610a7b6111b9565b6000831115610a9757610a94858463ffffffff610fe516565b81525b600082111561038c57610ab0848363ffffffff610fe516565b6020820152949350505050565b610ac56111d4565b6000610ad68c8c8989878a8a610f57565b1515610ae157600080fd5b73__Utils_________________________________6376ba78988c868a6040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b158015610b4357600080fd5b505af4158015610b57573d6000803e3d6000fd5b505050506040513d6020811015610b6d57600080fd5b505160408301819052861115610b8257600080fd5b6040820151610b92908a8a610ef8565b905060008a11610ba25785610c28565b610c288a73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015610bed57600080fd5b505af4158015610c01573d6000803e3d6000fd5b505050506040513d6020811015610c1757600080fd5b50518891900363ffffffff61100016565b82600460200201818152505073__Utils_________________________________63a5a55fcf610cdf610cd48473__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015610c9c57600080fd5b505af4158015610cb0573d6000803e3d6000fd5b505050506040513d6020811015610cc657600080fd5b50519063ffffffff61102916565b604086015190610fe5565b8785600460200201516040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b158015610d2d57600080fd5b505af4158015610d41573d6000803e3d6000fd5b505050506040513d6020811015610d5757600080fd5b5051808352831015610e16576080820151604080517f76ba7898000000000000000000000000000000000000000000000000000000008152600481018690526024810188905260448101929092525173__Utils_________________________________916376ba7898916064808301926020929190829003018186803b158015610de157600080fd5b505af4158015610df5573d6000803e3d6000fd5b505050506040513d6020811015610e0b57600080fd5b505160408301528282525b73__Utils_________________________________63a5a55fcf8360026020020151868a6040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b158015610e7f57600080fd5b505af4158015610e93573d6000803e3d6000fd5b505050506040513d6020811015610ea957600080fd5b5051602083018190521580610ebd57508151155b15610ed45760008083526020830181905260408301525b6020820151610ee4908c90610fce565b6060830152509a9950505050505050505050565b6000805b8351811015610f4f578381815181101515610f1357fe5b602090810290910101518510610f42578281815181101515610f3157fe5b906020019060200201519150610f47565b610f4f565b600101610efc565b509392505050565b60008087118015610f685750600086115b8015610f745750600085115b8015610f83575082600a0a8410155b9050610f8d610faa565b8814156103de578080156103db5750506012149695505050505050565b7f455448000000000000000000000000000000000000000000000000000000000090565b600082821115610fda57fe5b508082035b92915050565b6000610ff98383610ff4611036565b611048565b9392505050565b6000610ff961100d611036565b61101d858563ffffffff61116416565b9063ffffffff61118d16565b81810182811015610fdf57fe5b60006110406111a2565b600a0a905090565b60008080808085151561105757fe5b871580611062575086155b1561106c57611159565b61107e6000198863ffffffff61118d16565b92508288116110a25761109b8661101d8a8a63ffffffff61116416565b9450611159565b858814156110b257869450611159565b858714156110c257879450611159565b8715611143578783116110d557826110d7565b875b91506110e9828863ffffffff61116416565b905061110b6110fe828863ffffffff61118d16565b869063ffffffff61102916565b945061112a868281151561111b57fe5b8691900663ffffffff61102916565b935061113c888363ffffffff610fce16565b97506110c2565b6111566110fe858863ffffffff61118d16565b94505b505050509392505050565b600082151561117557506000610fdf565b5081810281838281151561118557fe5b0414610fdf57fe5b6000818381151561119a57fe5b049392505050565b60006111ac6111b4565b600201905090565b600290565b60408051808201825290600290829080388339509192915050565b60a06040519081016040528060059060208202803883395091929150505600a165627a7a7230582092b3e32666b4ae795296e29854c98b0750e98bcc3f4642af87347c5fca1182b10029", + "deployedBytecode": "0x60806040526004361061005e5763ffffffff60e060020a6000350416633676737c81146100605780634bb1e9ff146100c35780636cd5c0561461013f57806391bfca311461019b578063b8005df214610264578063d8e5c91414610309575b005b60408051808201825261005e913691600491604491908390600290839083908082843750939650508335945050600160a060020a036020840135811693604081013582169350606081013582169250608081013582169160a09091013516610347565b6040805160a081810190925261005e91369160049160a49190839060059083908390808284375050604080518082018252949796958181019594509250600291508390839080828437509396505050823563ffffffff16935050506020810135906040810135600160a060020a0390811691606001351661035f565b34801561014b57600080fd5b50610160600435602435604435606435610375565b6040518082600260200280838360005b83811015610188578181015183820152602001610170565b5050505090500191505060405180910390f35b3480156101a757600080fd5b50604080516064356004818101356020818102858101820190965281855261024f958335956024803596604435963696909560849592909301929091829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a99890198929750908201955093508392508501908490808284375094975050843595505050602083013592604081013592506060810135915060800135610394565b60405181518152808260a08083836020610170565b34801561027057600080fd5b506040805160206004602480358281013584810280870186019097528086526102f796843596369660449591949091019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a9989019892975090820195509350839250850190849080828437509497506103bd9650505050505050565b60408051918252519081900360200190f35b34801561031557600080fd5b5061033360043560243560443560643560843560a43560c4356103ca565b604080519115158252519081900360200190f35b610356878787878787876103e9565b50505050505050565b61036d868686868686610778565b505050505050565b61037d6111b9565b61038985858585610a73565b90505b949350505050565b61039c6111d4565b6103ae8b8b8b8b8b8b8b8b8b8b610abd565b9b9a5050505050505050505050565b600061038c848484610ef8565b60006103db88888888888888610f57565b90505b979650505050505050565b600160a060020a03831615156103fe57600080fd5b600160a060020a038416151561041357600080fd5b600160a060020a038216151561042857600080fd5b600160a060020a038116151561043d57600080fd5b602087015160001080156104585750610454610faa565b8614155b1561047257600160a060020a038516151561047257600080fd5b8651600010156105d0578651604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152848116602483015260448201939093529051918516916323b872dd916064808201926020929091908290030181600087803b1580156104f357600080fd5b505af1158015610507573d6000803e3d6000fd5b505050506040513d602081101561051d57600080fd5b5051151561052a57600080fd5b8651604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152602482019390935290519186169163a9059cbb916044808201926020929091908290030181600087803b15801561059957600080fd5b505af11580156105ad573d6000803e3d6000fd5b505050506040513d60208110156105c357600080fd5b505115156105d057600080fd5b602087015160001015610356576105e5610faa565b86141561062b576020870151604051600160a060020a0383169180156108fc02916000818181858888f19350505050158015610625573d6000803e3d6000fd5b50610356565b602080880151604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290519192600160a060020a0389169263dd62ed3e9260448082019392918290030181600087803b15801561069757600080fd5b505af11580156106ab573d6000803e3d6000fd5b505050506040513d60208110156106c157600080fd5b505110156106ce57600080fd5b602080880151604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a03858116602483015260448201939093529051918816926323b872dd926064808401938290030181600087803b15801561074157600080fd5b505af1158015610755573d6000803e3d6000fd5b505050506040513d602081101561076b57600080fd5b5051151561035657600080fd5b600160a060020a038116151561078d57600080fd5b8551151561079a57600080fd5b602086015115156107aa57600080fd5b84518651116107b857600080fd5b60208086015190870151116107cc57600080fd5b6107d4610faa565b8314156107ec5760208601513410156107ec57600080fd5b6107f4610faa565b831461097a57600160a060020a038216151561080f57600080fd5b602085015161082d908760015b60200201519063ffffffff610fce16565b604080517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523360048201523060248201529051600160a060020a0385169163dd62ed3e9160448083019260209291908290030181600087803b15801561089457600080fd5b505af11580156108a8573d6000803e3d6000fd5b505050506040513d60208110156108be57600080fd5b505110156108cb57600080fd5b600160a060020a0382166323b872dd33306108ef89600160200201518b600161081c565b6040805160e060020a63ffffffff8716028152600160a060020a0394851660048201529290931660248301526044820152905160648083019260209291908290030181600087803b15801561094357600080fd5b505af1158015610957573d6000803e3d6000fd5b505050506040513d602081101561096d57600080fd5b5051151561097a57600080fd5b8551604080517f9d2e4777000000000000000000000000000000000000000000000000000000008152336004820152602481019290925263ffffffff8616604483015251600160a060020a03831691639d2e47779160648083019260209291908290030181600087803b1580156109f057600080fd5b505af1158015610a04573d6000803e3d6000fd5b505050506040513d6020811015610a1a57600080fd5b50511515610a2757600080fd5b60608601516000101561036d57610a3c610faa565b83141561036d576060860151604051339180156108fc02916000818181858888f19350505050158015610356573d6000803e3d6000fd5b610a7b6111b9565b6000831115610a9757610a94858463ffffffff610fe516565b81525b600082111561038c57610ab0848363ffffffff610fe516565b6020820152949350505050565b610ac56111d4565b6000610ad68c8c8989878a8a610f57565b1515610ae157600080fd5b73__Utils_________________________________6376ba78988c868a6040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b158015610b4357600080fd5b505af4158015610b57573d6000803e3d6000fd5b505050506040513d6020811015610b6d57600080fd5b505160408301819052861115610b8257600080fd5b6040820151610b92908a8a610ef8565b905060008a11610ba25785610c28565b610c288a73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015610bed57600080fd5b505af4158015610c01573d6000803e3d6000fd5b505050506040513d6020811015610c1757600080fd5b50518891900363ffffffff61100016565b82600460200201818152505073__Utils_________________________________63a5a55fcf610cdf610cd48473__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015610c9c57600080fd5b505af4158015610cb0573d6000803e3d6000fd5b505050506040513d6020811015610cc657600080fd5b50519063ffffffff61102916565b604086015190610fe5565b8785600460200201516040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b158015610d2d57600080fd5b505af4158015610d41573d6000803e3d6000fd5b505050506040513d6020811015610d5757600080fd5b5051808352831015610e16576080820151604080517f76ba7898000000000000000000000000000000000000000000000000000000008152600481018690526024810188905260448101929092525173__Utils_________________________________916376ba7898916064808301926020929190829003018186803b158015610de157600080fd5b505af4158015610df5573d6000803e3d6000fd5b505050506040513d6020811015610e0b57600080fd5b505160408301528282525b73__Utils_________________________________63a5a55fcf8360026020020151868a6040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b158015610e7f57600080fd5b505af4158015610e93573d6000803e3d6000fd5b505050506040513d6020811015610ea957600080fd5b5051602083018190521580610ebd57508151155b15610ed45760008083526020830181905260408301525b6020820151610ee4908c90610fce565b6060830152509a9950505050505050505050565b6000805b8351811015610f4f578381815181101515610f1357fe5b602090810290910101518510610f42578281815181101515610f3157fe5b906020019060200201519150610f47565b610f4f565b600101610efc565b509392505050565b60008087118015610f685750600086115b8015610f745750600085115b8015610f83575082600a0a8410155b9050610f8d610faa565b8814156103de578080156103db5750506012149695505050505050565b7f455448000000000000000000000000000000000000000000000000000000000090565b600082821115610fda57fe5b508082035b92915050565b6000610ff98383610ff4611036565b611048565b9392505050565b6000610ff961100d611036565b61101d858563ffffffff61116416565b9063ffffffff61118d16565b81810182811015610fdf57fe5b60006110406111a2565b600a0a905090565b60008080808085151561105757fe5b871580611062575086155b1561106c57611159565b61107e6000198863ffffffff61118d16565b92508288116110a25761109b8661101d8a8a63ffffffff61116416565b9450611159565b858814156110b257869450611159565b858714156110c257879450611159565b8715611143578783116110d557826110d7565b875b91506110e9828863ffffffff61116416565b905061110b6110fe828863ffffffff61118d16565b869063ffffffff61102916565b945061112a868281151561111b57fe5b8691900663ffffffff61102916565b935061113c888363ffffffff610fce16565b97506110c2565b6111566110fe858863ffffffff61118d16565b94505b505050509392505050565b600082151561117557506000610fdf565b5081810281838281151561118557fe5b0414610fdf57fe5b6000818381151561119a57fe5b049392505050565b60006111ac6111b4565b600201905090565b600290565b60408051808201825290600290829080388339509192915050565b60a06040519081016040528060059060208202803883395091929150505600a165627a7a7230582092b3e32666b4ae795296e29854c98b0750e98bcc3f4642af87347c5fca1182b10029", + "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;4246:1052:15:-;-1:-1:-1;;;;;4485:25:15;;;;4477:34;;;;;;-1:-1:-1;;;;;4529:19:15;;;;4521:28;;;;;;-1:-1:-1;;;;;4567:23:15;;;;4559:32;;;;;;-1:-1:-1;;;;;4609:27:15;;;;4601:36;;;;;;4652:7;;;;4662:1;-1:-1:-1;4652:37:15;;;;;4677:12;:10;:12::i;:::-;4667:22;;;4652:37;4648:102;;;-1:-1:-1;;;;;4713:25:15;;;;4705:34;;;;;;4764:7;;4774:1;-1:-1:-1;4760:181:15;;;4857:7;;4799:66;;;;;;-1:-1:-1;;;;;4799:66:15;;;;;;;;;;;;;;;;;;;;;;;:31;;;;;;:66;;;;;4857:7;;4799:66;;;;;;;;4862:1;4799:31;:66;;;5:2:-1;;;;30:1;27;20:12;5:2;4799:66:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4799:66:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4799:66:15;4791:75;;;;;;;;4921:7;;4888:41;;;;;;-1:-1:-1;;;;;4888:41:15;;;;;;;;;;;;;;;;:21;;;;;;:41;;;;;4921:7;;4888:41;;;;;;;;4926:1;4888:21;:41;;;5:2:-1;;;;30:1;27;20:12;5:2;4888:41:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4888:41:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4888:41:15;4880:50;;;;;;;;4955:7;;;;4965:1;-1:-1:-1;4951:341:15;;;4996:12;:10;:12::i;:::-;4986:22;;4982:300;;;5051:7;;;;5028:31;;-1:-1:-1;;;;;5028:22:15;;;:31;;;;;;;;;5051:7;5028:22;:31;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5028:31:15;4982:300;;;5165:7;;;;;5106:55;;;;;;5135:10;5106:55;;;;5155:4;5106:55;;;;;;5165:7;;-1:-1:-1;;;;;5106:28:15;;;;;:55;;;;;5165:7;5106:55;;;;;;-1:-1:-1;5106:28:15;:55;;;5:2:-1;;;;30:1;27;20:12;5:2;5106:55:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5106:55:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5106:55:15;:66;;5098:75;;;;;;5258:7;;;;;5199:67;;;;;;5231:10;5199:67;;;;-1:-1:-1;;;;;5199:67:15;;;;;;;;;;;;;;;;:31;;;;;;:67;;;;;;;;;;-1:-1:-1;5199:31:15;:67;;;5:2:-1;;;;30:1;27;20:12;5:2;5199:67:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5199:67:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5199:67:15;5191:76;;;;;;;5304:1022;-1:-1:-1;;;;;5511:19:15;;;;5503:28;;;;;;5549:11;;:16;;5541:25;;;;;;5584:11;;;;:16;;5576:25;;;;;;5633:7;;5619:11;;:21;5611:30;;;;;;5673:7;;;;;5659:11;;;;:21;5651:30;;;;;;5706:12;:10;:12::i;:::-;5696:22;;5692:86;;;5755:11;;;;5742:9;:24;;5734:33;;;;;;5802:12;:10;:12::i;:::-;5792:22;;5788:300;;-1:-1:-1;;;;;5838:25:15;;;;5830:34;;;;;;5961:7;;;;5945:24;;:8;5966:1;5945:11;;;;;;:24;:15;:24;:::i;:::-;5886:55;;;;;;5915:10;5886:55;;;;5935:4;5886:55;;;;;;-1:-1:-1;;;;;5886:28:15;;;;;:55;;;;;;;;;;;;;;-1:-1:-1;5886:28:15;:55;;;5:2:-1;;;;30:1;27;20:12;5:2;5886:55:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5886:55:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5886:55:15;:83;;5878:92;;;;;;-1:-1:-1;;;;;5992:31:15;;;6024:10;6044:4;6051:24;6067:4;6072:1;6067:7;;;;6051:8;6060:1;6051:11;;:24;5992:84;;;-1:-1:-1;;;5992:84:15;;;;;;-1:-1:-1;;;;;5992:84:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5992:84:15;;;;5:2:-1;;;;30:1;27;20:12;5:2;5992:84:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5992:84:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5992:84:15;5984:93;;;;;;;;6149:11;;6106:64;;;;;;6137:10;6106:64;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6106:30:15;;;;;:64;;;;;6149:11;;6106:64;;;;;;;6158:1;6106:30;:64;;;5:2:-1;;;;30:1;27;20:12;5:2;6106:64:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6106:64:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6106:64:15;6098:73;;;;;;;;6186:11;;;;6200:1;-1:-1:-1;6182:138:15;;;6231:12;:10;:12::i;:::-;6221:22;;6217:93;;;6283:11;;;;6263:32;;:10;;:32;;;;;;;;;6283:11;6263:10;:32;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;3975:265:15;4072:14;;:::i;:::-;4113:1;4102:8;:12;4098:63;;;4128:33;:11;4152:8;4128:33;:23;:33;:::i;:::-;4116:45;;4098:63;4189:1;4175:11;:15;4171:62;;;4204:29;:4;4221:11;4204:29;:16;:29;:::i;:::-;4192:9;;;:41;:6;3975:265;-1:-1:-1;;;;3975:265:15:o;1989:1980::-;2329:14;;:::i;:::-;2840:10;2367:218;2398:6;2418:13;2445;2472:12;2498:22;2534:13;2561:14;2367:17;:218::i;:::-;2359:227;;;;;;;;2628:5;:26;2668:13;2695:14;2723:13;2628:118;;;;;-1:-1:-1;;;2628:118:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2628:118:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2628:118:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2628:118:15;2616:9;;;:130;;;2803:25;-1:-1:-1;2803:25:15;2795:34;;;;;;2862:9;;;;2853:52;;2873:16;2891:13;2853:8;:52::i;:::-;2840:65;;2959:1;2948:8;:12;:100;;3036:12;2948:100;;;2975:46;3012:8;2996:7;:11;:13;;;;;-1:-1:-1;;;2996:13:15;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2996:13:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2996:13:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2996:13:15;2975:12;;2996:24;;2975:46;:20;:46;:::i;:::-;2936:6;2943:1;2936:9;;;:112;;;;;3089:5;:33;3136:47;3158:24;3176:5;3158:7;:11;:13;;;;;-1:-1:-1;;;3158:13:15;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3158:13:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3158:13:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3158:13:15;;:24;:17;:24;:::i;:::-;3136:9;;;;;:21;:47::i;:::-;3197:13;3224:6;3231:1;3224:9;;;;3089:154;;;;;-1:-1:-1;;;3089:154:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3089:154:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3089:154:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3089:154:15;3077:166;;;3302:34;;3298:263;;;3479:9;;;;3364:138;;;;;;3486:1;3364:138;;;;;;;;;;;;;;;;;;;:5;;:26;;:138;;;;;3479:9;;3364:138;;;;;;;:5;:138;;;5:2:-1;;;;30:1;27;20:12;5:2;3364:138:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3364:138:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3364:138:15;3352:9;;;:150;3516:34;;;3298:263;3599:5;:33;3646:6;3653:1;3646:9;;;;3669:14;3697:13;3599:121;;;;;-1:-1:-1;;;3599:121:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3599:121:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3599:121:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3599:121:15;3587:9;;;:133;;;3768:14;;:32;;-1:-1:-1;3786:9:15;;:14;3768:32;3764:130;;;3828:1;3816:13;;;:9;3843;;:13;;;3870:9;;;:13;3764:130;3952:9;;;;3934:28;;:13;;:17;:28::i;:::-;3922:9;;;:40;-1:-1:-1;3922:6:15;1989:1980;-1:-1:-1;;;;;;;;;;1989:1980:15:o;6332:337::-;6431:10;;6453:210;6474:16;:23;6470:1;:27;6453:210;;;6531:16;6548:1;6531:19;;;;;;;;;;;;;;;;;;;6522:28;;6518:135;;6578:13;6592:1;6578:16;;;;;;;;;;;;;;;;;;6570:24;;6518:135;;;6633:5;;6518:135;6499:3;;6453:210;;;6332:337;;;;;;:::o;403:540::-;659:11;707:1;691:13;:17;:50;;;;;740:1;724:13;:17;691:50;:82;;;;;772:1;757:12;:16;691:82;:143;;;;;821:13;815:2;:19;789:22;:45;;691:143;682:152;;859:12;:10;:12::i;:::-;849:22;;845:92;;;896:6;:30;;;;-1:-1:-1;;924:2:15;906:20;;403:540;-1:-1:-1;;;;;;403:540: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", + "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": [ + 6893 + ] + }, + "id": 6894, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 6704, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:21" + }, + { + "absolutePath": "/home/circleci/code/contracts/libs/PurchaseProcessing.sol", + "file": "../../libs/PurchaseProcessing.sol", + "id": 6705, + "nodeType": "ImportDirective", + "scope": 6894, + "sourceUnit": 5855, + "src": "26:43:21", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 6893, + "linearizedBaseContracts": [ + 6893 + ], + "name": "PurchaseProcessingMock", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 6735, + "nodeType": "Block", + "src": "370:261:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6726, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6707, + "src": "437:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 6727, + "name": "paymentAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6709, + "src": "457:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6728, + "name": "methodUSDRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6711, + "src": "484:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6729, + "name": "tokenUSDRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6713, + "src": "511:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6730, + "name": "currentBalanceInTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6715, + "src": "537:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6731, + "name": "tokenDecimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6717, + "src": "573:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6732, + "name": "methodDecimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6719, + "src": "600:14:21", + "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_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6724, + "name": "PurchaseProcessing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5854, + "src": "387:18:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$5854_$", + "typeString": "type(library PurchaseProcessing)" + } + }, + "id": 6725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "checkInvoiceInput", + "nodeType": "MemberAccess", + "referencedDeclaration": 5246, + "src": "387:36:21", + "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": 6733, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "387:237:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 6723, + "id": 6734, + "nodeType": "Return", + "src": "380:244:21" + } + ] + }, + "documentation": null, + "id": 6736, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "checkInvoiceInput", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6720, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6707, + "name": "method", + "nodeType": "VariableDeclaration", + "scope": 6736, + "src": "146:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6706, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "146:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6709, + "name": "paymentAmount", + "nodeType": "VariableDeclaration", + "scope": 6736, + "src": "170:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6708, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "170:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6711, + "name": "methodUSDRate", + "nodeType": "VariableDeclaration", + "scope": 6736, + "src": "198:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6710, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "198:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6713, + "name": "tokenUSDRate", + "nodeType": "VariableDeclaration", + "scope": 6736, + "src": "226:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6712, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "226:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6715, + "name": "currentBalanceInTokens", + "nodeType": "VariableDeclaration", + "scope": 6736, + "src": "253:27:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6714, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "253:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6717, + "name": "tokenDecimals", + "nodeType": "VariableDeclaration", + "scope": 6736, + "src": "290:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6716, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "290:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6719, + "name": "methodDecimals", + "nodeType": "VariableDeclaration", + "scope": 6736, + "src": "318:19:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6718, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "318:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "136:207:21" + }, + "payable": false, + "returnParameters": { + "id": 6723, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6722, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 6736, + "src": "364:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6721, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "364:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "363:6:21" + }, + "scope": 6893, + "src": "110:521:21", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 6779, + "nodeType": "Block", + "src": "988:330:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6767, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6738, + "src": "1045:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 6768, + "name": "paymentAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6740, + "src": "1065:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6769, + "name": "discount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6742, + "src": "1092:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6770, + "name": "volumeBoundaries", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6745, + "src": "1114:16:21", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "argumentTypes": null, + "id": 6771, + "name": "volumeBonuses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6748, + "src": "1144:13:21", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "argumentTypes": null, + "id": 6772, + "name": "methodUSDRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6750, + "src": "1171:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6773, + "name": "tokenUSDRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6752, + "src": "1198:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6774, + "name": "tokenDecimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6754, + "src": "1224:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6775, + "name": "methodDecimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6756, + "src": "1251:14:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6776, + "name": "currentBalanceInTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6758, + "src": "1279:22:21", + "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_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "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": 6765, + "name": "PurchaseProcessing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5854, + "src": "1005:18:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$5854_$", + "typeString": "type(library PurchaseProcessing)" + } + }, + "id": 6766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "invoice", + "nodeType": "MemberAccess", + "referencedDeclaration": 5439, + "src": "1005:26:21", + "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": 6777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1005:306:21", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "functionReturnParameters": 6764, + "id": 6778, + "nodeType": "Return", + "src": "998:313:21" + } + ] + }, + "documentation": null, + "id": 6780, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "invoice", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6759, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6738, + "name": "method", + "nodeType": "VariableDeclaration", + "scope": 6780, + "src": "663:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6737, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "663:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6740, + "name": "paymentAmount", + "nodeType": "VariableDeclaration", + "scope": 6780, + "src": "687:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6739, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "687:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6742, + "name": "discount", + "nodeType": "VariableDeclaration", + "scope": 6780, + "src": "715:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6741, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "715:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6745, + "name": "volumeBoundaries", + "nodeType": "VariableDeclaration", + "scope": 6780, + "src": "738:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 6743, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "738:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6744, + "length": null, + "nodeType": "ArrayTypeName", + "src": "738:6:21", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6748, + "name": "volumeBonuses", + "nodeType": "VariableDeclaration", + "scope": 6780, + "src": "771:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 6746, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "771:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6747, + "length": null, + "nodeType": "ArrayTypeName", + "src": "771:6:21", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6750, + "name": "methodUSDRate", + "nodeType": "VariableDeclaration", + "scope": 6780, + "src": "801:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6749, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "801:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6752, + "name": "tokenUSDRate", + "nodeType": "VariableDeclaration", + "scope": 6780, + "src": "829:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6751, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "829:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6754, + "name": "tokenDecimals", + "nodeType": "VariableDeclaration", + "scope": 6780, + "src": "856:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6753, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "856:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6756, + "name": "methodDecimals", + "nodeType": "VariableDeclaration", + "scope": 6780, + "src": "884:19:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6755, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "884:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6758, + "name": "currentBalanceInTokens", + "nodeType": "VariableDeclaration", + "scope": 6780, + "src": "913:27:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6757, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "913:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "653:293:21" + }, + "payable": false, + "returnParameters": { + "id": 6764, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6763, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 6780, + "src": "975:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5]" + }, + "typeName": { + "baseType": { + "id": 6760, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "975:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6762, + "length": { + "argumentTypes": null, + "hexValue": "35", + "id": 6761, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "980:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "5" + }, + "nodeType": "ArrayTypeName", + "src": "975:7:21", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr", + "typeString": "uint256[5]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "974:9:21" + }, + "scope": 6893, + "src": "637:681:21", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 6803, + "nodeType": "Block", + "src": "1428:146:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6797, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6782, + "src": "1481:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6798, + "name": "cost", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6784, + "src": "1506:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6799, + "name": "tokenFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6786, + "src": "1524:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6800, + "name": "purchaseFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6788, + "src": "1546:11:21", + "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": 6795, + "name": "PurchaseProcessing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5854, + "src": "1445:18:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$5854_$", + "typeString": "type(library PurchaseProcessing)" + } + }, + "id": 6796, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "fee", + "nodeType": "MemberAccess", + "referencedDeclaration": 5481, + "src": "1445:22:21", + "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": 6801, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1445:122:21", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + "functionReturnParameters": 6794, + "id": 6802, + "nodeType": "Return", + "src": "1438:129:21" + } + ] + }, + "documentation": null, + "id": 6804, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "fee", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6789, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6782, + "name": "tokenAmount", + "nodeType": "VariableDeclaration", + "scope": 6804, + "src": "1337:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6781, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1337:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6784, + "name": "cost", + "nodeType": "VariableDeclaration", + "scope": 6804, + "src": "1355:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6783, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1355:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6786, + "name": "tokenFee", + "nodeType": "VariableDeclaration", + "scope": 6804, + "src": "1366:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6785, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1366:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6788, + "name": "purchaseFee", + "nodeType": "VariableDeclaration", + "scope": 6804, + "src": "1381:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6787, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1381:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1336:62:21" + }, + "payable": false, + "returnParameters": { + "id": 6794, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6793, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 6804, + "src": "1419:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2]" + }, + "typeName": { + "baseType": { + "id": 6790, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1419:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6792, + "length": { + "argumentTypes": null, + "hexValue": "32", + "id": 6791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1424:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "1419:7:21", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1418:9:21" + }, + "scope": 6893, + "src": "1324:250:21", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 6835, + "nodeType": "Block", + "src": "1808:214:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6826, + "name": "_fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6808, + "src": "1862:4:21", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + { + "argumentTypes": null, + "id": 6827, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6810, + "src": "1880:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 6828, + "name": "methodToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6812, + "src": "1900:11:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6829, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6814, + "src": "1925:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6830, + "name": "originToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6816, + "src": "1944:11:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6831, + "name": "exchanger", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6818, + "src": "1969:9:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6832, + "name": "serviceWallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6820, + "src": "1992:13:21", + "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": 6823, + "name": "PurchaseProcessing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5854, + "src": "1818:18:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$5854_$", + "typeString": "type(library PurchaseProcessing)" + } + }, + "id": 6825, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFee", + "nodeType": "MemberAccess", + "referencedDeclaration": 5638, + "src": "1818:30:21", + "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)" + } + }, + "id": 6833, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1818:197:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6834, + "nodeType": "ExpressionStatement", + "src": "1818:197:21" + } + ] + }, + "documentation": null, + "id": 6836, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferFee", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6821, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6808, + "name": "_fee", + "nodeType": "VariableDeclaration", + "scope": 6836, + "src": "1610:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2]" + }, + "typeName": { + "baseType": { + "id": 6805, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1610:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6807, + "length": { + "argumentTypes": null, + "hexValue": "32", + "id": 6806, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1616:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "1610:8:21", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6810, + "name": "method", + "nodeType": "VariableDeclaration", + "scope": 6836, + "src": "1633:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6809, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1633:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6812, + "name": "methodToken", + "nodeType": "VariableDeclaration", + "scope": 6836, + "src": "1657:19:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6811, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1657:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6814, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 6836, + "src": "1686:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6813, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1686:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6816, + "name": "originToken", + "nodeType": "VariableDeclaration", + "scope": 6836, + "src": "1709:19:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6815, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1709:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6818, + "name": "exchanger", + "nodeType": "VariableDeclaration", + "scope": 6836, + "src": "1738:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6817, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1738:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6820, + "name": "serviceWallet", + "nodeType": "VariableDeclaration", + "scope": 6836, + "src": "1765:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6819, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1765:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1600:192:21" + }, + "payable": true, + "returnParameters": { + "id": 6822, + "nodeType": "ParameterList", + "parameters": [], + "src": "1808:0:21" + }, + "scope": 6893, + "src": "1580:442:21", + "stateMutability": "payable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 6866, + "nodeType": "Block", + "src": "2169:187:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6858, + "name": "_invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6840, + "src": "2228:8:21", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + { + "argumentTypes": null, + "id": 6859, + "name": "_fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6844, + "src": "2250:4:21", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + { + "argumentTypes": null, + "id": 6860, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6846, + "src": "2268:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 6861, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6848, + "src": "2289:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 6862, + "name": "methodToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6850, + "src": "2309:11:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6863, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6852, + "src": "2334:5:21", + "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": 6855, + "name": "PurchaseProcessing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5854, + "src": "2179:18:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$5854_$", + "typeString": "type(library PurchaseProcessing)" + } + }, + "id": 6857, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferPurchase", + "nodeType": "MemberAccess", + "referencedDeclaration": 5811, + "src": "2179:35:21", + "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)" + } + }, + "id": 6864, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2179:170:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6865, + "nodeType": "ExpressionStatement", + "src": "2179:170:21" + } + ] + }, + "documentation": null, + "id": 6867, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferPurchase", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6853, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6840, + "name": "_invoice", + "nodeType": "VariableDeclaration", + "scope": 6867, + "src": "2054:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5]" + }, + "typeName": { + "baseType": { + "id": 6837, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2054:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6839, + "length": { + "argumentTypes": null, + "hexValue": "35", + "id": 6838, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2059:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "5" + }, + "nodeType": "ArrayTypeName", + "src": "2054:7:21", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr", + "typeString": "uint256[5]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6844, + "name": "_fee", + "nodeType": "VariableDeclaration", + "scope": 6867, + "src": "2072:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2]" + }, + "typeName": { + "baseType": { + "id": 6841, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2072:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6843, + "length": { + "argumentTypes": null, + "hexValue": "32", + "id": 6842, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2077:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "2072:7:21", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6846, + "name": "vesting", + "nodeType": "VariableDeclaration", + "scope": 6867, + "src": "2086:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 6845, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "2086:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6848, + "name": "method", + "nodeType": "VariableDeclaration", + "scope": 6867, + "src": "2102:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6847, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2102:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6850, + "name": "methodToken", + "nodeType": "VariableDeclaration", + "scope": 6867, + "src": "2118:19:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6849, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2118:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6852, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 6867, + "src": "2139:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6851, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2139:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2053:100:21" + }, + "payable": true, + "returnParameters": { + "id": 6854, + "nodeType": "ParameterList", + "parameters": [], + "src": "2169:0:21" + }, + "scope": 6893, + "src": "2028:328:21", + "stateMutability": "payable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 6887, + "nodeType": "Block", + "src": "2471:137:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6882, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6869, + "src": "2529:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6883, + "name": "volumeBoundaries", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6872, + "src": "2548:16:21", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "argumentTypes": null, + "id": 6884, + "name": "volumeBonuses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6875, + "src": "2578:13:21", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 6880, + "name": "PurchaseProcessing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5854, + "src": "2488:18:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$5854_$", + "typeString": "type(library PurchaseProcessing)" + } + }, + "id": 6881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getBonus", + "nodeType": "MemberAccess", + "referencedDeclaration": 5853, + "src": "2488:27:21", + "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": 6885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2488:113:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 6879, + "id": 6886, + "nodeType": "Return", + "src": "2481:120:21" + } + ] + }, + "documentation": null, + "id": 6888, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getBonus", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6876, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6869, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 6888, + "src": "2380:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6868, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2380:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6872, + "name": "volumeBoundaries", + "nodeType": "VariableDeclaration", + "scope": 6888, + "src": "2392:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 6870, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2392:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6871, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2392:6:21", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6875, + "name": "volumeBonuses", + "nodeType": "VariableDeclaration", + "scope": 6888, + "src": "2417:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 6873, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2417:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6874, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2417:6:21", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2379:59:21" + }, + "payable": false, + "returnParameters": { + "id": 6879, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6878, + "name": "bonus", + "nodeType": "VariableDeclaration", + "scope": 6888, + "src": "2459:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6877, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2459:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2458:12:21" + }, + "scope": 6893, + "src": "2362:246:21", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 6891, + "nodeType": "Block", + "src": "2641:2:21", + "statements": [] + }, + "documentation": null, + "id": 6892, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6889, + "nodeType": "ParameterList", + "parameters": [], + "src": "2623:2:21" + }, + "payable": true, + "returnParameters": { + "id": 6890, + "nodeType": "ParameterList", + "parameters": [], + "src": "2641:0:21" + }, + "scope": 6893, + "src": "2614:29:21", + "stateMutability": "payable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 6894, + "src": "71:2574:21" + } + ], + "src": "0:2646:21" + }, + "legacyAST": { + "absolutePath": "/home/circleci/code/contracts/mocks/libs/PurchaseProcessing.sol", + "exportedSymbols": { + "PurchaseProcessingMock": [ + 6893 + ] + }, + "id": 6894, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 6704, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:21" + }, + { + "absolutePath": "/home/circleci/code/contracts/libs/PurchaseProcessing.sol", + "file": "../../libs/PurchaseProcessing.sol", + "id": 6705, + "nodeType": "ImportDirective", + "scope": 6894, + "sourceUnit": 5855, + "src": "26:43:21", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 6893, + "linearizedBaseContracts": [ + 6893 + ], + "name": "PurchaseProcessingMock", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 6735, + "nodeType": "Block", + "src": "370:261:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6726, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6707, + "src": "437:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 6727, + "name": "paymentAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6709, + "src": "457:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6728, + "name": "methodUSDRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6711, + "src": "484:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6729, + "name": "tokenUSDRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6713, + "src": "511:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6730, + "name": "currentBalanceInTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6715, + "src": "537:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6731, + "name": "tokenDecimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6717, + "src": "573:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6732, + "name": "methodDecimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6719, + "src": "600:14:21", + "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_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6724, + "name": "PurchaseProcessing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5854, + "src": "387:18:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$5854_$", + "typeString": "type(library PurchaseProcessing)" + } + }, + "id": 6725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "checkInvoiceInput", + "nodeType": "MemberAccess", + "referencedDeclaration": 5246, + "src": "387:36:21", + "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": 6733, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "387:237:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 6723, + "id": 6734, + "nodeType": "Return", + "src": "380:244:21" + } + ] + }, + "documentation": null, + "id": 6736, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "checkInvoiceInput", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6720, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6707, + "name": "method", + "nodeType": "VariableDeclaration", + "scope": 6736, + "src": "146:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6706, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "146:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6709, + "name": "paymentAmount", + "nodeType": "VariableDeclaration", + "scope": 6736, + "src": "170:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6708, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "170:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6711, + "name": "methodUSDRate", + "nodeType": "VariableDeclaration", + "scope": 6736, + "src": "198:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6710, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "198:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6713, + "name": "tokenUSDRate", + "nodeType": "VariableDeclaration", + "scope": 6736, + "src": "226:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6712, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "226:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6715, + "name": "currentBalanceInTokens", + "nodeType": "VariableDeclaration", + "scope": 6736, + "src": "253:27:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6714, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "253:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6717, + "name": "tokenDecimals", + "nodeType": "VariableDeclaration", + "scope": 6736, + "src": "290:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6716, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "290:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6719, + "name": "methodDecimals", + "nodeType": "VariableDeclaration", + "scope": 6736, + "src": "318:19:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6718, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "318:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "136:207:21" + }, + "payable": false, + "returnParameters": { + "id": 6723, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6722, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 6736, + "src": "364:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6721, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "364:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "363:6:21" + }, + "scope": 6893, + "src": "110:521:21", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 6779, + "nodeType": "Block", + "src": "988:330:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6767, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6738, + "src": "1045:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 6768, + "name": "paymentAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6740, + "src": "1065:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6769, + "name": "discount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6742, + "src": "1092:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6770, + "name": "volumeBoundaries", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6745, + "src": "1114:16:21", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "argumentTypes": null, + "id": 6771, + "name": "volumeBonuses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6748, + "src": "1144:13:21", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "argumentTypes": null, + "id": 6772, + "name": "methodUSDRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6750, + "src": "1171:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6773, + "name": "tokenUSDRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6752, + "src": "1198:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6774, + "name": "tokenDecimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6754, + "src": "1224:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6775, + "name": "methodDecimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6756, + "src": "1251:14:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6776, + "name": "currentBalanceInTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6758, + "src": "1279:22:21", + "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_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "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": 6765, + "name": "PurchaseProcessing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5854, + "src": "1005:18:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$5854_$", + "typeString": "type(library PurchaseProcessing)" + } + }, + "id": 6766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "invoice", + "nodeType": "MemberAccess", + "referencedDeclaration": 5439, + "src": "1005:26:21", + "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": 6777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1005:306:21", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "functionReturnParameters": 6764, + "id": 6778, + "nodeType": "Return", + "src": "998:313:21" + } + ] + }, + "documentation": null, + "id": 6780, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "invoice", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6759, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6738, + "name": "method", + "nodeType": "VariableDeclaration", + "scope": 6780, + "src": "663:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6737, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "663:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6740, + "name": "paymentAmount", + "nodeType": "VariableDeclaration", + "scope": 6780, + "src": "687:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6739, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "687:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6742, + "name": "discount", + "nodeType": "VariableDeclaration", + "scope": 6780, + "src": "715:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6741, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "715:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6745, + "name": "volumeBoundaries", + "nodeType": "VariableDeclaration", + "scope": 6780, + "src": "738:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 6743, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "738:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6744, + "length": null, + "nodeType": "ArrayTypeName", + "src": "738:6:21", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6748, + "name": "volumeBonuses", + "nodeType": "VariableDeclaration", + "scope": 6780, + "src": "771:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 6746, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "771:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6747, + "length": null, + "nodeType": "ArrayTypeName", + "src": "771:6:21", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6750, + "name": "methodUSDRate", + "nodeType": "VariableDeclaration", + "scope": 6780, + "src": "801:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6749, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "801:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6752, + "name": "tokenUSDRate", + "nodeType": "VariableDeclaration", + "scope": 6780, + "src": "829:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6751, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "829:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6754, + "name": "tokenDecimals", + "nodeType": "VariableDeclaration", + "scope": 6780, + "src": "856:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6753, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "856:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6756, + "name": "methodDecimals", + "nodeType": "VariableDeclaration", + "scope": 6780, + "src": "884:19:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6755, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "884:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6758, + "name": "currentBalanceInTokens", + "nodeType": "VariableDeclaration", + "scope": 6780, + "src": "913:27:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6757, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "913:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "653:293:21" + }, + "payable": false, + "returnParameters": { + "id": 6764, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6763, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 6780, + "src": "975:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5]" + }, + "typeName": { + "baseType": { + "id": 6760, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "975:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6762, + "length": { + "argumentTypes": null, + "hexValue": "35", + "id": 6761, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "980:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "5" + }, + "nodeType": "ArrayTypeName", + "src": "975:7:21", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr", + "typeString": "uint256[5]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "974:9:21" + }, + "scope": 6893, + "src": "637:681:21", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 6803, + "nodeType": "Block", + "src": "1428:146:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6797, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6782, + "src": "1481:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6798, + "name": "cost", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6784, + "src": "1506:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6799, + "name": "tokenFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6786, + "src": "1524:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6800, + "name": "purchaseFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6788, + "src": "1546:11:21", + "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": 6795, + "name": "PurchaseProcessing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5854, + "src": "1445:18:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$5854_$", + "typeString": "type(library PurchaseProcessing)" + } + }, + "id": 6796, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "fee", + "nodeType": "MemberAccess", + "referencedDeclaration": 5481, + "src": "1445:22:21", + "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": 6801, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1445:122:21", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + "functionReturnParameters": 6794, + "id": 6802, + "nodeType": "Return", + "src": "1438:129:21" + } + ] + }, + "documentation": null, + "id": 6804, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "fee", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6789, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6782, + "name": "tokenAmount", + "nodeType": "VariableDeclaration", + "scope": 6804, + "src": "1337:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6781, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1337:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6784, + "name": "cost", + "nodeType": "VariableDeclaration", + "scope": 6804, + "src": "1355:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6783, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1355:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6786, + "name": "tokenFee", + "nodeType": "VariableDeclaration", + "scope": 6804, + "src": "1366:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6785, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1366:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6788, + "name": "purchaseFee", + "nodeType": "VariableDeclaration", + "scope": 6804, + "src": "1381:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6787, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1381:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1336:62:21" + }, + "payable": false, + "returnParameters": { + "id": 6794, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6793, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 6804, + "src": "1419:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2]" + }, + "typeName": { + "baseType": { + "id": 6790, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1419:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6792, + "length": { + "argumentTypes": null, + "hexValue": "32", + "id": 6791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1424:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "1419:7:21", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1418:9:21" + }, + "scope": 6893, + "src": "1324:250:21", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 6835, + "nodeType": "Block", + "src": "1808:214:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6826, + "name": "_fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6808, + "src": "1862:4:21", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + { + "argumentTypes": null, + "id": 6827, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6810, + "src": "1880:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 6828, + "name": "methodToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6812, + "src": "1900:11:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6829, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6814, + "src": "1925:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6830, + "name": "originToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6816, + "src": "1944:11:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6831, + "name": "exchanger", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6818, + "src": "1969:9:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6832, + "name": "serviceWallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6820, + "src": "1992:13:21", + "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": 6823, + "name": "PurchaseProcessing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5854, + "src": "1818:18:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$5854_$", + "typeString": "type(library PurchaseProcessing)" + } + }, + "id": 6825, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFee", + "nodeType": "MemberAccess", + "referencedDeclaration": 5638, + "src": "1818:30:21", + "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)" + } + }, + "id": 6833, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1818:197:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6834, + "nodeType": "ExpressionStatement", + "src": "1818:197:21" + } + ] + }, + "documentation": null, + "id": 6836, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferFee", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6821, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6808, + "name": "_fee", + "nodeType": "VariableDeclaration", + "scope": 6836, + "src": "1610:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2]" + }, + "typeName": { + "baseType": { + "id": 6805, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1610:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6807, + "length": { + "argumentTypes": null, + "hexValue": "32", + "id": 6806, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1616:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "1610:8:21", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6810, + "name": "method", + "nodeType": "VariableDeclaration", + "scope": 6836, + "src": "1633:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6809, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1633:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6812, + "name": "methodToken", + "nodeType": "VariableDeclaration", + "scope": 6836, + "src": "1657:19:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6811, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1657:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6814, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 6836, + "src": "1686:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6813, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1686:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6816, + "name": "originToken", + "nodeType": "VariableDeclaration", + "scope": 6836, + "src": "1709:19:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6815, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1709:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6818, + "name": "exchanger", + "nodeType": "VariableDeclaration", + "scope": 6836, + "src": "1738:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6817, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1738:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6820, + "name": "serviceWallet", + "nodeType": "VariableDeclaration", + "scope": 6836, + "src": "1765:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6819, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1765:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1600:192:21" + }, + "payable": true, + "returnParameters": { + "id": 6822, + "nodeType": "ParameterList", + "parameters": [], + "src": "1808:0:21" + }, + "scope": 6893, + "src": "1580:442:21", + "stateMutability": "payable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 6866, + "nodeType": "Block", + "src": "2169:187:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6858, + "name": "_invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6840, + "src": "2228:8:21", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + { + "argumentTypes": null, + "id": 6859, + "name": "_fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6844, + "src": "2250:4:21", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + { + "argumentTypes": null, + "id": 6860, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6846, + "src": "2268:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 6861, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6848, + "src": "2289:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 6862, + "name": "methodToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6850, + "src": "2309:11:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6863, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6852, + "src": "2334:5:21", + "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": 6855, + "name": "PurchaseProcessing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5854, + "src": "2179:18:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$5854_$", + "typeString": "type(library PurchaseProcessing)" + } + }, + "id": 6857, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferPurchase", + "nodeType": "MemberAccess", + "referencedDeclaration": 5811, + "src": "2179:35:21", + "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)" + } + }, + "id": 6864, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2179:170:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6865, + "nodeType": "ExpressionStatement", + "src": "2179:170:21" + } + ] + }, + "documentation": null, + "id": 6867, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferPurchase", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6853, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6840, + "name": "_invoice", + "nodeType": "VariableDeclaration", + "scope": 6867, + "src": "2054:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5]" + }, + "typeName": { + "baseType": { + "id": 6837, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2054:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6839, + "length": { + "argumentTypes": null, + "hexValue": "35", + "id": 6838, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2059:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "5" + }, + "nodeType": "ArrayTypeName", + "src": "2054:7:21", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr", + "typeString": "uint256[5]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6844, + "name": "_fee", + "nodeType": "VariableDeclaration", + "scope": 6867, + "src": "2072:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2]" + }, + "typeName": { + "baseType": { + "id": 6841, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2072:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6843, + "length": { + "argumentTypes": null, + "hexValue": "32", + "id": 6842, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2077:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "2072:7:21", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6846, + "name": "vesting", + "nodeType": "VariableDeclaration", + "scope": 6867, + "src": "2086:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 6845, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "2086:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6848, + "name": "method", + "nodeType": "VariableDeclaration", + "scope": 6867, + "src": "2102:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6847, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2102:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6850, + "name": "methodToken", + "nodeType": "VariableDeclaration", + "scope": 6867, + "src": "2118:19:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6849, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2118:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6852, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 6867, + "src": "2139:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6851, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2139:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2053:100:21" + }, + "payable": true, + "returnParameters": { + "id": 6854, + "nodeType": "ParameterList", + "parameters": [], + "src": "2169:0:21" + }, + "scope": 6893, + "src": "2028:328:21", + "stateMutability": "payable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 6887, + "nodeType": "Block", + "src": "2471:137:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6882, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6869, + "src": "2529:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6883, + "name": "volumeBoundaries", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6872, + "src": "2548:16:21", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "argumentTypes": null, + "id": 6884, + "name": "volumeBonuses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6875, + "src": "2578:13:21", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 6880, + "name": "PurchaseProcessing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5854, + "src": "2488:18:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$5854_$", + "typeString": "type(library PurchaseProcessing)" + } + }, + "id": 6881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getBonus", + "nodeType": "MemberAccess", + "referencedDeclaration": 5853, + "src": "2488:27:21", + "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": 6885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2488:113:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 6879, + "id": 6886, + "nodeType": "Return", + "src": "2481:120:21" + } + ] + }, + "documentation": null, + "id": 6888, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getBonus", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6876, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6869, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 6888, + "src": "2380:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6868, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2380:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6872, + "name": "volumeBoundaries", + "nodeType": "VariableDeclaration", + "scope": 6888, + "src": "2392:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 6870, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2392:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6871, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2392:6:21", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6875, + "name": "volumeBonuses", + "nodeType": "VariableDeclaration", + "scope": 6888, + "src": "2417:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 6873, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2417:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6874, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2417:6:21", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2379:59:21" + }, + "payable": false, + "returnParameters": { + "id": 6879, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6878, + "name": "bonus", + "nodeType": "VariableDeclaration", + "scope": 6888, + "src": "2459:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6877, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2459:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2458:12:21" + }, + "scope": 6893, + "src": "2362:246:21", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 6891, + "nodeType": "Block", + "src": "2641:2:21", + "statements": [] + }, + "documentation": null, + "id": 6892, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6889, + "nodeType": "ParameterList", + "parameters": [], + "src": "2623:2:21" + }, + "payable": true, + "returnParameters": { + "id": 6890, + "nodeType": "ParameterList", + "parameters": [], + "src": "2641:0:21" + }, + "scope": 6893, + "src": "2614:29:21", + "stateMutability": "payable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 6894, + "src": "71:2574:21" + } + ], + "src": "0:2646:21" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.1", + "updatedAt": "2018-10-22T07:59:52.069Z" +} \ No newline at end of file diff --git a/build/contracts/RBAC.json b/build/contracts/RBAC.json new file mode 100644 index 00000000..5bc043eb --- /dev/null +++ b/build/contracts/RBAC.json @@ -0,0 +1,2725 @@ +{ + "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" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b5061029c806100206000396000f30060806040526004361061004b5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630988ca8c8114610050578063217fe6c6146100c6575b600080fd5b34801561005c57600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526100c495833573ffffffffffffffffffffffffffffffffffffffff1695369560449491939091019190819084018382808284375094975061014e9650505050505050565b005b3480156100d257600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855261013a95833573ffffffffffffffffffffffffffffffffffffffff169536956044949193909101919081908401838280828437509497506101bc9650505050505050565b604080519115158252519081900360200190f35b6101b8826000836040518082805190602001908083835b602083106101845780518252601f199092019160209182019101610165565b51815160209384036101000a600019018019909216911617905292019485525060405193849003019092209291505061022f565b5050565b6000610228836000846040518082805190602001908083835b602083106101f45780518252601f1990920191602091820191016101d5565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922092915050610244565b9392505050565b6102398282610244565b15156101b857600080fd5b73ffffffffffffffffffffffffffffffffffffffff166000908152602091909152604090205460ff16905600a165627a7a723058201985dbb9d96e2f96a2372e1509a93153004c92f3948522bfab012ad050c15d550029", + "deployedBytecode": "0x60806040526004361061004b5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630988ca8c8114610050578063217fe6c6146100c6575b600080fd5b34801561005c57600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526100c495833573ffffffffffffffffffffffffffffffffffffffff1695369560449491939091019190819084018382808284375094975061014e9650505050505050565b005b3480156100d257600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855261013a95833573ffffffffffffffffffffffffffffffffffffffff169536956044949193909101919081908401838280828437509497506101bc9650505050505050565b604080519115158252519081900360200190f35b6101b8826000836040518082805190602001908083835b602083106101845780518252601f199092019160209182019101610165565b51815160209384036101000a600019018019909216911617905292019485525060405193849003019092209291505061022f565b5050565b6000610228836000846040518082805190602001908083835b602083106101f45780518252601f1990920191602091820191016101d5565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922092915050610244565b9392505050565b6102398282610244565b15156101b857600080fd5b73ffffffffffffffffffffffffffffffffffffffff166000908152602091909152604090205460ff16905600a165627a7a723058201985dbb9d96e2f96a2372e1509a93153004c92f3948522bfab012ad050c15d550029", + "sourceMap": "478:2158:42:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;478:2158:42;;;;;;;", + "deployedSourceMap": "478:2158:42:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;837:114;;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;;;1091:136;;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;;;;;;;;;;;;;;;;;;;837:114;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;1091:136::-;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;-1:-1:-1;;;1091:136:42:o;666:111:43:-;754:17;758:5;765;754:3;:17::i;:::-;746:26;;;;;;;855:128;959:19;;938:4;959:19;;;;;;;;;;;;;;;855:128::o", + "source": "pragma solidity ^0.4.24;\n\nimport \"./Roles.sol\";\n\n\n/**\n * @title RBAC (Role-Based Access Control)\n * @author Matt Condon (@Shrugs)\n * @dev Stores and provides setters and getters for roles and addresses.\n * Supports unlimited numbers of roles and addresses.\n * See //contracts/mocks/RBACMock.sol for an example of usage.\n * This RBAC method uses strings to key roles. It may be beneficial\n * for you to write your own implementation of this interface using Enums or similar.\n */\ncontract RBAC {\n using Roles for Roles.Role;\n\n mapping (string => Roles.Role) private roles;\n\n event RoleAdded(address indexed operator, string role);\n event RoleRemoved(address indexed operator, string role);\n\n /**\n * @dev reverts if addr does not have role\n * @param _operator address\n * @param _role the name of the role\n * // reverts\n */\n function checkRole(address _operator, string _role)\n public\n view\n {\n roles[_role].check(_operator);\n }\n\n /**\n * @dev determine if addr has role\n * @param _operator address\n * @param _role the name of the role\n * @return bool\n */\n function hasRole(address _operator, string _role)\n public\n view\n returns (bool)\n {\n return roles[_role].has(_operator);\n }\n\n /**\n * @dev add a role to an address\n * @param _operator address\n * @param _role the name of the role\n */\n function addRole(address _operator, string _role)\n internal\n {\n roles[_role].add(_operator);\n emit RoleAdded(_operator, _role);\n }\n\n /**\n * @dev remove a role from an address\n * @param _operator address\n * @param _role the name of the role\n */\n function removeRole(address _operator, string _role)\n internal\n {\n roles[_role].remove(_operator);\n emit RoleRemoved(_operator, _role);\n }\n\n /**\n * @dev modifier to scope access to a single role (uses msg.sender as addr)\n * @param _role the name of the role\n * // reverts\n */\n modifier onlyRole(string _role)\n {\n checkRole(msg.sender, _role);\n _;\n }\n\n /**\n * @dev modifier to scope access to a set of roles (uses msg.sender as addr)\n * @param _roles the names of the roles to scope access to\n * // reverts\n *\n * @TODO - when solidity supports dynamic arrays as arguments to modifiers, provide this\n * see: https://github.com/ethereum/solidity/issues/2467\n */\n // modifier onlyRoles(string[] _roles) {\n // bool hasAnyRole = false;\n // for (uint8 i = 0; i < _roles.length; i++) {\n // if (hasRole(msg.sender, _roles[i])) {\n // hasAnyRole = true;\n // break;\n // }\n // }\n\n // require(hasAnyRole);\n\n // _;\n // }\n}\n", + "sourcePath": "openzeppelin-solidity/contracts/access/rbac/RBAC.sol", + "ast": { + "absolutePath": "openzeppelin-solidity/contracts/access/rbac/RBAC.sol", + "exportedSymbols": { + "RBAC": [ + 9438 + ] + }, + "id": 9439, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 9333, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:42" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/access/rbac/Roles.sol", + "file": "./Roles.sol", + "id": 9334, + "nodeType": "ImportDirective", + "scope": 9439, + "sourceUnit": 9509, + "src": "26:21:42", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": "@title RBAC (Role-Based Access Control)\n@author Matt Condon (@Shrugs)\n@dev Stores and provides setters and getters for roles and addresses.\nSupports unlimited numbers of roles and addresses.\nSee //contracts/mocks/RBACMock.sol for an example of usage.\nThis RBAC method uses strings to key roles. It may be beneficial\nfor you to write your own implementation of this interface using Enums or similar.", + "fullyImplemented": true, + "id": 9438, + "linearizedBaseContracts": [ + 9438 + ], + "name": "RBAC", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 9337, + "libraryName": { + "contractScope": null, + "id": 9335, + "name": "Roles", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9508, + "src": "502:5:42", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Roles_$9508", + "typeString": "library Roles" + } + }, + "nodeType": "UsingForDirective", + "src": "496:27:42", + "typeName": { + "contractScope": null, + "id": 9336, + "name": "Roles.Role", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9445, + "src": "512:10:42", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$9445_storage_ptr", + "typeString": "struct Roles.Role" + } + } + }, + { + "constant": false, + "id": 9341, + "name": "roles", + "nodeType": "VariableDeclaration", + "scope": 9438, + "src": "527:44:42", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_string_memory_$_t_struct$_Role_$9445_storage_$", + "typeString": "mapping(string => struct Roles.Role)" + }, + "typeName": { + "id": 9340, + "keyType": { + "id": 9338, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "536:6:42", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "nodeType": "Mapping", + "src": "527:30:42", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_string_memory_$_t_struct$_Role_$9445_storage_$", + "typeString": "mapping(string => struct Roles.Role)" + }, + "valueType": { + "contractScope": null, + "id": 9339, + "name": "Roles.Role", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9445, + "src": "546:10:42", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$9445_storage_ptr", + "typeString": "struct Roles.Role" + } + } + }, + "value": null, + "visibility": "private" + }, + { + "anonymous": false, + "documentation": null, + "id": 9347, + "name": "RoleAdded", + "nodeType": "EventDefinition", + "parameters": { + "id": 9346, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9343, + "indexed": true, + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 9347, + "src": "592:24:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9342, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "592:7:42", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9345, + "indexed": false, + "name": "role", + "nodeType": "VariableDeclaration", + "scope": 9347, + "src": "618:11:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 9344, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "618:6:42", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "591:39:42" + }, + "src": "576:55:42" + }, + { + "anonymous": false, + "documentation": null, + "id": 9353, + "name": "RoleRemoved", + "nodeType": "EventDefinition", + "parameters": { + "id": 9352, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9349, + "indexed": true, + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 9353, + "src": "652:24:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9348, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "652:7:42", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9351, + "indexed": false, + "name": "role", + "nodeType": "VariableDeclaration", + "scope": 9353, + "src": "678:11:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 9350, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "678:6:42", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "651:39:42" + }, + "src": "634:57:42" + }, + { + "body": { + "id": 9367, + "nodeType": "Block", + "src": "911:40:42", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9364, + "name": "_operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9355, + "src": "936:9:42", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 9360, + "name": "roles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9341, + "src": "917:5:42", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_string_memory_$_t_struct$_Role_$9445_storage_$", + "typeString": "mapping(string memory => struct Roles.Role storage ref)" + } + }, + "id": 9362, + "indexExpression": { + "argumentTypes": null, + "id": 9361, + "name": "_role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9357, + "src": "923:5:42", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "917:12:42", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$9445_storage", + "typeString": "struct Roles.Role storage ref" + } + }, + "id": 9363, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "check", + "nodeType": "MemberAccess", + "referencedDeclaration": 9492, + "src": "917:18:42", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$9445_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$9445_storage_ptr_$", + "typeString": "function (struct Roles.Role storage pointer,address) view" + } + }, + "id": 9365, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "917:29:42", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9366, + "nodeType": "ExpressionStatement", + "src": "917:29:42" + } + ] + }, + "documentation": "@dev reverts if addr does not have role\n@param _operator address\n@param _role the name of the role\n// reverts", + "id": 9368, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "checkRole", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9358, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9355, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 9368, + "src": "856:17:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9354, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "856:7:42", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9357, + "name": "_role", + "nodeType": "VariableDeclaration", + "scope": 9368, + "src": "875:12:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 9356, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "875:6:42", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "855:33:42" + }, + "payable": false, + "returnParameters": { + "id": 9359, + "nodeType": "ParameterList", + "parameters": [], + "src": "911:0:42" + }, + "scope": 9438, + "src": "837:114:42", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 9384, + "nodeType": "Block", + "src": "1182:45:42", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9381, + "name": "_operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9370, + "src": "1212:9:42", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 9377, + "name": "roles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9341, + "src": "1195:5:42", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_string_memory_$_t_struct$_Role_$9445_storage_$", + "typeString": "mapping(string memory => struct Roles.Role storage ref)" + } + }, + "id": 9379, + "indexExpression": { + "argumentTypes": null, + "id": 9378, + "name": "_role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9372, + "src": "1201:5:42", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1195:12:42", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$9445_storage", + "typeString": "struct Roles.Role storage ref" + } + }, + "id": 9380, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "has", + "nodeType": "MemberAccess", + "referencedDeclaration": 9507, + "src": "1195:16:42", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$9445_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Role_$9445_storage_ptr_$", + "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)" + } + }, + "id": 9382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1195:27:42", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 9376, + "id": 9383, + "nodeType": "Return", + "src": "1188:34:42" + } + ] + }, + "documentation": "@dev determine if addr has role\n@param _operator address\n@param _role the name of the role\n@return bool", + "id": 9385, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "hasRole", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9373, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9370, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 9385, + "src": "1108:17:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9369, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1108:7:42", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9372, + "name": "_role", + "nodeType": "VariableDeclaration", + "scope": 9385, + "src": "1127:12:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 9371, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1127:6:42", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1107:33:42" + }, + "payable": false, + "returnParameters": { + "id": 9376, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9375, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9385, + "src": "1174:4:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9374, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1174:4:42", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1173:6:42" + }, + "scope": 9438, + "src": "1091:136:42", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 9404, + "nodeType": "Block", + "src": "1412:76:42", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9396, + "name": "_operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9387, + "src": "1435:9:42", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 9392, + "name": "roles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9341, + "src": "1418:5:42", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_string_memory_$_t_struct$_Role_$9445_storage_$", + "typeString": "mapping(string memory => struct Roles.Role storage ref)" + } + }, + "id": 9394, + "indexExpression": { + "argumentTypes": null, + "id": 9393, + "name": "_role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9389, + "src": "1424:5:42", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1418:12:42", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$9445_storage", + "typeString": "struct Roles.Role storage ref" + } + }, + "id": 9395, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9461, + "src": "1418:16:42", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$9445_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$9445_storage_ptr_$", + "typeString": "function (struct Roles.Role storage pointer,address)" + } + }, + "id": 9397, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1418:27:42", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9398, + "nodeType": "ExpressionStatement", + "src": "1418:27:42" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9400, + "name": "_operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9387, + "src": "1466:9:42", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 9401, + "name": "_role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9389, + "src": "1477:5:42", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 9399, + "name": "RoleAdded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9347, + "src": "1456:9:42", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (address,string memory)" + } + }, + "id": 9402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1456:27:42", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9403, + "nodeType": "EmitStatement", + "src": "1451:32:42" + } + ] + }, + "documentation": "@dev add a role to an address\n@param _operator address\n@param _role the name of the role", + "id": 9405, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "addRole", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9390, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9387, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 9405, + "src": "1364:17:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9386, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1364:7:42", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9389, + "name": "_role", + "nodeType": "VariableDeclaration", + "scope": 9405, + "src": "1383:12:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 9388, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1383:6:42", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1363:33:42" + }, + "payable": false, + "returnParameters": { + "id": 9391, + "nodeType": "ParameterList", + "parameters": [], + "src": "1412:0:42" + }, + "scope": 9438, + "src": "1347:141:42", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 9424, + "nodeType": "Block", + "src": "1681:81:42", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9416, + "name": "_operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9407, + "src": "1707:9:42", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 9412, + "name": "roles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9341, + "src": "1687:5:42", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_string_memory_$_t_struct$_Role_$9445_storage_$", + "typeString": "mapping(string memory => struct Roles.Role storage ref)" + } + }, + "id": 9414, + "indexExpression": { + "argumentTypes": null, + "id": 9413, + "name": "_role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9409, + "src": "1693:5:42", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1687:12:42", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$9445_storage", + "typeString": "struct Roles.Role storage ref" + } + }, + "id": 9415, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "remove", + "nodeType": "MemberAccess", + "referencedDeclaration": 9477, + "src": "1687:19:42", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$9445_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$9445_storage_ptr_$", + "typeString": "function (struct Roles.Role storage pointer,address)" + } + }, + "id": 9417, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1687:30:42", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9418, + "nodeType": "ExpressionStatement", + "src": "1687:30:42" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9420, + "name": "_operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9407, + "src": "1740:9:42", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 9421, + "name": "_role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9409, + "src": "1751:5:42", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 9419, + "name": "RoleRemoved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9353, + "src": "1728:11:42", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (address,string memory)" + } + }, + "id": 9422, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1728:29:42", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9423, + "nodeType": "EmitStatement", + "src": "1723:34:42" + } + ] + }, + "documentation": "@dev remove a role from an address\n@param _operator address\n@param _role the name of the role", + "id": 9425, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "removeRole", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9410, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9407, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 9425, + "src": "1633:17:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9406, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1633:7:42", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9409, + "name": "_role", + "nodeType": "VariableDeclaration", + "scope": 9425, + "src": "1652:12:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 9408, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1652:6:42", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1632:33:42" + }, + "payable": false, + "returnParameters": { + "id": 9411, + "nodeType": "ParameterList", + "parameters": [], + "src": "1681:0:42" + }, + "scope": 9438, + "src": "1613:149:42", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 9436, + "nodeType": "Block", + "src": "1945:46:42", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9430, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10042, + "src": "1961:3:42", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9431, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1961:10:42", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 9432, + "name": "_role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9427, + "src": "1973:5:42", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 9429, + "name": "checkRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9368, + "src": "1951:9:42", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (address,string memory) view" + } + }, + "id": 9433, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1951:28:42", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9434, + "nodeType": "ExpressionStatement", + "src": "1951:28:42" + }, + { + "id": 9435, + "nodeType": "PlaceholderStatement", + "src": "1985:1:42" + } + ] + }, + "documentation": "@dev modifier to scope access to a single role (uses msg.sender as addr)\n@param _role the name of the role\n// reverts", + "id": 9437, + "name": "onlyRole", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 9428, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9427, + "name": "_role", + "nodeType": "VariableDeclaration", + "scope": 9437, + "src": "1929:12:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 9426, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1929:6:42", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1928:14:42" + }, + "src": "1911:80:42", + "visibility": "internal" + } + ], + "scope": 9439, + "src": "478:2158:42" + } + ], + "src": "0:2637:42" + }, + "legacyAST": { + "absolutePath": "openzeppelin-solidity/contracts/access/rbac/RBAC.sol", + "exportedSymbols": { + "RBAC": [ + 9438 + ] + }, + "id": 9439, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 9333, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:42" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/access/rbac/Roles.sol", + "file": "./Roles.sol", + "id": 9334, + "nodeType": "ImportDirective", + "scope": 9439, + "sourceUnit": 9509, + "src": "26:21:42", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": "@title RBAC (Role-Based Access Control)\n@author Matt Condon (@Shrugs)\n@dev Stores and provides setters and getters for roles and addresses.\nSupports unlimited numbers of roles and addresses.\nSee //contracts/mocks/RBACMock.sol for an example of usage.\nThis RBAC method uses strings to key roles. It may be beneficial\nfor you to write your own implementation of this interface using Enums or similar.", + "fullyImplemented": true, + "id": 9438, + "linearizedBaseContracts": [ + 9438 + ], + "name": "RBAC", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 9337, + "libraryName": { + "contractScope": null, + "id": 9335, + "name": "Roles", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9508, + "src": "502:5:42", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Roles_$9508", + "typeString": "library Roles" + } + }, + "nodeType": "UsingForDirective", + "src": "496:27:42", + "typeName": { + "contractScope": null, + "id": 9336, + "name": "Roles.Role", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9445, + "src": "512:10:42", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$9445_storage_ptr", + "typeString": "struct Roles.Role" + } + } + }, + { + "constant": false, + "id": 9341, + "name": "roles", + "nodeType": "VariableDeclaration", + "scope": 9438, + "src": "527:44:42", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_string_memory_$_t_struct$_Role_$9445_storage_$", + "typeString": "mapping(string => struct Roles.Role)" + }, + "typeName": { + "id": 9340, + "keyType": { + "id": 9338, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "536:6:42", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "nodeType": "Mapping", + "src": "527:30:42", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_string_memory_$_t_struct$_Role_$9445_storage_$", + "typeString": "mapping(string => struct Roles.Role)" + }, + "valueType": { + "contractScope": null, + "id": 9339, + "name": "Roles.Role", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9445, + "src": "546:10:42", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$9445_storage_ptr", + "typeString": "struct Roles.Role" + } + } + }, + "value": null, + "visibility": "private" + }, + { + "anonymous": false, + "documentation": null, + "id": 9347, + "name": "RoleAdded", + "nodeType": "EventDefinition", + "parameters": { + "id": 9346, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9343, + "indexed": true, + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 9347, + "src": "592:24:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9342, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "592:7:42", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9345, + "indexed": false, + "name": "role", + "nodeType": "VariableDeclaration", + "scope": 9347, + "src": "618:11:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 9344, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "618:6:42", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "591:39:42" + }, + "src": "576:55:42" + }, + { + "anonymous": false, + "documentation": null, + "id": 9353, + "name": "RoleRemoved", + "nodeType": "EventDefinition", + "parameters": { + "id": 9352, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9349, + "indexed": true, + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 9353, + "src": "652:24:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9348, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "652:7:42", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9351, + "indexed": false, + "name": "role", + "nodeType": "VariableDeclaration", + "scope": 9353, + "src": "678:11:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 9350, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "678:6:42", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "651:39:42" + }, + "src": "634:57:42" + }, + { + "body": { + "id": 9367, + "nodeType": "Block", + "src": "911:40:42", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9364, + "name": "_operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9355, + "src": "936:9:42", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 9360, + "name": "roles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9341, + "src": "917:5:42", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_string_memory_$_t_struct$_Role_$9445_storage_$", + "typeString": "mapping(string memory => struct Roles.Role storage ref)" + } + }, + "id": 9362, + "indexExpression": { + "argumentTypes": null, + "id": 9361, + "name": "_role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9357, + "src": "923:5:42", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "917:12:42", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$9445_storage", + "typeString": "struct Roles.Role storage ref" + } + }, + "id": 9363, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "check", + "nodeType": "MemberAccess", + "referencedDeclaration": 9492, + "src": "917:18:42", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$9445_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$9445_storage_ptr_$", + "typeString": "function (struct Roles.Role storage pointer,address) view" + } + }, + "id": 9365, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "917:29:42", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9366, + "nodeType": "ExpressionStatement", + "src": "917:29:42" + } + ] + }, + "documentation": "@dev reverts if addr does not have role\n@param _operator address\n@param _role the name of the role\n// reverts", + "id": 9368, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "checkRole", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9358, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9355, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 9368, + "src": "856:17:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9354, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "856:7:42", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9357, + "name": "_role", + "nodeType": "VariableDeclaration", + "scope": 9368, + "src": "875:12:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 9356, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "875:6:42", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "855:33:42" + }, + "payable": false, + "returnParameters": { + "id": 9359, + "nodeType": "ParameterList", + "parameters": [], + "src": "911:0:42" + }, + "scope": 9438, + "src": "837:114:42", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 9384, + "nodeType": "Block", + "src": "1182:45:42", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9381, + "name": "_operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9370, + "src": "1212:9:42", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 9377, + "name": "roles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9341, + "src": "1195:5:42", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_string_memory_$_t_struct$_Role_$9445_storage_$", + "typeString": "mapping(string memory => struct Roles.Role storage ref)" + } + }, + "id": 9379, + "indexExpression": { + "argumentTypes": null, + "id": 9378, + "name": "_role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9372, + "src": "1201:5:42", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1195:12:42", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$9445_storage", + "typeString": "struct Roles.Role storage ref" + } + }, + "id": 9380, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "has", + "nodeType": "MemberAccess", + "referencedDeclaration": 9507, + "src": "1195:16:42", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$9445_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Role_$9445_storage_ptr_$", + "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)" + } + }, + "id": 9382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1195:27:42", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 9376, + "id": 9383, + "nodeType": "Return", + "src": "1188:34:42" + } + ] + }, + "documentation": "@dev determine if addr has role\n@param _operator address\n@param _role the name of the role\n@return bool", + "id": 9385, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "hasRole", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9373, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9370, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 9385, + "src": "1108:17:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9369, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1108:7:42", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9372, + "name": "_role", + "nodeType": "VariableDeclaration", + "scope": 9385, + "src": "1127:12:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 9371, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1127:6:42", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1107:33:42" + }, + "payable": false, + "returnParameters": { + "id": 9376, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9375, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9385, + "src": "1174:4:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9374, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1174:4:42", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1173:6:42" + }, + "scope": 9438, + "src": "1091:136:42", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 9404, + "nodeType": "Block", + "src": "1412:76:42", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9396, + "name": "_operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9387, + "src": "1435:9:42", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 9392, + "name": "roles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9341, + "src": "1418:5:42", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_string_memory_$_t_struct$_Role_$9445_storage_$", + "typeString": "mapping(string memory => struct Roles.Role storage ref)" + } + }, + "id": 9394, + "indexExpression": { + "argumentTypes": null, + "id": 9393, + "name": "_role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9389, + "src": "1424:5:42", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1418:12:42", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$9445_storage", + "typeString": "struct Roles.Role storage ref" + } + }, + "id": 9395, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9461, + "src": "1418:16:42", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$9445_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$9445_storage_ptr_$", + "typeString": "function (struct Roles.Role storage pointer,address)" + } + }, + "id": 9397, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1418:27:42", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9398, + "nodeType": "ExpressionStatement", + "src": "1418:27:42" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9400, + "name": "_operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9387, + "src": "1466:9:42", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 9401, + "name": "_role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9389, + "src": "1477:5:42", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 9399, + "name": "RoleAdded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9347, + "src": "1456:9:42", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (address,string memory)" + } + }, + "id": 9402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1456:27:42", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9403, + "nodeType": "EmitStatement", + "src": "1451:32:42" + } + ] + }, + "documentation": "@dev add a role to an address\n@param _operator address\n@param _role the name of the role", + "id": 9405, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "addRole", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9390, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9387, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 9405, + "src": "1364:17:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9386, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1364:7:42", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9389, + "name": "_role", + "nodeType": "VariableDeclaration", + "scope": 9405, + "src": "1383:12:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 9388, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1383:6:42", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1363:33:42" + }, + "payable": false, + "returnParameters": { + "id": 9391, + "nodeType": "ParameterList", + "parameters": [], + "src": "1412:0:42" + }, + "scope": 9438, + "src": "1347:141:42", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 9424, + "nodeType": "Block", + "src": "1681:81:42", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9416, + "name": "_operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9407, + "src": "1707:9:42", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 9412, + "name": "roles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9341, + "src": "1687:5:42", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_string_memory_$_t_struct$_Role_$9445_storage_$", + "typeString": "mapping(string memory => struct Roles.Role storage ref)" + } + }, + "id": 9414, + "indexExpression": { + "argumentTypes": null, + "id": 9413, + "name": "_role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9409, + "src": "1693:5:42", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1687:12:42", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$9445_storage", + "typeString": "struct Roles.Role storage ref" + } + }, + "id": 9415, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "remove", + "nodeType": "MemberAccess", + "referencedDeclaration": 9477, + "src": "1687:19:42", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$9445_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$9445_storage_ptr_$", + "typeString": "function (struct Roles.Role storage pointer,address)" + } + }, + "id": 9417, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1687:30:42", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9418, + "nodeType": "ExpressionStatement", + "src": "1687:30:42" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9420, + "name": "_operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9407, + "src": "1740:9:42", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 9421, + "name": "_role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9409, + "src": "1751:5:42", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 9419, + "name": "RoleRemoved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9353, + "src": "1728:11:42", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (address,string memory)" + } + }, + "id": 9422, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1728:29:42", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9423, + "nodeType": "EmitStatement", + "src": "1723:34:42" + } + ] + }, + "documentation": "@dev remove a role from an address\n@param _operator address\n@param _role the name of the role", + "id": 9425, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "removeRole", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9410, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9407, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 9425, + "src": "1633:17:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9406, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1633:7:42", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9409, + "name": "_role", + "nodeType": "VariableDeclaration", + "scope": 9425, + "src": "1652:12:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 9408, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1652:6:42", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1632:33:42" + }, + "payable": false, + "returnParameters": { + "id": 9411, + "nodeType": "ParameterList", + "parameters": [], + "src": "1681:0:42" + }, + "scope": 9438, + "src": "1613:149:42", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 9436, + "nodeType": "Block", + "src": "1945:46:42", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9430, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10042, + "src": "1961:3:42", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9431, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1961:10:42", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 9432, + "name": "_role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9427, + "src": "1973:5:42", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 9429, + "name": "checkRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9368, + "src": "1951:9:42", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (address,string memory) view" + } + }, + "id": 9433, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1951:28:42", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9434, + "nodeType": "ExpressionStatement", + "src": "1951:28:42" + }, + { + "id": 9435, + "nodeType": "PlaceholderStatement", + "src": "1985:1:42" + } + ] + }, + "documentation": "@dev modifier to scope access to a single role (uses msg.sender as addr)\n@param _role the name of the role\n// reverts", + "id": 9437, + "name": "onlyRole", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 9428, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9427, + "name": "_role", + "nodeType": "VariableDeclaration", + "scope": 9437, + "src": "1929:12:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 9426, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1929:6:42", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1928:14:42" + }, + "src": "1911:80:42", + "visibility": "internal" + } + ], + "scope": 9439, + "src": "478:2158:42" + } + ], + "src": "0:2637:42" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.1", + "updatedAt": "2018-10-22T07:56:01.514Z" +} \ No newline at end of file diff --git a/build/contracts/Rates.json b/build/contracts/Rates.json index e4274649..91679abc 100644 --- a/build/contracts/Rates.json +++ b/build/contracts/Rates.json @@ -162,6 +162,24 @@ "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": [ @@ -190,6 +208,62 @@ "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": [ @@ -256,24 +330,24 @@ "type": "function" } ], - "bytecode": "0x60806040526100163364010000000061002d810204565b60048054600160a060020a031916331790556100b6565b600160a060020a038116151561004257600080fd5b61005a60038264010000000061079b61009182021704565b604051600160a060020a038216907f02edb648fd57120edd0afed403c9fbc3205997fd07c01b3db9e1ed05647e9ebe90600090a250565b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b610855806100c56000396000f3006080604052600436106100c45763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631b71a9db81146100c9578063273f4940146100e3578063289e029b146100fe578063451a5e651461011657806350b49f2d14610137578063715018a61461016157806379d44573146101765780637d20abf8146101975780638da5cb5b146101c35780638eaa6ac0146101f4578063e5da831f1461020c578063e921794414610271578063f2fde38b14610292575b600080fd5b3480156100d557600080fd5b506100e16004356102b3565b005b3480156100ef57600080fd5b506100e16004356024356102e1565b34801561010a57600080fd5b506100e160043561031b565b34801561012257600080fd5b506100e1600160a060020a036004351661033b565b34801561014357600080fd5b5061014f60043561035b565b60408051918252519081900360200190f35b34801561016d57600080fd5b506100e161037a565b34801561018257600080fd5b506100e1600160a060020a03600435166103e8565b3480156101a357600080fd5b506101af600435610408565b604080519115158252519081900360200190f35b3480156101cf57600080fd5b506101d861041d565b60408051600160a060020a039092168252519081900360200190f35b34801561020057600080fd5b5061014f60043561042c565b34801561021857600080fd5b50610221610455565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561025d578181015183820152602001610245565b505050509050019250505060405180910390f35b34801561027d57600080fd5b506101af600160a060020a03600435166104af565b34801561029e57600080fd5b506100e1600160a060020a03600435166104c8565b6102bc336104af565b15156102c757600080fd5b6102d0816104e8565b600090815260056020526040812055565b6102ea336104af565b15156102f557600080fd5b6102fe82610408565b151561030957600080fd5b60009182526005602052604090912055565b610324336104af565b151561032f57600080fd5b61033881610540565b50565b600454600160a060020a0316331461035257600080fd5b610338816105b3565b600080548290811061036957fe5b600091825260209091200154905081565b600454600160a060020a0316331461039157600080fd5b600454604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26004805473ffffffffffffffffffffffffffffffffffffffff19169055565b600454600160a060020a031633146103ff57600080fd5b610338816105d0565b60009081526002602052604090205460ff1690565b600454600160a060020a031681565b600061043782610408565b151561044257600080fd5b5060009081526005602052604090205490565b606060008054806020026020016040519081016040528092919081815260200182805480156104a457602002820191906000526020600020905b8154815260019091019060200180831161048f575b505050505090505b90565b60006104c260038363ffffffff6105d916565b92915050565b600454600160a060020a031633146104df57600080fd5b610338816105f8565b60008181526002602052604090205460ff16151561050557600080fd5b6000818152600260209081526040808320805460ff19169055600190915290205461052f90610676565b600090815260016020526040812055565b60008181526002602052604090205460ff161561055c57600080fd5b6000818152600260209081526040808320805460ff19166001908117909155835492819052908320829055810182559080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5630155565b6105bc336104af565b15156105c757600080fd5b610338816106e1565b6103388161073e565b600160a060020a03166000908152602091909152604090205460ff1690565b600160a060020a038116151561060d57600080fd5b600454604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054811061068457600080fd5b6000546000190181146106ca576000805460001981019081106106a357fe5b90600052602060002001546000828154811015156106bd57fe5b6000918252602090912001555b60008054906106dd9060001983016107e2565b5050565b600160a060020a03811615156106f657600080fd5b61070760038263ffffffff61079b16565b604051600160a060020a038216907f02edb648fd57120edd0afed403c9fbc3205997fd07c01b3db9e1ed05647e9ebe90600090a250565b600160a060020a038116151561075357600080fd5b61076460038263ffffffff6107c016565b604051600160a060020a038216907fdbde5a1472d701cfaea5fcee6419072f226c14cc6c5478fbe8552044053a316a90600090a250565b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b600160a060020a0316600090815260209190915260409020805460ff19169055565b8154818355818111156108065760008381526020902061080691810190830161080b565b505050565b6104ac91905b808211156108255760008155600101610811565b50905600a165627a7a72305820591c9fa324f1b465073ff3f4eae23406ec924329d8038b62b86343a5738df31e0029", - "deployedBytecode": "0x6080604052600436106100c45763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631b71a9db81146100c9578063273f4940146100e3578063289e029b146100fe578063451a5e651461011657806350b49f2d14610137578063715018a61461016157806379d44573146101765780637d20abf8146101975780638da5cb5b146101c35780638eaa6ac0146101f4578063e5da831f1461020c578063e921794414610271578063f2fde38b14610292575b600080fd5b3480156100d557600080fd5b506100e16004356102b3565b005b3480156100ef57600080fd5b506100e16004356024356102e1565b34801561010a57600080fd5b506100e160043561031b565b34801561012257600080fd5b506100e1600160a060020a036004351661033b565b34801561014357600080fd5b5061014f60043561035b565b60408051918252519081900360200190f35b34801561016d57600080fd5b506100e161037a565b34801561018257600080fd5b506100e1600160a060020a03600435166103e8565b3480156101a357600080fd5b506101af600435610408565b604080519115158252519081900360200190f35b3480156101cf57600080fd5b506101d861041d565b60408051600160a060020a039092168252519081900360200190f35b34801561020057600080fd5b5061014f60043561042c565b34801561021857600080fd5b50610221610455565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561025d578181015183820152602001610245565b505050509050019250505060405180910390f35b34801561027d57600080fd5b506101af600160a060020a03600435166104af565b34801561029e57600080fd5b506100e1600160a060020a03600435166104c8565b6102bc336104af565b15156102c757600080fd5b6102d0816104e8565b600090815260056020526040812055565b6102ea336104af565b15156102f557600080fd5b6102fe82610408565b151561030957600080fd5b60009182526005602052604090912055565b610324336104af565b151561032f57600080fd5b61033881610540565b50565b600454600160a060020a0316331461035257600080fd5b610338816105b3565b600080548290811061036957fe5b600091825260209091200154905081565b600454600160a060020a0316331461039157600080fd5b600454604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26004805473ffffffffffffffffffffffffffffffffffffffff19169055565b600454600160a060020a031633146103ff57600080fd5b610338816105d0565b60009081526002602052604090205460ff1690565b600454600160a060020a031681565b600061043782610408565b151561044257600080fd5b5060009081526005602052604090205490565b606060008054806020026020016040519081016040528092919081815260200182805480156104a457602002820191906000526020600020905b8154815260019091019060200180831161048f575b505050505090505b90565b60006104c260038363ffffffff6105d916565b92915050565b600454600160a060020a031633146104df57600080fd5b610338816105f8565b60008181526002602052604090205460ff16151561050557600080fd5b6000818152600260209081526040808320805460ff19169055600190915290205461052f90610676565b600090815260016020526040812055565b60008181526002602052604090205460ff161561055c57600080fd5b6000818152600260209081526040808320805460ff19166001908117909155835492819052908320829055810182559080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5630155565b6105bc336104af565b15156105c757600080fd5b610338816106e1565b6103388161073e565b600160a060020a03166000908152602091909152604090205460ff1690565b600160a060020a038116151561060d57600080fd5b600454604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054811061068457600080fd5b6000546000190181146106ca576000805460001981019081106106a357fe5b90600052602060002001546000828154811015156106bd57fe5b6000918252602090912001555b60008054906106dd9060001983016107e2565b5050565b600160a060020a03811615156106f657600080fd5b61070760038263ffffffff61079b16565b604051600160a060020a038216907f02edb648fd57120edd0afed403c9fbc3205997fd07c01b3db9e1ed05647e9ebe90600090a250565b600160a060020a038116151561075357600080fd5b61076460038263ffffffff6107c016565b604051600160a060020a038216907fdbde5a1472d701cfaea5fcee6419072f226c14cc6c5478fbe8552044053a316a90600090a250565b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b600160a060020a0316600090815260209190915260409020805460ff19169055565b8154818355818111156108065760008381526020902061080691810190830161080b565b505050565b6104ac91905b808211156108255760008155600101610811565b50905600a165627a7a72305820591c9fa324f1b465073ff3f4eae23406ec924329d8038b62b86343a5738df31e0029", - "sourceMap": "144:811:16:-;;;313:22:18;324:10;313;;;;:22;:::i;:::-;567:5:31;:18;;-1:-1:-1;;;;;;567:18:31;575:10;567:18;;;144:811:16;;732:159:18;-1:-1:-1;;;;;796:21:18;;;;788:30;;;;;;829:20;:7;841;829:11;;;;;;:20;:::i;:::-;864;;-1:-1:-1;;;;;864:20:18;;;;;;;;732:159;:::o;321:100:29:-;-1:-1:-1;;;;;390:19:29;:12;:19;;;;;;;;;;;:26;;-1:-1:-1;;390:26:29;412:4;390:26;;;321:100::o;144:811:16:-;;;;;;;", - "deployedSourceMap": "144:811:16:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;336:128;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;336:128:16;;;;;;;821:132;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;821:132:16;;;;;;;235:95;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;235:95:16;;;;;470:99;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;470:99:16;-1:-1:-1;;;;;470:99:16;;;;;49:28:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;49:28:17;;;;;;;;;;;;;;;;;;;;;1001:111:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1001:111:31;;;;575:105:16;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;575:105:16;-1:-1:-1;;;;;575:105:16;;;;;583:100:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;583:100:17;;;;;;;;;;;;;;;;;;;;;;;238:20:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:31;;;;;;;;-1:-1:-1;;;;;238:20:31;;;;;;;;;;;;;;686:129:16;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;686:129:16;;;;;689:92:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;689:92:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;689:92:17;;;;;;;;;;;;;;;;;433:106:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;433:106:18;-1:-1:-1;;;;;433:106:18;;;;;1274:103:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1274:103:31;-1:-1:-1;;;;;1274:103:31;;;;;336:128:16;388:20:18;397:10;388:8;:20::i;:::-;380:29;;;;;;;;402:28:16;423:6;402:20;:28::i;:::-;456:1;440:13;;;:5;:13;;;;;:17;336:128::o;821:132::-;388:20:18;397:10;388:8;:20::i;:::-;380:29;;;;;;;;897:17:16;907:6;897:9;:17::i;:::-;889:26;;;;;;;;926:13;;;;:5;:13;;;;;;:20;821:132::o;235:95::-;388:20:18;397:10;388:8;:20::i;:::-;380:29;;;;;;;;298:25:16;316:6;298:17;:25::i;:::-;235:95;:::o;470:99::-;719:5:31;;-1:-1:-1;;;;;719:5:31;705:10;:19;697:28;;;;;;533:29:16;554:7;533:20;:29::i;49:28:17:-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;49:28:17;:::o;1001:111:31:-;719:5;;-1:-1:-1;;;;;719:5:31;705:10;:19;697:28;;;;;;1077:5;;1058:25;;-1:-1:-1;;;;;1077:5:31;;;;1058:25;;1077:5;;1058:25;1089:5;:18;;-1:-1:-1;;1089:18:31;;;1001:111::o;575:105:16:-;719:5:31;;-1:-1:-1;;;;;719:5:31;705:10;:19;697:28;;;;;;641:32:16;665:7;641:23;:32::i;583:100:17:-;638:4;661:15;;;:7;:15;;;;;;;;;583:100::o;238:20:31:-;;;-1:-1:-1;;;;;238:20:31;;:::o;686:129:16:-;735:4;759:17;769:6;759:9;:17::i;:::-;751:26;;;;;;;;-1:-1:-1;795:13:16;;;;:5;:13;;;;;;;686:129::o;689:92:17:-;735:9;763:11;756:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;689:92;;:::o;433:106:18:-;489:4;512:20;:7;524;512:20;:11;:20;:::i;:::-;505:27;433:106;-1:-1:-1;;433:106:18:o;1274:103:31:-;719:5;;-1:-1:-1;;;;;719:5:31;705:10;:19;697:28;;;;;;1343:29;1362:9;1343:18;:29::i;373:204:17:-;436:15;;;;:7;:15;;;;;;;;428:24;;;;;;;;481:5;463:15;;;:7;:15;;;;;;;;:23;;-1:-1:-1;;463:23:17;;;;517:19;;;;;;496:41;;:20;:41::i;:::-;569:1;547:19;;;:11;:19;;;;;:23;373:204::o;166:201::-;227:15;;;;:7;:15;;;;;;;;226:16;218:25;;;;;;254:15;;;;:7;:15;;;;;;;;:22;;-1:-1:-1;;254:22:17;272:4;254:22;;;;;;308:18;;286:19;;;;;;;:40;;;23:18:-1;;45:23;;336:24:17;;;;;;166:201::o;545:90:18:-;388:20;397:10;388:8;:20::i;:::-;380:29;;;;;;;;609:19;620:7;609:10;:19::i;641:85::-;697:22;711:7;697:13;:22::i;855:128:29:-;-1:-1:-1;;;;;959:19:29;938:4;959:19;;;;;;;;;;;;;;;855:128::o;1512:171:31:-;-1:-1:-1;;;;;1582:23:31;;;;1574:32;;;;;;1638:5;;1617:38;;-1:-1:-1;;;;;1617:38:31;;;;1638:5;;1617:38;;1638:5;;1617:38;1661:5;:17;;-1:-1:-1;;1661:17:31;-1:-1:-1;;;;;1661:17:31;;;;;;;;;;1512:171::o;787:262:17:-;864:11;:18;856:26;;848:35;;;;;;907:11;:18;-1:-1:-1;;907:22:17;898:31;;894:118;;966:11;978:18;;-1:-1:-1;;978:22:17;;;966:35;;;;;;;;;;;;;;945:11;957:5;945:18;;;;;;;;;;;;;;;;;;;:56;894:118;1022:11;:20;;;;;-1:-1:-1;;1022:20:17;;;:::i;:::-;;787:262;:::o;732:159:18:-;-1:-1:-1;;;;;796:21:18;;;;788:30;;;;;;829:20;:7;841;829:20;:11;:20;:::i;:::-;864;;-1:-1:-1;;;;;864:20:18;;;;;;;;732:159;:::o;897:167::-;-1:-1:-1;;;;;964:21:18;;;;956:30;;;;;;997:23;:7;1012;997:23;:14;:23;:::i;:::-;1035:22;;-1:-1:-1;;;;;1035:22:18;;;;;;;;897:167;:::o;321:100:29:-;-1:-1:-1;;;;;390:19:29;:12;:19;;;;;;;;;;;:26;;-1:-1:-1;;390:26:29;412:4;390:26;;;321:100::o;486:104::-;-1:-1:-1;;;;;558:19:29;580:5;558:19;;;;;;;;;;;:27;;-1:-1:-1;;558:27:29;;;486:104::o;144:811:16:-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;", - "source": "pragma solidity ^0.4.24;\n\nimport \"openzeppelin-solidity/contracts/ownership/Ownable.sol\";\nimport \"./roles/Pricer.sol\";\nimport \"./Symbols.sol\";\n\ncontract Rates is Symbols, PricerRole, Ownable {\n mapping (bytes32 => uint) rates;\n\n function addSymbol(bytes32 symbol) public onlyPricer {\n Symbols.addSymbol(symbol);\n }\n\n function removeSymbol(bytes32 symbol) public onlyPricer {\n Symbols.removeSymbol(symbol);\n rates[symbol] = 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": "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", "sourcePath": "/home/circleci/code/contracts/rates/Rates.sol", "ast": { "absolutePath": "/home/circleci/code/contracts/rates/Rates.sol", "exportedSymbols": { "Rates": [ - 4815 + 7265 ] }, - "id": 4816, + "id": 7266, "nodeType": "SourceUnit", "nodes": [ { - "id": 4699, + "id": 7046, "literals": [ "solidity", "^", @@ -281,38 +355,49 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:16" + "src": "0:24:25" }, { "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 4700, + "id": 7047, + "nodeType": "ImportDirective", + "scope": 7266, + "sourceUnit": 9689, + "src": "26:63:25", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/rates/IRates.sol", + "file": "./IRates.sol", + "id": 7048, "nodeType": "ImportDirective", - "scope": 4816, - "sourceUnit": 6941, - "src": "26:63:16", + "scope": 7266, + "sourceUnit": 7016, + "src": "90:22:25", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/rates/roles/Pricer.sol", "file": "./roles/Pricer.sol", - "id": 4701, + "id": 7049, "nodeType": "ImportDirective", - "scope": 4816, - "sourceUnit": 5070, - "src": "90:28:16", + "scope": 7266, + "sourceUnit": 7546, + "src": "113:28:25", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/rates/Symbols.sol", "file": "./Symbols.sol", - "id": 4702, + "id": 7050, "nodeType": "ImportDirective", - "scope": 4816, - "sourceUnit": 4950, - "src": "119:23:16", + "scope": 7266, + "sourceUnit": 7403, + "src": "142:23:25", "symbolAliases": [], "unitAlias": "" }, @@ -322,82 +407,106 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 4703, + "id": 7051, + "name": "IRates", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7015, + "src": "185:6:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "id": 7052, + "nodeType": "InheritanceSpecifier", + "src": "185:6:25" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 7053, "name": "Symbols", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4949, - "src": "162:7:16", + "referencedDeclaration": 7402, + "src": "193:7:25", "typeDescriptions": { - "typeIdentifier": "t_contract$_Symbols_$4949", + "typeIdentifier": "t_contract$_Symbols_$7402", "typeString": "contract Symbols" } }, - "id": 4704, + "id": 7054, "nodeType": "InheritanceSpecifier", - "src": "162:7:16" + "src": "193:7:25" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 4705, + "id": 7055, "name": "PricerRole", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5069, - "src": "171:10:16", + "referencedDeclaration": 7545, + "src": "202:10:25", "typeDescriptions": { - "typeIdentifier": "t_contract$_PricerRole_$5069", + "typeIdentifier": "t_contract$_PricerRole_$7545", "typeString": "contract PricerRole" } }, - "id": 4706, + "id": 7056, "nodeType": "InheritanceSpecifier", - "src": "171:10:16" + "src": "202:10:25" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 4707, + "id": 7057, "name": "Ownable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6940, - "src": "183:7:16", + "referencedDeclaration": 9688, + "src": "214:7:25", "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$6940", + "typeIdentifier": "t_contract$_Ownable_$9688", "typeString": "contract Ownable" } }, - "id": 4708, + "id": 7058, "nodeType": "InheritanceSpecifier", - "src": "183:7:16" + "src": "214:7:25" } ], "contractDependencies": [ - 4949, - 5069, - 6940 + 7015, + 7044, + 7402, + 7422, + 7545, + 9688 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 4815, + "id": 7265, "linearizedBaseContracts": [ - 4815, - 6940, - 5069, - 4949 + 7265, + 9688, + 7545, + 7402, + 7015, + 7422, + 7044 ], "name": "Rates", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 4712, + "id": 7062, "name": "rates", "nodeType": "VariableDeclaration", - "scope": 4815, - "src": "197:31:16", + "scope": 7265, + "src": "228:31:25", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -405,28 +514,28 @@ "typeString": "mapping(bytes32 => uint256)" }, "typeName": { - "id": 4711, + "id": 7061, "keyType": { - "id": 4709, + "id": 7059, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "206:7:16", + "src": "237:7:25", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "197:25:16", + "src": "228:25:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" }, "valueType": { - "id": 4710, + "id": 7060, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "217:4:16", + "src": "248:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -436,11 +545,56 @@ "value": null, "visibility": "internal" }, + { + "constant": false, + "id": 7066, + "name": "tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 7265, + "src": "265:41:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", + "typeString": "mapping(bytes32 => address)" + }, + "typeName": { + "id": 7065, + "keyType": { + "id": 7063, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "274:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "265:28:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", + "typeString": "mapping(bytes32 => address)" + }, + "valueType": { + "id": 7064, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "285:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "value": null, + "visibility": "internal" + }, { "body": { - "id": 4725, + "id": 7092, "nodeType": "Block", - "src": "288:42:16", + "src": "400:114:25", "statements": [ { "expression": { @@ -448,12 +602,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4722, + "id": 7078, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4714, - "src": "316:6:16", + "referencedDeclaration": 7068, + "src": "428:6:25", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -469,32 +623,32 @@ ], "expression": { "argumentTypes": null, - "id": 4719, + "id": 7075, "name": "Symbols", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4949, - "src": "298:7:16", + "referencedDeclaration": 7402, + "src": "410:7:25", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Symbols_$4949_$", + "typeIdentifier": "t_type$_t_contract$_Symbols_$7402_$", "typeString": "type(contract Symbols)" } }, - "id": 4721, + "id": 7077, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "addSymbol", "nodeType": "MemberAccess", - "referencedDeclaration": 4860, - "src": "298:17:16", + "referencedDeclaration": 7313, + "src": "410:17:25", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$", "typeString": "function (bytes32)" } }, - "id": 4723, + "id": 7079, "isConstant": false, "isLValue": false, "isPure": false, @@ -502,57 +656,224 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "298:25:16", + "src": "410:25:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4724, + "id": 7080, "nodeType": "ExpressionStatement", - "src": "298:25:16" + "src": "410:25:25" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 7085, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7081, + "name": "_address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7070, + "src": "450:8:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 7083, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "470:1:25", + "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": 7082, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "462:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 7084, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "462:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "450:22:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 7091, + "nodeType": "IfStatement", + "src": "446:61:25", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7087, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7068, + "src": "490:6:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 7088, + "name": "_address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7070, + "src": "498:8:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7086, + "name": "setTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 7156 + ], + "referencedDeclaration": 7156, + "src": "474:15:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 7089, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "474:33:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7090, + "nodeType": "ExpressionStatement", + "src": "474:33:25" + } } ] }, "documentation": null, - "id": 4726, + "id": 7093, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 4717, + "id": 7073, "modifierName": { "argumentTypes": null, - "id": 4716, + "id": 7072, "name": "onlyPricer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4985, - "src": "277:10:16", + "referencedDeclaration": 7461, + "src": "389:10:25", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "277:10:16" + "src": "389:10:25" } ], - "name": "addSymbol", + "name": "addSymbolWithTokenAddress", "nodeType": "FunctionDefinition", "parameters": { - "id": 4715, + "id": 7071, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4714, + "id": 7068, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 4726, - "src": "254:14:16", + "scope": 7093, + "src": "348:14:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -560,10 +881,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 4713, + "id": 7067, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "254:7:16", + "src": "348:7:25", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -571,28 +892,54 @@ }, "value": null, "visibility": "internal" + }, + { + "constant": false, + "id": 7070, + "name": "_address", + "nodeType": "VariableDeclaration", + "scope": 7093, + "src": "364:16:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7069, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "364:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" } ], - "src": "253:16:16" + "src": "347:34:25" }, "payable": false, "returnParameters": { - "id": 4718, + "id": 7074, "nodeType": "ParameterList", "parameters": [], - "src": "288:0:16" + "src": "400:0:25" }, - "scope": 4815, - "src": "235:95:16", + "scope": 7265, + "src": "313:201:25", "stateMutability": "nonpayable", - "superFunction": 4860, + "superFunction": 6971, "visibility": "public" }, { "body": { - "id": 4745, + "id": 7106, "nodeType": "Block", - "src": "392:72:16", + "src": "573:42:25", "statements": [ { "expression": { @@ -600,12 +947,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4736, + "id": 7103, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4728, - "src": "423:6:16", + "referencedDeclaration": 7095, + "src": "601:6:25", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -621,32 +968,32 @@ ], "expression": { "argumentTypes": null, - "id": 4733, + "id": 7100, "name": "Symbols", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4949, - "src": "402:7:16", + "referencedDeclaration": 7402, + "src": "583:7:25", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Symbols_$4949_$", + "typeIdentifier": "t_type$_t_contract$_Symbols_$7402_$", "typeString": "type(contract Symbols)" } }, - "id": 4735, + "id": 7102, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "removeSymbol", + "memberName": "addSymbol", "nodeType": "MemberAccess", - "referencedDeclaration": 4890, - "src": "402:20:16", + "referencedDeclaration": 7313, + "src": "583:17:25", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$", "typeString": "function (bytes32)" } }, - "id": 4737, + "id": 7104, "isConstant": false, "isLValue": false, "isPure": false, @@ -654,48 +1001,316 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "402:28:16", + "src": "583:25:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4738, + "id": 7105, "nodeType": "ExpressionStatement", - "src": "402:28:16" + "src": "583:25:25" + } + ] + }, + "documentation": null, + "id": 7107, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 7098, + "modifierName": { + "argumentTypes": null, + "id": 7097, + "name": "onlyPricer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7461, + "src": "562:10:25", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } }, + "nodeType": "ModifierInvocation", + "src": "562:10:25" + } + ], + "name": "addSymbol", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7096, + "nodeType": "ParameterList", + "parameters": [ { - "expression": { - "argumentTypes": null, - "id": 4743, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4739, - "name": "rates", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4712, - "src": "440:5:16", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 4741, - "indexExpression": { - "argumentTypes": null, - "id": 4740, - "name": "symbol", + "constant": false, + "id": 7095, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 7107, + "src": "539:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 7094, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "539:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "538:16:25" + }, + "payable": false, + "returnParameters": { + "id": 7099, + "nodeType": "ParameterList", + "parameters": [], + "src": "573:0:25" + }, + "scope": 7265, + "src": "520:95:25", + "stateMutability": "nonpayable", + "superFunction": 7313, + "visibility": "public" + }, + { + "body": { + "id": 7133, + "nodeType": "Block", + "src": "677:117:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7115, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7109, + "src": "703:6:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 7117, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "719:1:25", + "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": 7116, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "711:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 7118, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "711:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7114, + "name": "setTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 7156 + ], + "referencedDeclaration": 7156, + "src": "687:15:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" + } + }, + "id": 7119, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "687:35:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7120, + "nodeType": "ExpressionStatement", + "src": "687:35:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7124, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7109, + "src": "753:6:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 7121, + "name": "Symbols", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7402, + "src": "732:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Symbols_$7402_$", + "typeString": "type(contract Symbols)" + } + }, + "id": 7123, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "removeSymbol", + "nodeType": "MemberAccess", + "referencedDeclaration": 7343, + "src": "732:20:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$", + "typeString": "function (bytes32)" + } + }, + "id": 7125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "732:28:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7126, + "nodeType": "ExpressionStatement", + "src": "732:28:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 7131, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7127, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7062, + "src": "770:5:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 7129, + "indexExpression": { + "argumentTypes": null, + "id": 7128, + "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4728, - "src": "446:6:16", + "referencedDeclaration": 7109, + "src": "776:6:25", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -706,7 +1321,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "440:13:16", + "src": "770:13:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -717,14 +1332,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 4742, + "id": 7130, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "456:1:16", + "src": "786:1:25", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -732,57 +1347,57 @@ }, "value": "0" }, - "src": "440:17:16", + "src": "770:17:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 4744, + "id": 7132, "nodeType": "ExpressionStatement", - "src": "440:17:16" + "src": "770:17:25" } ] }, "documentation": null, - "id": 4746, + "id": 7134, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 4731, + "id": 7112, "modifierName": { "argumentTypes": null, - "id": 4730, + "id": 7111, "name": "onlyPricer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4985, - "src": "381:10:16", + "referencedDeclaration": 7461, + "src": "666:10:25", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "381:10:16" + "src": "666:10:25" } ], "name": "removeSymbol", "nodeType": "FunctionDefinition", "parameters": { - "id": 4729, + "id": 7110, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4728, + "id": 7109, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 4746, - "src": "358:14:16", + "scope": 7134, + "src": "643:14:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -790,10 +1405,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 4727, + "id": 7108, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "358:7:16", + "src": "643:7:25", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -803,26 +1418,26 @@ "visibility": "internal" } ], - "src": "357:16:16" + "src": "642:16:25" }, "payable": false, "returnParameters": { - "id": 4732, + "id": 7113, "nodeType": "ParameterList", "parameters": [], - "src": "392:0:16" + "src": "677:0:25" }, - "scope": 4815, - "src": "336:128:16", + "scope": 7265, + "src": "621:173:25", "stateMutability": "nonpayable", - "superFunction": 4890, + "superFunction": 7343, "visibility": "public" }, { "body": { - "id": 4759, + "id": 7155, "nodeType": "Block", - "src": "523:46:16", + "src": "877:85:25", "statements": [ { "expression": { @@ -830,111 +1445,2186 @@ "arguments": [ { "argumentTypes": null, - "id": 4756, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4748, - "src": "554:7:16", + "arguments": [ + { + "argumentTypes": null, + "id": 7145, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7136, + "src": "905:6:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 7144, + "name": "hasSymbol", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 7355 + ], + "referencedDeclaration": 7355, + "src": "895:9:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (bytes32) view returns (bool)" + } + }, + "id": 7146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "895:17:25", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bool", + "typeString": "bool" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 7143, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "887:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 7147, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "887:26:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7148, + "nodeType": "ExpressionStatement", + "src": "887:26:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 7153, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7149, + "name": "tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7066, + "src": "924:12:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", + "typeString": "mapping(bytes32 => address)" + } + }, + "id": 7151, + "indexExpression": { + "argumentTypes": null, + "id": 7150, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7136, + "src": "937:6:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "924:20:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 7152, + "name": "_address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7138, + "src": "947:8:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "924:31:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 7154, + "nodeType": "ExpressionStatement", + "src": "924:31:25" + } + ] + }, + "documentation": null, + "id": 7156, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 7141, + "modifierName": { + "argumentTypes": null, + "id": 7140, + "name": "onlyPricer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7461, + "src": "866:10:25", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "866:10:25" + } + ], + "name": "setTokenAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7139, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7136, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 7156, + "src": "825:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 7135, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "825:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7138, + "name": "_address", + "nodeType": "VariableDeclaration", + "scope": 7156, + "src": "841:16:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7137, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "841:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "824:34:25" + }, + "payable": false, + "returnParameters": { + "id": 7142, + "nodeType": "ParameterList", + "parameters": [], + "src": "877:0:25" + }, + "scope": 7265, + "src": "800:162:25", + "stateMutability": "nonpayable", + "superFunction": 6978, + "visibility": "public" + }, + { + "body": { + "id": 7173, + "nodeType": "Block", + "src": "1038:79:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7165, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7158, + "src": "1064:6:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 7164, + "name": "isToken", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 7196 + ], + "referencedDeclaration": 7196, + "src": "1056:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (bytes32) view returns (bool)" + } + }, + "id": 7166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1056:15:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 7163, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "1048:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 7167, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1048:24:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7168, + "nodeType": "ExpressionStatement", + "src": "1048:24:25" + }, + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7169, + "name": "tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7066, + "src": "1090:12:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", + "typeString": "mapping(bytes32 => address)" + } + }, + "id": 7171, + "indexExpression": { + "argumentTypes": null, + "id": 7170, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7158, + "src": "1103:6:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1090:20:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 7162, + "id": 7172, + "nodeType": "Return", + "src": "1083:27:25" + } + ] + }, + "documentation": null, + "id": 7174, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getTokenAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7159, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7158, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 7174, + "src": "993:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 7157, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "993:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "992:16:25" + }, + "payable": false, + "returnParameters": { + "id": 7162, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7161, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7174, + "src": "1029:7:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7160, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1029:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1028:9:25" + }, + "scope": 7265, + "src": "968:149:25", + "stateMutability": "view", + "superFunction": 6985, + "visibility": "public" + }, + { + "body": { + "id": 7195, + "nodeType": "Block", + "src": "1183:95:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7183, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7176, + "src": "1211:6:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 7182, + "name": "hasSymbol", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 7355 + ], + "referencedDeclaration": 7355, + "src": "1201:9:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (bytes32) view returns (bool)" + } + }, + "id": 7184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1201:17:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 7181, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "1193:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 7185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1193:26:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7186, + "nodeType": "ExpressionStatement", + "src": "1193:26:25" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 7193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7187, + "name": "tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7066, + "src": "1237:12:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", + "typeString": "mapping(bytes32 => address)" + } + }, + "id": 7189, + "indexExpression": { + "argumentTypes": null, + "id": 7188, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7176, + "src": "1250:6:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1237:20:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 7191, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1269:1:25", + "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": 7190, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1261:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 7192, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1261:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1237:34:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 7180, + "id": 7194, + "nodeType": "Return", + "src": "1230:41:25" + } + ] + }, + "documentation": null, + "id": 7196, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isToken", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7177, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7176, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 7196, + "src": "1140:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 7175, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1140:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1139:16:25" + }, + "payable": false, + "returnParameters": { + "id": 7180, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7179, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7196, + "src": "1177:4:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7178, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1177:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1176:6:25" + }, + "scope": 7265, + "src": "1123:155:25", + "stateMutability": "view", + "superFunction": 6992, + "visibility": "public" + }, + { + "body": { + "id": 7209, + "nodeType": "Block", + "src": "1337:46:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7206, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7198, + "src": "1368:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 7203, + "name": "PricerRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7545, + "src": "1347:10:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PricerRole_$7545_$", + "typeString": "type(contract PricerRole)" + } + }, + "id": 7205, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "addPricer", + "nodeType": "MemberAccess", + "referencedDeclaration": 7486, + "src": "1347:20:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 7207, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1347:29:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7208, + "nodeType": "ExpressionStatement", + "src": "1347:29:25" + } + ] + }, + "documentation": null, + "id": 7210, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 7201, + "modifierName": { + "argumentTypes": null, + "id": 7200, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9636, + "src": "1327:9:25", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1327:9:25" + } + ], + "name": "addPricer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7199, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7198, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 7210, + "src": "1303:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7197, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1303:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1302:17:25" + }, + "payable": false, + "returnParameters": { + "id": 7202, + "nodeType": "ParameterList", + "parameters": [], + "src": "1337:0:25" + }, + "scope": 7265, + "src": "1284:99:25", + "stateMutability": "nonpayable", + "superFunction": 7486, + "visibility": "public" + }, + { + "body": { + "id": 7223, + "nodeType": "Block", + "src": "1445:49:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7220, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7212, + "src": "1479:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 7217, + "name": "PricerRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7545, + "src": "1455:10:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PricerRole_$7545_$", + "typeString": "type(contract PricerRole)" + } + }, + "id": 7219, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "removePricer", + "nodeType": "MemberAccess", + "referencedDeclaration": 7496, + "src": "1455:23:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 7221, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1455:32:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7222, + "nodeType": "ExpressionStatement", + "src": "1455:32:25" + } + ] + }, + "documentation": null, + "id": 7224, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 7215, + "modifierName": { + "argumentTypes": null, + "id": 7214, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9636, + "src": "1435:9:25", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1435:9:25" + } + ], + "name": "removePricer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7213, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7212, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 7224, + "src": "1411:15:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7211, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1411:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1410:17:25" + }, + "payable": false, + "returnParameters": { + "id": 7216, + "nodeType": "ParameterList", + "parameters": [], + "src": "1445:0:25" + }, + "scope": 7265, + "src": "1389:105:25", + "stateMutability": "nonpayable", + "superFunction": 7496, + "visibility": "public" + }, + { + "body": { + "id": 7241, + "nodeType": "Block", + "src": "1555:74:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7233, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7226, + "src": "1583:6:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 7232, + "name": "hasSymbol", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 7355 + ], + "referencedDeclaration": 7355, + "src": "1573:9:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (bytes32) view returns (bool)" + } + }, + "id": 7234, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1573:17:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 7231, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "1565:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 7235, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1565:26:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7236, + "nodeType": "ExpressionStatement", + "src": "1565:26:25" + }, + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7237, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7062, + "src": "1609:5:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 7239, + "indexExpression": { + "argumentTypes": null, + "id": 7238, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7226, + "src": "1615:6:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1609:13:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7230, + "id": 7240, + "nodeType": "Return", + "src": "1602:20:25" + } + ] + }, + "documentation": null, + "id": 7242, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "get", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7227, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7226, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 7242, + "src": "1513:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 7225, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1513:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1512:16:25" + }, + "payable": false, + "returnParameters": { + "id": 7230, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7229, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7242, + "src": "1549:4:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7228, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1549:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1548:6:25" + }, + "scope": 7265, + "src": "1500:129:25", + "stateMutability": "view", + "superFunction": 6999, + "visibility": "public" + }, + { + "body": { + "id": 7263, + "nodeType": "Block", + "src": "1693:74:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7253, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7244, + "src": "1721:6:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 7252, + "name": "hasSymbol", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 7355 + ], + "referencedDeclaration": 7355, + "src": "1711:9:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (bytes32) view returns (bool)" + } + }, + "id": 7254, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1711:17:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 7251, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "1703:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 7255, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1703:26:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7256, + "nodeType": "ExpressionStatement", + "src": "1703:26:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 7261, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7257, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7062, + "src": "1740:5:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 7259, + "indexExpression": { + "argumentTypes": null, + "id": 7258, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7244, + "src": "1746:6:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1740:13:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 7260, + "name": "rate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7246, + "src": "1756:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1740:20:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7262, + "nodeType": "ExpressionStatement", + "src": "1740:20:25" + } + ] + }, + "documentation": null, + "id": 7264, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 7249, + "modifierName": { + "argumentTypes": null, + "id": 7248, + "name": "onlyPricer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7461, + "src": "1682:10:25", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1682:10:25" + } + ], + "name": "set", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7247, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7244, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 7264, + "src": "1648:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 7243, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1648:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7246, + "name": "rate", + "nodeType": "VariableDeclaration", + "scope": 7264, + "src": "1664:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7245, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1664:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1647:27:25" + }, + "payable": false, + "returnParameters": { + "id": 7250, + "nodeType": "ParameterList", + "parameters": [], + "src": "1693:0:25" + }, + "scope": 7265, + "src": "1635:132:25", + "stateMutability": "nonpayable", + "superFunction": 7006, + "visibility": "public" + } + ], + "scope": 7266, + "src": "167:1602:25" + } + ], + "src": "0:1770:25" + }, + "legacyAST": { + "absolutePath": "/home/circleci/code/contracts/rates/Rates.sol", + "exportedSymbols": { + "Rates": [ + 7265 + ] + }, + "id": 7266, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 7046, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:25" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", + "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", + "id": 7047, + "nodeType": "ImportDirective", + "scope": 7266, + "sourceUnit": 9689, + "src": "26:63:25", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/rates/IRates.sol", + "file": "./IRates.sol", + "id": 7048, + "nodeType": "ImportDirective", + "scope": 7266, + "sourceUnit": 7016, + "src": "90:22:25", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/rates/roles/Pricer.sol", + "file": "./roles/Pricer.sol", + "id": 7049, + "nodeType": "ImportDirective", + "scope": 7266, + "sourceUnit": 7546, + "src": "113:28:25", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/rates/Symbols.sol", + "file": "./Symbols.sol", + "id": 7050, + "nodeType": "ImportDirective", + "scope": 7266, + "sourceUnit": 7403, + "src": "142:23:25", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 7051, + "name": "IRates", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7015, + "src": "185:6:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "id": 7052, + "nodeType": "InheritanceSpecifier", + "src": "185:6:25" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 7053, + "name": "Symbols", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7402, + "src": "193:7:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Symbols_$7402", + "typeString": "contract Symbols" + } + }, + "id": 7054, + "nodeType": "InheritanceSpecifier", + "src": "193:7:25" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 7055, + "name": "PricerRole", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7545, + "src": "202:10:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_PricerRole_$7545", + "typeString": "contract PricerRole" + } + }, + "id": 7056, + "nodeType": "InheritanceSpecifier", + "src": "202:10:25" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 7057, + "name": "Ownable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9688, + "src": "214:7:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Ownable_$9688", + "typeString": "contract Ownable" + } + }, + "id": 7058, + "nodeType": "InheritanceSpecifier", + "src": "214:7:25" + } + ], + "contractDependencies": [ + 7015, + 7044, + 7402, + 7422, + 7545, + 9688 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 7265, + "linearizedBaseContracts": [ + 7265, + 9688, + 7545, + 7402, + 7015, + 7422, + 7044 + ], + "name": "Rates", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 7062, + "name": "rates", + "nodeType": "VariableDeclaration", + "scope": 7265, + "src": "228:31:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "typeName": { + "id": 7061, + "keyType": { + "id": 7059, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "237:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "228:25:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "valueType": { + "id": 7060, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "248:4:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7066, + "name": "tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 7265, + "src": "265:41:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", + "typeString": "mapping(bytes32 => address)" + }, + "typeName": { + "id": 7065, + "keyType": { + "id": 7063, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "274:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "265:28:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", + "typeString": "mapping(bytes32 => address)" + }, + "valueType": { + "id": 7064, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "285:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "body": { + "id": 7092, + "nodeType": "Block", + "src": "400:114:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7078, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7068, + "src": "428:6:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 7075, + "name": "Symbols", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7402, + "src": "410:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Symbols_$7402_$", + "typeString": "type(contract Symbols)" + } + }, + "id": 7077, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "addSymbol", + "nodeType": "MemberAccess", + "referencedDeclaration": 7313, + "src": "410:17:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$", + "typeString": "function (bytes32)" + } + }, + "id": 7079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "410:25:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7080, + "nodeType": "ExpressionStatement", + "src": "410:25:25" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 7085, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7081, + "name": "_address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7070, + "src": "450:8:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 7083, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "470:1:25", + "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": 7082, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "462:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 7084, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "462:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "450:22:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 7091, + "nodeType": "IfStatement", + "src": "446:61:25", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7087, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7068, + "src": "490:6:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 7088, + "name": "_address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7070, + "src": "498:8:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } } ], "expression": { - "argumentTypes": null, - "id": 4753, - "name": "PricerRole", + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7086, + "name": "setTokenAddress", "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5069, - "src": "533:10:16", + "overloadedDeclarations": [ + 7156 + ], + "referencedDeclaration": 7156, + "src": "474:15:25", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PricerRole_$5069_$", - "typeString": "type(contract PricerRole)" + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" } }, - "id": 4755, + "id": 7089, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "memberName": "addPricer", - "nodeType": "MemberAccess", - "referencedDeclaration": 5010, - "src": "533:20:16", + "names": [], + "nodeType": "FunctionCall", + "src": "474:33:25", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 4757, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "533:29:16", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4758, - "nodeType": "ExpressionStatement", - "src": "533:29:16" + "id": 7090, + "nodeType": "ExpressionStatement", + "src": "474:33:25" + } } ] }, "documentation": null, - "id": 4760, + "id": 7093, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 4751, + "id": 7073, "modifierName": { "argumentTypes": null, - "id": 4750, - "name": "onlyOwner", + "id": 7072, + "name": "onlyPricer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6888, - "src": "513:9:16", + "referencedDeclaration": 7461, + "src": "389:10:25", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "513:9:16" + "src": "389:10:25" } ], - "name": "addPricer", + "name": "addSymbolWithTokenAddress", "nodeType": "FunctionDefinition", "parameters": { - "id": 4749, + "id": 7071, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4748, - "name": "account", + "id": 7068, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 7093, + "src": "348:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 7067, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "348:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7070, + "name": "_address", "nodeType": "VariableDeclaration", - "scope": 4760, - "src": "489:15:16", + "scope": 7093, + "src": "364:16:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -942,10 +3632,10 @@ "typeString": "address" }, "typeName": { - "id": 4747, + "id": 7069, "name": "address", "nodeType": "ElementaryTypeName", - "src": "489:7:16", + "src": "364:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -955,26 +3645,26 @@ "visibility": "internal" } ], - "src": "488:17:16" + "src": "347:34:25" }, "payable": false, "returnParameters": { - "id": 4752, + "id": 7074, "nodeType": "ParameterList", "parameters": [], - "src": "523:0:16" + "src": "400:0:25" }, - "scope": 4815, - "src": "470:99:16", + "scope": 7265, + "src": "313:201:25", "stateMutability": "nonpayable", - "superFunction": 5010, + "superFunction": 6971, "visibility": "public" }, { "body": { - "id": 4773, + "id": 7106, "nodeType": "Block", - "src": "631:49:16", + "src": "573:42:25", "statements": [ { "expression": { @@ -982,53 +3672,53 @@ "arguments": [ { "argumentTypes": null, - "id": 4770, - "name": "account", + "id": 7103, + "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4762, - "src": "665:7:16", + "referencedDeclaration": 7095, + "src": "601:6:25", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } ], "expression": { "argumentTypes": null, - "id": 4767, - "name": "PricerRole", + "id": 7100, + "name": "Symbols", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5069, - "src": "641:10:16", + "referencedDeclaration": 7402, + "src": "583:7:25", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PricerRole_$5069_$", - "typeString": "type(contract PricerRole)" + "typeIdentifier": "t_type$_t_contract$_Symbols_$7402_$", + "typeString": "type(contract Symbols)" } }, - "id": 4769, + "id": 7102, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "removePricer", + "memberName": "addSymbol", "nodeType": "MemberAccess", - "referencedDeclaration": 5020, - "src": "641:23:16", + "referencedDeclaration": 7313, + "src": "583:17:25", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$", + "typeString": "function (bytes32)" } }, - "id": 4771, + "id": 7104, "isConstant": false, "isLValue": false, "isPure": false, @@ -1036,174 +3726,197 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "641:32:16", + "src": "583:25:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4772, + "id": 7105, "nodeType": "ExpressionStatement", - "src": "641:32:16" + "src": "583:25:25" } ] }, "documentation": null, - "id": 4774, + "id": 7107, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 4765, + "id": 7098, "modifierName": { "argumentTypes": null, - "id": 4764, - "name": "onlyOwner", + "id": 7097, + "name": "onlyPricer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6888, - "src": "621:9:16", + "referencedDeclaration": 7461, + "src": "562:10:25", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "621:9:16" + "src": "562:10:25" } ], - "name": "removePricer", + "name": "addSymbol", "nodeType": "FunctionDefinition", "parameters": { - "id": 4763, + "id": 7096, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4762, - "name": "account", + "id": 7095, + "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 4774, - "src": "597:15:16", + "scope": 7107, + "src": "539:14:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" }, "typeName": { - "id": 4761, - "name": "address", + "id": 7094, + "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "597:7:16", + "src": "539:7:25", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, "value": null, "visibility": "internal" } ], - "src": "596:17:16" + "src": "538:16:25" }, "payable": false, "returnParameters": { - "id": 4766, + "id": 7099, "nodeType": "ParameterList", "parameters": [], - "src": "631:0:16" + "src": "573:0:25" }, - "scope": 4815, - "src": "575:105:16", + "scope": 7265, + "src": "520:95:25", "stateMutability": "nonpayable", - "superFunction": 5020, + "superFunction": 7313, "visibility": "public" }, { "body": { - "id": 4791, + "id": 7133, "nodeType": "Block", - "src": "741:74:16", + "src": "677:117:25", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ + { + "argumentTypes": null, + "id": 7115, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7109, + "src": "703:6:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 4783, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4776, - "src": "769:6:16", + "hexValue": "30", + "id": 7117, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "719:1:25", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" } ], - "id": 4782, - "name": "hasSymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4902, - "src": "759:9:16", + "id": 7116, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "711:7:25", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", - "typeString": "function (bytes32) view returns (bool)" - } + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, - "id": 4784, + "id": 7118, "isConstant": false, "isLValue": false, - "isPure": false, - "kind": "functionCall", + "isPure": true, + "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "759:17:16", + "src": "711:10:25", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" } ], - "id": 4781, - "name": "require", + "id": 7114, + "name": "setTokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 7156 ], - "referencedDeclaration": 7297, - "src": "751:7:16", + "referencedDeclaration": 7156, + "src": "687:15:25", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address)" } }, - "id": 4785, + "id": 7119, "isConstant": false, "isLValue": false, "isPure": false, @@ -1211,83 +3924,205 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "751:26:16", + "src": "687:35:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4786, + "id": 7120, "nodeType": "ExpressionStatement", - "src": "751:26:16" + "src": "687:35:25" }, { "expression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4787, - "name": "rates", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4712, - "src": "795:5:16", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" + "arguments": [ + { + "argumentTypes": null, + "id": 7124, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7109, + "src": "753:6:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } } - }, - "id": 4789, - "indexExpression": { - "argumentTypes": null, - "id": 4788, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4776, - "src": "801:6:16", + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 7121, + "name": "Symbols", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7402, + "src": "732:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Symbols_$7402_$", + "typeString": "type(contract Symbols)" + } + }, + "id": 7123, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "removeSymbol", + "nodeType": "MemberAccess", + "referencedDeclaration": 7343, + "src": "732:20:25", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$", + "typeString": "function (bytes32)" } }, + "id": 7125, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "795:13:16", + "names": [], + "nodeType": "FunctionCall", + "src": "732:28:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7126, + "nodeType": "ExpressionStatement", + "src": "732:28:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 7131, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7127, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7062, + "src": "770:5:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 7129, + "indexExpression": { + "argumentTypes": null, + "id": 7128, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7109, + "src": "776:6:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "770:13:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 7130, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "786:1:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "770:17:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 4780, - "id": 4790, - "nodeType": "Return", - "src": "788:20:16" + "id": 7132, + "nodeType": "ExpressionStatement", + "src": "770:17:25" } ] }, "documentation": null, - "id": 4792, + "id": 7134, "implemented": true, "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "get", + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 7112, + "modifierName": { + "argumentTypes": null, + "id": 7111, + "name": "onlyPricer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7461, + "src": "666:10:25", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "666:10:25" + } + ], + "name": "removeSymbol", "nodeType": "FunctionDefinition", "parameters": { - "id": 4777, + "id": 7110, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4776, + "id": 7109, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 4792, - "src": "699:14:16", + "scope": 7134, + "src": "643:14:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1295,10 +4130,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 4775, + "id": 7108, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "699:7:16", + "src": "643:7:25", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1308,53 +4143,26 @@ "visibility": "internal" } ], - "src": "698:16:16" + "src": "642:16:25" }, "payable": false, "returnParameters": { - "id": 4780, + "id": 7113, "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4779, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 4792, - "src": "735:4:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4778, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "735:4:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "734:6:16" + "parameters": [], + "src": "677:0:25" }, - "scope": 4815, - "src": "686:129:16", - "stateMutability": "view", - "superFunction": null, + "scope": 7265, + "src": "621:173:25", + "stateMutability": "nonpayable", + "superFunction": 7343, "visibility": "public" }, { "body": { - "id": 4813, + "id": 7155, "nodeType": "Block", - "src": "879:74:16", + "src": "877:85:25", "statements": [ { "expression": { @@ -1365,12 +4173,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4803, + "id": 7145, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4794, - "src": "907:6:16", + "referencedDeclaration": 7136, + "src": "905:6:25", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1384,18 +4192,20 @@ "typeString": "bytes32" } ], - "id": 4802, + "id": 7144, "name": "hasSymbol", "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4902, - "src": "897:9:16", + "overloadedDeclarations": [ + 7355 + ], + "referencedDeclaration": 7355, + "src": "895:9:25", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", "typeString": "function (bytes32) view returns (bool)" } }, - "id": 4804, + "id": 7146, "isConstant": false, "isLValue": false, "isPure": false, @@ -1403,7 +4213,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "897:17:16", + "src": "895:17:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1417,21 +4227,21 @@ "typeString": "bool" } ], - "id": 4801, + "id": 7143, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "889:7:16", + "referencedDeclaration": 10045, + "src": "887:7:25", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 4805, + "id": 7147, "isConstant": false, "isLValue": false, "isPure": false, @@ -1439,20 +4249,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "889:26:16", + "src": "887:26:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4806, + "id": 7148, "nodeType": "ExpressionStatement", - "src": "889:26:16" + "src": "887:26:25" }, { "expression": { "argumentTypes": null, - "id": 4811, + "id": 7153, "isConstant": false, "isLValue": false, "isPure": false, @@ -1461,26 +4271,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 4807, - "name": "rates", + "id": 7149, + "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4712, - "src": "926:5:16", + "referencedDeclaration": 7066, + "src": "924:12:25", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" + "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", + "typeString": "mapping(bytes32 => address)" } }, - "id": 4809, + "id": 7151, "indexExpression": { "argumentTypes": null, - "id": 4808, + "id": 7150, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4794, - "src": "932:6:16", + "referencedDeclaration": 7136, + "src": "937:6:25", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1491,78 +4301,78 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "926:13:16", + "src": "924:20:25", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 4810, - "name": "rate", + "id": 7152, + "name": "_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4796, - "src": "942:4:16", + "referencedDeclaration": 7138, + "src": "947:8:25", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "src": "926:20:16", + "src": "924:31:25", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 4812, + "id": 7154, "nodeType": "ExpressionStatement", - "src": "926:20:16" + "src": "924:31:25" } ] }, "documentation": null, - "id": 4814, + "id": 7156, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 4799, + "id": 7141, "modifierName": { "argumentTypes": null, - "id": 4798, + "id": 7140, "name": "onlyPricer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4985, - "src": "868:10:16", + "referencedDeclaration": 7461, + "src": "866:10:25", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "868:10:16" + "src": "866:10:25" } ], - "name": "set", + "name": "setTokenAddress", "nodeType": "FunctionDefinition", "parameters": { - "id": 4797, + "id": 7139, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4794, + "id": 7136, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 4814, - "src": "834:14:16", + "scope": 7156, + "src": "825:14:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1570,10 +4380,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 4793, + "id": 7135, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "834:7:16", + "src": "825:7:25", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1584,232 +4394,51 @@ }, { "constant": false, - "id": 4796, - "name": "rate", + "id": 7138, + "name": "_address", "nodeType": "VariableDeclaration", - "scope": 4814, - "src": "850:9:16", + "scope": 7156, + "src": "841:16:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" }, "typeName": { - "id": 4795, - "name": "uint", + "id": 7137, + "name": "address", "nodeType": "ElementaryTypeName", - "src": "850:4:16", + "src": "841:7:25", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, "value": null, "visibility": "internal" } ], - "src": "833:27:16" + "src": "824:34:25" }, "payable": false, "returnParameters": { - "id": 4800, + "id": 7142, "nodeType": "ParameterList", "parameters": [], - "src": "879:0:16" + "src": "877:0:25" }, - "scope": 4815, - "src": "821:132:16", + "scope": 7265, + "src": "800:162:25", "stateMutability": "nonpayable", - "superFunction": null, + "superFunction": 6978, "visibility": "public" - } - ], - "scope": 4816, - "src": "144:811:16" - } - ], - "src": "0:956:16" - }, - "legacyAST": { - "absolutePath": "/home/circleci/code/contracts/rates/Rates.sol", - "exportedSymbols": { - "Rates": [ - 4815 - ] - }, - "id": 4816, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 4699, - "literals": [ - "solidity", - "^", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:24:16" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 4700, - "nodeType": "ImportDirective", - "scope": 4816, - "sourceUnit": 6941, - "src": "26:63:16", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/circleci/code/contracts/rates/roles/Pricer.sol", - "file": "./roles/Pricer.sol", - "id": 4701, - "nodeType": "ImportDirective", - "scope": 4816, - "sourceUnit": 5070, - "src": "90:28:16", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/circleci/code/contracts/rates/Symbols.sol", - "file": "./Symbols.sol", - "id": 4702, - "nodeType": "ImportDirective", - "scope": 4816, - "sourceUnit": 4950, - "src": "119:23:16", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 4703, - "name": "Symbols", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4949, - "src": "162:7:16", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Symbols_$4949", - "typeString": "contract Symbols" - } - }, - "id": 4704, - "nodeType": "InheritanceSpecifier", - "src": "162:7:16" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 4705, - "name": "PricerRole", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5069, - "src": "171:10:16", - "typeDescriptions": { - "typeIdentifier": "t_contract$_PricerRole_$5069", - "typeString": "contract PricerRole" - } - }, - "id": 4706, - "nodeType": "InheritanceSpecifier", - "src": "171:10:16" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 4707, - "name": "Ownable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6940, - "src": "183:7:16", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$6940", - "typeString": "contract Ownable" - } - }, - "id": 4708, - "nodeType": "InheritanceSpecifier", - "src": "183:7:16" - } - ], - "contractDependencies": [ - 4949, - 5069, - 6940 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 4815, - "linearizedBaseContracts": [ - 4815, - 6940, - 5069, - 4949 - ], - "name": "Rates", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 4712, - "name": "rates", - "nodeType": "VariableDeclaration", - "scope": 4815, - "src": "197:31:16", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "typeName": { - "id": 4711, - "keyType": { - "id": 4709, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "206:7:16", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "197:25:16", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "valueType": { - "id": 4710, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "217:4:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" }, { "body": { - "id": 4725, + "id": 7173, "nodeType": "Block", - "src": "288:42:16", + "src": "1038:79:25", "statements": [ { "expression": { @@ -1817,53 +4446,78 @@ "arguments": [ { "argumentTypes": null, - "id": 4722, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4714, - "src": "316:6:16", + "arguments": [ + { + "argumentTypes": null, + "id": 7165, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7158, + "src": "1064:6:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 7164, + "name": "isToken", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 7196 + ], + "referencedDeclaration": 7196, + "src": "1056:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (bytes32) view returns (bool)" + } + }, + "id": 7166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1056:15:25", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_bool", + "typeString": "bool" } } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 4719, - "name": "Symbols", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4949, - "src": "298:7:16", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Symbols_$4949_$", - "typeString": "type(contract Symbols)" + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" } - }, - "id": 4721, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "addSymbol", - "nodeType": "MemberAccess", - "referencedDeclaration": 4860, - "src": "298:17:16", + ], + "id": 7163, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "1048:7:25", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$", - "typeString": "function (bytes32)" + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" } }, - "id": 4723, + "id": 7167, "isConstant": false, "isLValue": false, "isPure": false, @@ -1871,57 +4525,83 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "298:25:16", + "src": "1048:24:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4724, + "id": 7168, "nodeType": "ExpressionStatement", - "src": "298:25:16" + "src": "1048:24:25" + }, + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7169, + "name": "tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7066, + "src": "1090:12:25", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", + "typeString": "mapping(bytes32 => address)" + } + }, + "id": 7171, + "indexExpression": { + "argumentTypes": null, + "id": 7170, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7158, + "src": "1103:6:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1090:20:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 7162, + "id": 7172, + "nodeType": "Return", + "src": "1083:27:25" } ] }, "documentation": null, - "id": 4726, + "id": 7174, "implemented": true, "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 4717, - "modifierName": { - "argumentTypes": null, - "id": 4716, - "name": "onlyPricer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4985, - "src": "277:10:16", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "277:10:16" - } - ], - "name": "addSymbol", + "isDeclaredConst": true, + "modifiers": [], + "name": "getTokenAddress", "nodeType": "FunctionDefinition", "parameters": { - "id": 4715, + "id": 7159, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4714, + "id": 7158, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 4726, - "src": "254:14:16", + "scope": 7174, + "src": "993:14:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1929,10 +4609,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 4713, + "id": 7157, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "254:7:16", + "src": "993:7:25", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1942,26 +4622,53 @@ "visibility": "internal" } ], - "src": "253:16:16" + "src": "992:16:25" }, "payable": false, "returnParameters": { - "id": 4718, + "id": 7162, "nodeType": "ParameterList", - "parameters": [], - "src": "288:0:16" + "parameters": [ + { + "constant": false, + "id": 7161, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7174, + "src": "1029:7:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7160, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1029:7:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1028:9:25" }, - "scope": 4815, - "src": "235:95:16", - "stateMutability": "nonpayable", - "superFunction": 4860, + "scope": 7265, + "src": "968:149:25", + "stateMutability": "view", + "superFunction": 6985, "visibility": "public" }, { "body": { - "id": 4745, + "id": 7195, "nodeType": "Block", - "src": "392:72:16", + "src": "1183:95:25", "statements": [ { "expression": { @@ -1969,53 +4676,78 @@ "arguments": [ { "argumentTypes": null, - "id": 4736, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4728, - "src": "423:6:16", + "arguments": [ + { + "argumentTypes": null, + "id": 7183, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7176, + "src": "1211:6:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 7182, + "name": "hasSymbol", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 7355 + ], + "referencedDeclaration": 7355, + "src": "1201:9:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (bytes32) view returns (bool)" + } + }, + "id": 7184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1201:17:25", "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": 4733, - "name": "Symbols", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4949, - "src": "402:7:16", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Symbols_$4949_$", - "typeString": "type(contract Symbols)" - } - }, - "id": 4735, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "removeSymbol", - "nodeType": "MemberAccess", - "referencedDeclaration": 4890, - "src": "402:20:16", + "id": 7181, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "1193:7:25", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$", - "typeString": "function (bytes32)" + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" } }, - "id": 4737, + "id": 7185, "isConstant": false, "isLValue": false, "isPure": false, @@ -2023,48 +4755,52 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "402:28:16", + "src": "1193:26:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4738, + "id": 7186, "nodeType": "ExpressionStatement", - "src": "402:28:16" + "src": "1193:26:25" }, { "expression": { "argumentTypes": null, - "id": 4743, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 7193, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftHandSide": { + "leftExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 4739, - "name": "rates", + "id": 7187, + "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4712, - "src": "440:5:16", + "referencedDeclaration": 7066, + "src": "1237:12:25", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" + "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", + "typeString": "mapping(bytes32 => address)" } }, - "id": 4741, + "id": 7189, "indexExpression": { "argumentTypes": null, - "id": 4740, + "id": 7188, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4728, - "src": "446:6:16", + "referencedDeclaration": 7176, + "src": "1250:6:25", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2073,85 +4809,104 @@ "isConstant": false, "isLValue": true, "isPure": false, - "lValueRequested": true, + "lValueRequested": false, "nodeType": "IndexAccess", - "src": "440:13:16", + "src": "1237:20:25", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 4742, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 7191, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1269:1:25", + "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": 7190, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1261:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 7192, "isConstant": false, "isLValue": false, "isPure": true, - "kind": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "456:1:16", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "1261:10:25", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_address", + "typeString": "address" + } }, - "src": "440:17:16", + "src": "1237:34:25", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 4744, - "nodeType": "ExpressionStatement", - "src": "440:17:16" + "functionReturnParameters": 7180, + "id": 7194, + "nodeType": "Return", + "src": "1230:41:25" } ] }, "documentation": null, - "id": 4746, + "id": 7196, "implemented": true, "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 4731, - "modifierName": { - "argumentTypes": null, - "id": 4730, - "name": "onlyPricer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4985, - "src": "381:10:16", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "381:10:16" - } - ], - "name": "removeSymbol", + "isDeclaredConst": true, + "modifiers": [], + "name": "isToken", "nodeType": "FunctionDefinition", "parameters": { - "id": 4729, + "id": 7177, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4728, + "id": 7176, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 4746, - "src": "358:14:16", + "scope": 7196, + "src": "1140:14:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2159,10 +4914,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 4727, + "id": 7175, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "358:7:16", + "src": "1140:7:25", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2172,26 +4927,53 @@ "visibility": "internal" } ], - "src": "357:16:16" + "src": "1139:16:25" }, "payable": false, "returnParameters": { - "id": 4732, + "id": 7180, "nodeType": "ParameterList", - "parameters": [], - "src": "392:0:16" + "parameters": [ + { + "constant": false, + "id": 7179, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7196, + "src": "1177:4:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7178, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1177:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1176:6:25" }, - "scope": 4815, - "src": "336:128:16", - "stateMutability": "nonpayable", - "superFunction": 4890, + "scope": 7265, + "src": "1123:155:25", + "stateMutability": "view", + "superFunction": 6992, "visibility": "public" }, { "body": { - "id": 4759, + "id": 7209, "nodeType": "Block", - "src": "523:46:16", + "src": "1337:46:25", "statements": [ { "expression": { @@ -2199,12 +4981,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4756, + "id": 7206, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4748, - "src": "554:7:16", + "referencedDeclaration": 7198, + "src": "1368:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2220,32 +5002,32 @@ ], "expression": { "argumentTypes": null, - "id": 4753, + "id": 7203, "name": "PricerRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5069, - "src": "533:10:16", + "referencedDeclaration": 7545, + "src": "1347:10:25", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PricerRole_$5069_$", + "typeIdentifier": "t_type$_t_contract$_PricerRole_$7545_$", "typeString": "type(contract PricerRole)" } }, - "id": 4755, + "id": 7205, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "addPricer", "nodeType": "MemberAccess", - "referencedDeclaration": 5010, - "src": "533:20:16", + "referencedDeclaration": 7486, + "src": "1347:20:25", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 4757, + "id": 7207, "isConstant": false, "isLValue": false, "isPure": false, @@ -2253,57 +5035,57 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "533:29:16", + "src": "1347:29:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4758, + "id": 7208, "nodeType": "ExpressionStatement", - "src": "533:29:16" + "src": "1347:29:25" } ] }, "documentation": null, - "id": 4760, + "id": 7210, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 4751, + "id": 7201, "modifierName": { "argumentTypes": null, - "id": 4750, + "id": 7200, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6888, - "src": "513:9:16", + "referencedDeclaration": 9636, + "src": "1327:9:25", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "513:9:16" + "src": "1327:9:25" } ], "name": "addPricer", "nodeType": "FunctionDefinition", "parameters": { - "id": 4749, + "id": 7199, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4748, + "id": 7198, "name": "account", "nodeType": "VariableDeclaration", - "scope": 4760, - "src": "489:15:16", + "scope": 7210, + "src": "1303:15:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2311,10 +5093,10 @@ "typeString": "address" }, "typeName": { - "id": 4747, + "id": 7197, "name": "address", "nodeType": "ElementaryTypeName", - "src": "489:7:16", + "src": "1303:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2324,26 +5106,26 @@ "visibility": "internal" } ], - "src": "488:17:16" + "src": "1302:17:25" }, "payable": false, "returnParameters": { - "id": 4752, + "id": 7202, "nodeType": "ParameterList", "parameters": [], - "src": "523:0:16" + "src": "1337:0:25" }, - "scope": 4815, - "src": "470:99:16", + "scope": 7265, + "src": "1284:99:25", "stateMutability": "nonpayable", - "superFunction": 5010, + "superFunction": 7486, "visibility": "public" }, { "body": { - "id": 4773, + "id": 7223, "nodeType": "Block", - "src": "631:49:16", + "src": "1445:49:25", "statements": [ { "expression": { @@ -2351,12 +5133,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4770, + "id": 7220, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4762, - "src": "665:7:16", + "referencedDeclaration": 7212, + "src": "1479:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2372,32 +5154,32 @@ ], "expression": { "argumentTypes": null, - "id": 4767, + "id": 7217, "name": "PricerRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5069, - "src": "641:10:16", + "referencedDeclaration": 7545, + "src": "1455:10:25", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PricerRole_$5069_$", + "typeIdentifier": "t_type$_t_contract$_PricerRole_$7545_$", "typeString": "type(contract PricerRole)" } }, - "id": 4769, + "id": 7219, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "removePricer", "nodeType": "MemberAccess", - "referencedDeclaration": 5020, - "src": "641:23:16", + "referencedDeclaration": 7496, + "src": "1455:23:25", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 4771, + "id": 7221, "isConstant": false, "isLValue": false, "isPure": false, @@ -2405,57 +5187,57 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "641:32:16", + "src": "1455:32:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4772, + "id": 7222, "nodeType": "ExpressionStatement", - "src": "641:32:16" + "src": "1455:32:25" } ] }, "documentation": null, - "id": 4774, + "id": 7224, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 4765, + "id": 7215, "modifierName": { "argumentTypes": null, - "id": 4764, + "id": 7214, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6888, - "src": "621:9:16", + "referencedDeclaration": 9636, + "src": "1435:9:25", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "621:9:16" + "src": "1435:9:25" } ], "name": "removePricer", "nodeType": "FunctionDefinition", "parameters": { - "id": 4763, + "id": 7213, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4762, + "id": 7212, "name": "account", "nodeType": "VariableDeclaration", - "scope": 4774, - "src": "597:15:16", + "scope": 7224, + "src": "1411:15:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2463,10 +5245,10 @@ "typeString": "address" }, "typeName": { - "id": 4761, + "id": 7211, "name": "address", "nodeType": "ElementaryTypeName", - "src": "597:7:16", + "src": "1411:7:25", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2476,26 +5258,26 @@ "visibility": "internal" } ], - "src": "596:17:16" + "src": "1410:17:25" }, "payable": false, "returnParameters": { - "id": 4766, + "id": 7216, "nodeType": "ParameterList", "parameters": [], - "src": "631:0:16" + "src": "1445:0:25" }, - "scope": 4815, - "src": "575:105:16", + "scope": 7265, + "src": "1389:105:25", "stateMutability": "nonpayable", - "superFunction": 5020, + "superFunction": 7496, "visibility": "public" }, { "body": { - "id": 4791, + "id": 7241, "nodeType": "Block", - "src": "741:74:16", + "src": "1555:74:25", "statements": [ { "expression": { @@ -2506,12 +5288,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4783, + "id": 7233, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4776, - "src": "769:6:16", + "referencedDeclaration": 7226, + "src": "1583:6:25", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2525,18 +5307,20 @@ "typeString": "bytes32" } ], - "id": 4782, + "id": 7232, "name": "hasSymbol", "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4902, - "src": "759:9:16", + "overloadedDeclarations": [ + 7355 + ], + "referencedDeclaration": 7355, + "src": "1573:9:25", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", "typeString": "function (bytes32) view returns (bool)" } }, - "id": 4784, + "id": 7234, "isConstant": false, "isLValue": false, "isPure": false, @@ -2544,7 +5328,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "759:17:16", + "src": "1573:17:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2558,21 +5342,21 @@ "typeString": "bool" } ], - "id": 4781, + "id": 7231, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "751:7:16", + "referencedDeclaration": 10045, + "src": "1565:7:25", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 4785, + "id": 7235, "isConstant": false, "isLValue": false, "isPure": false, @@ -2580,41 +5364,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "751:26:16", + "src": "1565:26:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4786, + "id": 7236, "nodeType": "ExpressionStatement", - "src": "751:26:16" + "src": "1565:26:25" }, { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 4787, + "id": 7237, "name": "rates", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4712, - "src": "795:5:16", + "referencedDeclaration": 7062, + "src": "1609:5:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 4789, + "id": 7239, "indexExpression": { "argumentTypes": null, - "id": 4788, + "id": 7238, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4776, - "src": "801:6:16", + "referencedDeclaration": 7226, + "src": "1615:6:25", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2625,21 +5409,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "795:13:16", + "src": "1609:13:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 4780, - "id": 4790, + "functionReturnParameters": 7230, + "id": 7240, "nodeType": "Return", - "src": "788:20:16" + "src": "1602:20:25" } ] }, "documentation": null, - "id": 4792, + "id": 7242, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2647,16 +5431,16 @@ "name": "get", "nodeType": "FunctionDefinition", "parameters": { - "id": 4777, + "id": 7227, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4776, + "id": 7226, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 4792, - "src": "699:14:16", + "scope": 7242, + "src": "1513:14:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2664,10 +5448,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 4775, + "id": 7225, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "699:7:16", + "src": "1513:7:25", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2677,20 +5461,20 @@ "visibility": "internal" } ], - "src": "698:16:16" + "src": "1512:16:25" }, "payable": false, "returnParameters": { - "id": 4780, + "id": 7230, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4779, + "id": 7229, "name": "", "nodeType": "VariableDeclaration", - "scope": 4792, - "src": "735:4:16", + "scope": 7242, + "src": "1549:4:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2698,10 +5482,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4778, + "id": 7228, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "735:4:16", + "src": "1549:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2711,19 +5495,19 @@ "visibility": "internal" } ], - "src": "734:6:16" + "src": "1548:6:25" }, - "scope": 4815, - "src": "686:129:16", + "scope": 7265, + "src": "1500:129:25", "stateMutability": "view", - "superFunction": null, + "superFunction": 6999, "visibility": "public" }, { "body": { - "id": 4813, + "id": 7263, "nodeType": "Block", - "src": "879:74:16", + "src": "1693:74:25", "statements": [ { "expression": { @@ -2734,12 +5518,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4803, + "id": 7253, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4794, - "src": "907:6:16", + "referencedDeclaration": 7244, + "src": "1721:6:25", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2753,18 +5537,20 @@ "typeString": "bytes32" } ], - "id": 4802, + "id": 7252, "name": "hasSymbol", "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4902, - "src": "897:9:16", + "overloadedDeclarations": [ + 7355 + ], + "referencedDeclaration": 7355, + "src": "1711:9:25", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", "typeString": "function (bytes32) view returns (bool)" } }, - "id": 4804, + "id": 7254, "isConstant": false, "isLValue": false, "isPure": false, @@ -2772,7 +5558,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "897:17:16", + "src": "1711:17:25", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2786,21 +5572,21 @@ "typeString": "bool" } ], - "id": 4801, + "id": 7251, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "889:7:16", + "referencedDeclaration": 10045, + "src": "1703:7:25", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 4805, + "id": 7255, "isConstant": false, "isLValue": false, "isPure": false, @@ -2808,20 +5594,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "889:26:16", + "src": "1703:26:25", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4806, + "id": 7256, "nodeType": "ExpressionStatement", - "src": "889:26:16" + "src": "1703:26:25" }, { "expression": { "argumentTypes": null, - "id": 4811, + "id": 7261, "isConstant": false, "isLValue": false, "isPure": false, @@ -2830,26 +5616,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 4807, + "id": 7257, "name": "rates", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4712, - "src": "926:5:16", + "referencedDeclaration": 7062, + "src": "1740:5:25", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 4809, + "id": 7259, "indexExpression": { "argumentTypes": null, - "id": 4808, + "id": 7258, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4794, - "src": "932:6:16", + "referencedDeclaration": 7244, + "src": "1746:6:25", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2860,7 +5646,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "926:13:16", + "src": "1740:13:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2870,68 +5656,68 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 4810, + "id": 7260, "name": "rate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4796, - "src": "942:4:16", + "referencedDeclaration": 7246, + "src": "1756:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "926:20:16", + "src": "1740:20:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 4812, + "id": 7262, "nodeType": "ExpressionStatement", - "src": "926:20:16" + "src": "1740:20:25" } ] }, "documentation": null, - "id": 4814, + "id": 7264, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 4799, + "id": 7249, "modifierName": { "argumentTypes": null, - "id": 4798, + "id": 7248, "name": "onlyPricer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4985, - "src": "868:10:16", + "referencedDeclaration": 7461, + "src": "1682:10:25", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "868:10:16" + "src": "1682:10:25" } ], "name": "set", "nodeType": "FunctionDefinition", "parameters": { - "id": 4797, + "id": 7247, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4794, + "id": 7244, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 4814, - "src": "834:14:16", + "scope": 7264, + "src": "1648:14:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2939,10 +5725,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 4793, + "id": 7243, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "834:7:16", + "src": "1648:7:25", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2953,11 +5739,11 @@ }, { "constant": false, - "id": 4796, + "id": 7246, "name": "rate", "nodeType": "VariableDeclaration", - "scope": 4814, - "src": "850:9:16", + "scope": 7264, + "src": "1664:9:25", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2965,10 +5751,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4795, + "id": 7245, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "850:4:16", + "src": "1664:4:25", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2978,33 +5764,40 @@ "visibility": "internal" } ], - "src": "833:27:16" + "src": "1647:27:25" }, "payable": false, "returnParameters": { - "id": 4800, + "id": 7250, "nodeType": "ParameterList", "parameters": [], - "src": "879:0:16" + "src": "1693:0:25" }, - "scope": 4815, - "src": "821:132:16", + "scope": 7265, + "src": "1635:132:25", "stateMutability": "nonpayable", - "superFunction": null, + "superFunction": 7006, "visibility": "public" } ], - "scope": 4816, - "src": "144:811:16" + "scope": 7266, + "src": "167:1602:25" } ], - "src": "0:956:16" + "src": "0:1770:25" }, "compiler": { "name": "solc", "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, - "networks": {}, + "networks": { + "4": { + "events": {}, + "links": {}, + "address": "0x8c7aee0da71e31241e537c8d68a878a65d27e386", + "transactionHash": "0x98db79c97d80475faa4d1b963277c8c64d3657e63b9fbf822bce06884569fdf8" + } + }, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-02T11:52:56.756Z" + "updatedAt": "2018-10-22T07:59:52.071Z" } \ No newline at end of file diff --git a/build/contracts/ReentrancyGuard.json b/build/contracts/ReentrancyGuard.json index 93c2974c..4235e533 100644 --- a/build/contracts/ReentrancyGuard.json +++ b/build/contracts/ReentrancyGuard.json @@ -3,22 +3,22 @@ "abi": [], "bytecode": "0x60806040526001600055348015601457600080fd5b5060358060226000396000f3006080604052600080fd00a165627a7a72305820325272b34f75d7848357c888480a72689e39f5d2c8a70e0723f192a79d6c4d690029", "deployedBytecode": "0x6080604052600080fd00a165627a7a72305820325272b34f75d7848357c888480a72689e39f5d2c8a70e0723f192a79d6c4d690029", - "sourceMap": "250:1023:28:-;;;487:1;657:51;;250:1023;8:9:-1;5:2;;;30:1;27;20:12;5:2;250:1023:28;;;;;;;", - "deployedSourceMap": "250:1023:28:-;;;;;", + "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", "ast": { "absolutePath": "openzeppelin-solidity/contracts/ReentrancyGuard.sol", "exportedSymbols": { "ReentrancyGuard": [ - 6690 + 9331 ] }, - "id": 6691, + "id": 9332, "nodeType": "SourceUnit", "nodes": [ { - "id": 6662, + "id": 9303, "literals": [ "solidity", "^", @@ -26,7 +26,7 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:28" + "src": "0:24:41" }, { "baseContracts": [], @@ -34,20 +34,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": 6690, + "id": 9331, "linearizedBaseContracts": [ - 6690 + 9331 ], "name": "ReentrancyGuard", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 6665, + "id": 9306, "name": "REENTRANCY_GUARD_FREE", "nodeType": "VariableDeclaration", - "scope": 6690, - "src": "441:47:28", + "scope": 9331, + "src": "441:47:41", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -55,10 +55,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6663, + "id": 9304, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "441:4:28", + "src": "441:4:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -67,14 +67,14 @@ "value": { "argumentTypes": null, "hexValue": "31", - "id": 6664, + "id": 9305, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "487:1:28", + "src": "487:1:41", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -86,11 +86,11 @@ }, { "constant": true, - "id": 6668, + "id": 9309, "name": "REENTRANCY_GUARD_LOCKED", "nodeType": "VariableDeclaration", - "scope": 6690, - "src": "536:49:28", + "scope": 9331, + "src": "536:49:41", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -98,10 +98,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6666, + "id": 9307, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "536:4:28", + "src": "536:4:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -110,14 +110,14 @@ "value": { "argumentTypes": null, "hexValue": "32", - "id": 6667, + "id": 9308, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "584:1:28", + "src": "584:1:41", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -129,11 +129,11 @@ }, { "constant": false, - "id": 6671, + "id": 9312, "name": "reentrancyLock", "nodeType": "VariableDeclaration", - "scope": 6690, - "src": "657:51:28", + "scope": 9331, + "src": "657:51:41", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -141,10 +141,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6669, + "id": 9310, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "657:4:28", + "src": "657:4:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -152,12 +152,12 @@ }, "value": { "argumentTypes": null, - "id": 6670, + "id": 9311, "name": "REENTRANCY_GUARD_FREE", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6665, - "src": "687:21:28", + "referencedDeclaration": 9306, + "src": "687:21:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -167,9 +167,9 @@ }, { "body": { - "id": 6688, + "id": 9329, "nodeType": "Block", - "src": "1114:156:28", + "src": "1114:156:41", "statements": [ { "expression": { @@ -181,19 +181,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6676, + "id": 9317, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6674, + "id": 9315, "name": "reentrancyLock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6671, - "src": "1128:14:28", + "referencedDeclaration": 9312, + "src": "1128:14:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -203,18 +203,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 6675, + "id": 9316, "name": "REENTRANCY_GUARD_FREE", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6665, - "src": "1146:21:28", + "referencedDeclaration": 9306, + "src": "1146:21:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1128:39:28", + "src": "1128:39:41", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -228,21 +228,21 @@ "typeString": "bool" } ], - "id": 6673, + "id": 9314, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "1120:7:28", + "referencedDeclaration": 10045, + "src": "1120:7:41", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 6677, + "id": 9318, "isConstant": false, "isLValue": false, "isPure": false, @@ -250,32 +250,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1120:48:28", + "src": "1120:48:41", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6678, + "id": 9319, "nodeType": "ExpressionStatement", - "src": "1120:48:28" + "src": "1120:48:41" }, { "expression": { "argumentTypes": null, - "id": 6681, + "id": 9322, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 6679, + "id": 9320, "name": "reentrancyLock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6671, - "src": "1174:14:28", + "referencedDeclaration": 9312, + "src": "1174:14:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -285,48 +285,48 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 6680, + "id": 9321, "name": "REENTRANCY_GUARD_LOCKED", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6668, - "src": "1191:23:28", + "referencedDeclaration": 9309, + "src": "1191:23:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1174:40:28", + "src": "1174:40:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6682, + "id": 9323, "nodeType": "ExpressionStatement", - "src": "1174:40:28" + "src": "1174:40:41" }, { - "id": 6683, + "id": 9324, "nodeType": "PlaceholderStatement", - "src": "1220:1:28" + "src": "1220:1:41" }, { "expression": { "argumentTypes": null, - "id": 6686, + "id": 9327, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 6684, + "id": 9325, "name": "reentrancyLock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6671, - "src": "1227:14:28", + "referencedDeclaration": 9312, + "src": "1227:14:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -336,61 +336,61 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 6685, + "id": 9326, "name": "REENTRANCY_GUARD_FREE", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6665, - "src": "1244:21:28", + "referencedDeclaration": 9306, + "src": "1244:21:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1227:38:28", + "src": "1227:38:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6687, + "id": 9328, "nodeType": "ExpressionStatement", - "src": "1227:38:28" + "src": "1227:38:41" } ] }, "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": 6689, + "id": 9330, "name": "nonReentrant", "nodeType": "ModifierDefinition", "parameters": { - "id": 6672, + "id": 9313, "nodeType": "ParameterList", "parameters": [], - "src": "1111:2:28" + "src": "1111:2:41" }, - "src": "1090:180:28", + "src": "1090:180:41", "visibility": "internal" } ], - "scope": 6691, - "src": "250:1023:28" + "scope": 9332, + "src": "250:1023:41" } ], - "src": "0:1274:28" + "src": "0:1274:41" }, "legacyAST": { "absolutePath": "openzeppelin-solidity/contracts/ReentrancyGuard.sol", "exportedSymbols": { "ReentrancyGuard": [ - 6690 + 9331 ] }, - "id": 6691, + "id": 9332, "nodeType": "SourceUnit", "nodes": [ { - "id": 6662, + "id": 9303, "literals": [ "solidity", "^", @@ -398,7 +398,7 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:28" + "src": "0:24:41" }, { "baseContracts": [], @@ -406,20 +406,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": 6690, + "id": 9331, "linearizedBaseContracts": [ - 6690 + 9331 ], "name": "ReentrancyGuard", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 6665, + "id": 9306, "name": "REENTRANCY_GUARD_FREE", "nodeType": "VariableDeclaration", - "scope": 6690, - "src": "441:47:28", + "scope": 9331, + "src": "441:47:41", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -427,10 +427,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6663, + "id": 9304, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "441:4:28", + "src": "441:4:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -439,14 +439,14 @@ "value": { "argumentTypes": null, "hexValue": "31", - "id": 6664, + "id": 9305, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "487:1:28", + "src": "487:1:41", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -458,11 +458,11 @@ }, { "constant": true, - "id": 6668, + "id": 9309, "name": "REENTRANCY_GUARD_LOCKED", "nodeType": "VariableDeclaration", - "scope": 6690, - "src": "536:49:28", + "scope": 9331, + "src": "536:49:41", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -470,10 +470,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6666, + "id": 9307, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "536:4:28", + "src": "536:4:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -482,14 +482,14 @@ "value": { "argumentTypes": null, "hexValue": "32", - "id": 6667, + "id": 9308, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "584:1:28", + "src": "584:1:41", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -501,11 +501,11 @@ }, { "constant": false, - "id": 6671, + "id": 9312, "name": "reentrancyLock", "nodeType": "VariableDeclaration", - "scope": 6690, - "src": "657:51:28", + "scope": 9331, + "src": "657:51:41", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -513,10 +513,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6669, + "id": 9310, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "657:4:28", + "src": "657:4:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -524,12 +524,12 @@ }, "value": { "argumentTypes": null, - "id": 6670, + "id": 9311, "name": "REENTRANCY_GUARD_FREE", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6665, - "src": "687:21:28", + "referencedDeclaration": 9306, + "src": "687:21:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -539,9 +539,9 @@ }, { "body": { - "id": 6688, + "id": 9329, "nodeType": "Block", - "src": "1114:156:28", + "src": "1114:156:41", "statements": [ { "expression": { @@ -553,19 +553,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6676, + "id": 9317, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6674, + "id": 9315, "name": "reentrancyLock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6671, - "src": "1128:14:28", + "referencedDeclaration": 9312, + "src": "1128:14:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -575,18 +575,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 6675, + "id": 9316, "name": "REENTRANCY_GUARD_FREE", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6665, - "src": "1146:21:28", + "referencedDeclaration": 9306, + "src": "1146:21:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1128:39:28", + "src": "1128:39:41", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -600,21 +600,21 @@ "typeString": "bool" } ], - "id": 6673, + "id": 9314, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "1120:7:28", + "referencedDeclaration": 10045, + "src": "1120:7:41", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 6677, + "id": 9318, "isConstant": false, "isLValue": false, "isPure": false, @@ -622,32 +622,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1120:48:28", + "src": "1120:48:41", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6678, + "id": 9319, "nodeType": "ExpressionStatement", - "src": "1120:48:28" + "src": "1120:48:41" }, { "expression": { "argumentTypes": null, - "id": 6681, + "id": 9322, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 6679, + "id": 9320, "name": "reentrancyLock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6671, - "src": "1174:14:28", + "referencedDeclaration": 9312, + "src": "1174:14:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -657,48 +657,48 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 6680, + "id": 9321, "name": "REENTRANCY_GUARD_LOCKED", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6668, - "src": "1191:23:28", + "referencedDeclaration": 9309, + "src": "1191:23:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1174:40:28", + "src": "1174:40:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6682, + "id": 9323, "nodeType": "ExpressionStatement", - "src": "1174:40:28" + "src": "1174:40:41" }, { - "id": 6683, + "id": 9324, "nodeType": "PlaceholderStatement", - "src": "1220:1:28" + "src": "1220:1:41" }, { "expression": { "argumentTypes": null, - "id": 6686, + "id": 9327, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 6684, + "id": 9325, "name": "reentrancyLock", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6671, - "src": "1227:14:28", + "referencedDeclaration": 9312, + "src": "1227:14:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -708,48 +708,48 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 6685, + "id": 9326, "name": "REENTRANCY_GUARD_FREE", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6665, - "src": "1244:21:28", + "referencedDeclaration": 9306, + "src": "1244:21:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1227:38:28", + "src": "1227:38:41", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6687, + "id": 9328, "nodeType": "ExpressionStatement", - "src": "1227:38:28" + "src": "1227:38:41" } ] }, "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": 6689, + "id": 9330, "name": "nonReentrant", "nodeType": "ModifierDefinition", "parameters": { - "id": 6672, + "id": 9313, "nodeType": "ParameterList", "parameters": [], - "src": "1111:2:28" + "src": "1111:2:41" }, - "src": "1090:180:28", + "src": "1090:180:41", "visibility": "internal" } ], - "scope": 6691, - "src": "250:1023:28" + "scope": 9332, + "src": "250:1023:41" } ], - "src": "0:1274:28" + "src": "0:1274:41" }, "compiler": { "name": "solc", @@ -757,5 +757,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-02T11:52:56.765Z" + "updatedAt": "2018-10-22T07:56:01.689Z" } \ No newline at end of file diff --git a/build/contracts/Roles.json b/build/contracts/Roles.json index 1f041258..03a0ba38 100644 --- a/build/contracts/Roles.json +++ b/build/contracts/Roles.json @@ -3,22 +3,22 @@ "abi": [], "bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820cf135ce162a4bda9784b02edf8e48748df8df194083290ba7b19c005ece2b57d0029", "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820cf135ce162a4bda9784b02edf8e48748df8df194083290ba7b19c005ece2b57d0029", - "sourceMap": "186:799:29:-;;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:29:-;;;;;;;;", + "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", "ast": { "absolutePath": "openzeppelin-solidity/contracts/access/rbac/Roles.sol", "exportedSymbols": { "Roles": [ - 6760 + 9508 ] }, - "id": 6761, + "id": 9509, "nodeType": "SourceUnit", "nodes": [ { - "id": 6692, + "id": 9440, "literals": [ "solidity", "^", @@ -26,7 +26,7 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:29" + "src": "0:24:43" }, { "baseContracts": [], @@ -34,24 +34,24 @@ "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.", "fullyImplemented": true, - "id": 6760, + "id": 9508, "linearizedBaseContracts": [ - 6760 + 9508 ], "name": "Roles", "nodeType": "ContractDefinition", "nodes": [ { "canonicalName": "Roles.Role", - "id": 6697, + "id": 9445, "members": [ { "constant": false, - "id": 6696, + "id": 9444, "name": "bearer", "nodeType": "VariableDeclaration", - "scope": 6697, - "src": "222:32:29", + "scope": 9445, + "src": "222:32:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -59,28 +59,28 @@ "typeString": "mapping(address => bool)" }, "typeName": { - "id": 6695, + "id": 9443, "keyType": { - "id": 6693, + "id": 9441, "name": "address", "nodeType": "ElementaryTypeName", - "src": "231:7:29", + "src": "231:7:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "222:25:29", + "src": "222:25:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { - "id": 6694, + "id": 9442, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "242:4:29", + "src": "242:4:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -93,20 +93,20 @@ ], "name": "Role", "nodeType": "StructDefinition", - "scope": 6760, - "src": "204:55:29", + "scope": 9508, + "src": "204:55:43", "visibility": "public" }, { "body": { - "id": 6712, + "id": 9460, "nodeType": "Block", - "src": "384:37:29", + "src": "384:37:43", "statements": [ { "expression": { "argumentTypes": null, - "id": 6710, + "id": 9458, "isConstant": false, "isLValue": false, "isPure": false, @@ -117,40 +117,40 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 6704, + "id": 9452, "name": "_role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6699, - "src": "390:5:29", + "referencedDeclaration": 9447, + "src": "390:5:43", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$6697_storage_ptr", + "typeIdentifier": "t_struct$_Role_$9445_storage_ptr", "typeString": "struct Roles.Role storage pointer" } }, - "id": 6707, + "id": 9455, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "bearer", "nodeType": "MemberAccess", - "referencedDeclaration": 6696, - "src": "390:12:29", + "referencedDeclaration": 9444, + "src": "390:12:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 6708, + "id": 9456, "indexExpression": { "argumentTypes": null, - "id": 6706, + "id": 9454, "name": "_addr", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6701, - "src": "403:5:29", + "referencedDeclaration": 9449, + "src": "403:5:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -161,7 +161,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "390:19:29", + "src": "390:19:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -172,14 +172,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 6709, + "id": 9457, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "412:4:29", + "src": "412:4:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -187,20 +187,20 @@ }, "value": "true" }, - "src": "390:26:29", + "src": "390:26:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 6711, + "id": 9459, "nodeType": "ExpressionStatement", - "src": "390:26:29" + "src": "390:26:43" } ] }, "documentation": "@dev give an address access to this role", - "id": 6713, + "id": 9461, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -208,31 +208,31 @@ "name": "add", "nodeType": "FunctionDefinition", "parameters": { - "id": 6702, + "id": 9450, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6699, + "id": 9447, "name": "_role", "nodeType": "VariableDeclaration", - "scope": 6713, - "src": "334:18:29", + "scope": 9461, + "src": "334:18:43", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$6697_storage_ptr", + "typeIdentifier": "t_struct$_Role_$9445_storage_ptr", "typeString": "struct Roles.Role" }, "typeName": { "contractScope": null, - "id": 6698, + "id": 9446, "name": "Role", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6697, - "src": "334:4:29", + "referencedDeclaration": 9445, + "src": "334:4:43", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$6697_storage_ptr", + "typeIdentifier": "t_struct$_Role_$9445_storage_ptr", "typeString": "struct Roles.Role" } }, @@ -241,11 +241,11 @@ }, { "constant": false, - "id": 6701, + "id": 9449, "name": "_addr", "nodeType": "VariableDeclaration", - "scope": 6713, - "src": "354:13:29", + "scope": 9461, + "src": "354:13:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -253,10 +253,10 @@ "typeString": "address" }, "typeName": { - "id": 6700, + "id": 9448, "name": "address", "nodeType": "ElementaryTypeName", - "src": "354:7:29", + "src": "354:7:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -266,31 +266,31 @@ "visibility": "internal" } ], - "src": "333:35:29" + "src": "333:35:43" }, "payable": false, "returnParameters": { - "id": 6703, + "id": 9451, "nodeType": "ParameterList", "parameters": [], - "src": "384:0:29" + "src": "384:0:43" }, - "scope": 6760, - "src": "321:100:29", + "scope": 9508, + "src": "321:100:43", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 6728, + "id": 9476, "nodeType": "Block", - "src": "552:38:29", + "src": "552:38:43", "statements": [ { "expression": { "argumentTypes": null, - "id": 6726, + "id": 9474, "isConstant": false, "isLValue": false, "isPure": false, @@ -301,40 +301,40 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 6720, + "id": 9468, "name": "_role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6715, - "src": "558:5:29", + "referencedDeclaration": 9463, + "src": "558:5:43", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$6697_storage_ptr", + "typeIdentifier": "t_struct$_Role_$9445_storage_ptr", "typeString": "struct Roles.Role storage pointer" } }, - "id": 6723, + "id": 9471, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "bearer", "nodeType": "MemberAccess", - "referencedDeclaration": 6696, - "src": "558:12:29", + "referencedDeclaration": 9444, + "src": "558:12:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 6724, + "id": 9472, "indexExpression": { "argumentTypes": null, - "id": 6722, + "id": 9470, "name": "_addr", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6717, - "src": "571:5:29", + "referencedDeclaration": 9465, + "src": "571:5:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -345,7 +345,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "558:19:29", + "src": "558:19:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -356,14 +356,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 6725, + "id": 9473, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "580:5:29", + "src": "580:5:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -371,20 +371,20 @@ }, "value": "false" }, - "src": "558:27:29", + "src": "558:27:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 6727, + "id": 9475, "nodeType": "ExpressionStatement", - "src": "558:27:29" + "src": "558:27:43" } ] }, "documentation": "@dev remove an address' access to this role", - "id": 6729, + "id": 9477, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -392,31 +392,31 @@ "name": "remove", "nodeType": "FunctionDefinition", "parameters": { - "id": 6718, + "id": 9466, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6715, + "id": 9463, "name": "_role", "nodeType": "VariableDeclaration", - "scope": 6729, - "src": "502:18:29", + "scope": 9477, + "src": "502:18:43", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$6697_storage_ptr", + "typeIdentifier": "t_struct$_Role_$9445_storage_ptr", "typeString": "struct Roles.Role" }, "typeName": { "contractScope": null, - "id": 6714, + "id": 9462, "name": "Role", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6697, - "src": "502:4:29", + "referencedDeclaration": 9445, + "src": "502:4:43", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$6697_storage_ptr", + "typeIdentifier": "t_struct$_Role_$9445_storage_ptr", "typeString": "struct Roles.Role" } }, @@ -425,11 +425,11 @@ }, { "constant": false, - "id": 6717, + "id": 9465, "name": "_addr", "nodeType": "VariableDeclaration", - "scope": 6729, - "src": "522:13:29", + "scope": 9477, + "src": "522:13:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -437,10 +437,10 @@ "typeString": "address" }, "typeName": { - "id": 6716, + "id": 9464, "name": "address", "nodeType": "ElementaryTypeName", - "src": "522:7:29", + "src": "522:7:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -450,26 +450,26 @@ "visibility": "internal" } ], - "src": "501:35:29" + "src": "501:35:43" }, "payable": false, "returnParameters": { - "id": 6719, + "id": 9467, "nodeType": "ParameterList", "parameters": [], - "src": "552:0:29" + "src": "552:0:43" }, - "scope": 6760, - "src": "486:104:29", + "scope": 9508, + "src": "486:104:43", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 6743, + "id": 9491, "nodeType": "Block", - "src": "740:37:29", + "src": "740:37:43", "statements": [ { "expression": { @@ -480,25 +480,25 @@ "arguments": [ { "argumentTypes": null, - "id": 6738, + "id": 9486, "name": "_role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6731, - "src": "758:5:29", + "referencedDeclaration": 9479, + "src": "758:5:43", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$6697_storage_ptr", + "typeIdentifier": "t_struct$_Role_$9445_storage_ptr", "typeString": "struct Roles.Role storage pointer" } }, { "argumentTypes": null, - "id": 6739, + "id": 9487, "name": "_addr", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6733, - "src": "765:5:29", + "referencedDeclaration": 9481, + "src": "765:5:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -508,7 +508,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Role_$6697_storage_ptr", + "typeIdentifier": "t_struct$_Role_$9445_storage_ptr", "typeString": "struct Roles.Role storage pointer" }, { @@ -516,18 +516,18 @@ "typeString": "address" } ], - "id": 6737, + "id": 9485, "name": "has", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6759, - "src": "754:3:29", + "referencedDeclaration": 9507, + "src": "754:3:43", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$6697_storage_ptr_$_t_address_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$9445_storage_ptr_$_t_address_$returns$_t_bool_$", "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)" } }, - "id": 6740, + "id": 9488, "isConstant": false, "isLValue": false, "isPure": false, @@ -535,7 +535,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "754:17:29", + "src": "754:17:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -549,21 +549,21 @@ "typeString": "bool" } ], - "id": 6736, + "id": 9484, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "746:7:29", + "referencedDeclaration": 10045, + "src": "746:7:43", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 6741, + "id": 9489, "isConstant": false, "isLValue": false, "isPure": false, @@ -571,20 +571,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "746:26:29", + "src": "746:26:43", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6742, + "id": 9490, "nodeType": "ExpressionStatement", - "src": "746:26:29" + "src": "746:26:43" } ] }, "documentation": "@dev check if an address has this role\n// reverts", - "id": 6744, + "id": 9492, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -592,31 +592,31 @@ "name": "check", "nodeType": "FunctionDefinition", "parameters": { - "id": 6734, + "id": 9482, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6731, + "id": 9479, "name": "_role", "nodeType": "VariableDeclaration", - "scope": 6744, - "src": "681:18:29", + "scope": 9492, + "src": "681:18:43", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$6697_storage_ptr", + "typeIdentifier": "t_struct$_Role_$9445_storage_ptr", "typeString": "struct Roles.Role" }, "typeName": { "contractScope": null, - "id": 6730, + "id": 9478, "name": "Role", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6697, - "src": "681:4:29", + "referencedDeclaration": 9445, + "src": "681:4:43", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$6697_storage_ptr", + "typeIdentifier": "t_struct$_Role_$9445_storage_ptr", "typeString": "struct Roles.Role" } }, @@ -625,11 +625,11 @@ }, { "constant": false, - "id": 6733, + "id": 9481, "name": "_addr", "nodeType": "VariableDeclaration", - "scope": 6744, - "src": "701:13:29", + "scope": 9492, + "src": "701:13:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -637,10 +637,10 @@ "typeString": "address" }, "typeName": { - "id": 6732, + "id": 9480, "name": "address", "nodeType": "ElementaryTypeName", - "src": "701:7:29", + "src": "701:7:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -650,26 +650,26 @@ "visibility": "internal" } ], - "src": "680:35:29" + "src": "680:35:43" }, "payable": false, "returnParameters": { - "id": 6735, + "id": 9483, "nodeType": "ParameterList", "parameters": [], - "src": "740:0:29" + "src": "740:0:43" }, - "scope": 6760, - "src": "666:111:29", + "scope": 9508, + "src": "666:111:43", "stateMutability": "view", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 6758, + "id": 9506, "nodeType": "Block", - "src": "946:37:29", + "src": "946:37:43", "statements": [ { "expression": { @@ -678,40 +678,40 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 6753, + "id": 9501, "name": "_role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6746, - "src": "959:5:29", + "referencedDeclaration": 9494, + "src": "959:5:43", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$6697_storage_ptr", + "typeIdentifier": "t_struct$_Role_$9445_storage_ptr", "typeString": "struct Roles.Role storage pointer" } }, - "id": 6754, + "id": 9502, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "bearer", "nodeType": "MemberAccess", - "referencedDeclaration": 6696, - "src": "959:12:29", + "referencedDeclaration": 9444, + "src": "959:12:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 6756, + "id": 9504, "indexExpression": { "argumentTypes": null, - "id": 6755, + "id": 9503, "name": "_addr", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6748, - "src": "972:5:29", + "referencedDeclaration": 9496, + "src": "972:5:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -722,21 +722,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "959:19:29", + "src": "959:19:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 6752, - "id": 6757, + "functionReturnParameters": 9500, + "id": 9505, "nodeType": "Return", - "src": "952:26:29" + "src": "952:26:43" } ] }, "documentation": "@dev check if an address has this role\n@return bool", - "id": 6759, + "id": 9507, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -744,31 +744,31 @@ "name": "has", "nodeType": "FunctionDefinition", "parameters": { - "id": 6749, + "id": 9497, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6746, + "id": 9494, "name": "_role", "nodeType": "VariableDeclaration", - "scope": 6759, - "src": "868:18:29", + "scope": 9507, + "src": "868:18:43", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$6697_storage_ptr", + "typeIdentifier": "t_struct$_Role_$9445_storage_ptr", "typeString": "struct Roles.Role" }, "typeName": { "contractScope": null, - "id": 6745, + "id": 9493, "name": "Role", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6697, - "src": "868:4:29", + "referencedDeclaration": 9445, + "src": "868:4:43", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$6697_storage_ptr", + "typeIdentifier": "t_struct$_Role_$9445_storage_ptr", "typeString": "struct Roles.Role" } }, @@ -777,11 +777,11 @@ }, { "constant": false, - "id": 6748, + "id": 9496, "name": "_addr", "nodeType": "VariableDeclaration", - "scope": 6759, - "src": "888:13:29", + "scope": 9507, + "src": "888:13:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -789,10 +789,10 @@ "typeString": "address" }, "typeName": { - "id": 6747, + "id": 9495, "name": "address", "nodeType": "ElementaryTypeName", - "src": "888:7:29", + "src": "888:7:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -802,20 +802,20 @@ "visibility": "internal" } ], - "src": "867:35:29" + "src": "867:35:43" }, "payable": false, "returnParameters": { - "id": 6752, + "id": 9500, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6751, + "id": 9499, "name": "", "nodeType": "VariableDeclaration", - "scope": 6759, - "src": "938:4:29", + "scope": 9507, + "src": "938:4:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -823,10 +823,10 @@ "typeString": "bool" }, "typeName": { - "id": 6750, + "id": 9498, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "938:4:29", + "src": "938:4:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -836,33 +836,33 @@ "visibility": "internal" } ], - "src": "937:6:29" + "src": "937:6:43" }, - "scope": 6760, - "src": "855:128:29", + "scope": 9508, + "src": "855:128:43", "stateMutability": "view", "superFunction": null, "visibility": "internal" } ], - "scope": 6761, - "src": "186:799:29" + "scope": 9509, + "src": "186:799:43" } ], - "src": "0:986:29" + "src": "0:986:43" }, "legacyAST": { "absolutePath": "openzeppelin-solidity/contracts/access/rbac/Roles.sol", "exportedSymbols": { "Roles": [ - 6760 + 9508 ] }, - "id": 6761, + "id": 9509, "nodeType": "SourceUnit", "nodes": [ { - "id": 6692, + "id": 9440, "literals": [ "solidity", "^", @@ -870,7 +870,7 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:29" + "src": "0:24:43" }, { "baseContracts": [], @@ -878,24 +878,24 @@ "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.", "fullyImplemented": true, - "id": 6760, + "id": 9508, "linearizedBaseContracts": [ - 6760 + 9508 ], "name": "Roles", "nodeType": "ContractDefinition", "nodes": [ { "canonicalName": "Roles.Role", - "id": 6697, + "id": 9445, "members": [ { "constant": false, - "id": 6696, + "id": 9444, "name": "bearer", "nodeType": "VariableDeclaration", - "scope": 6697, - "src": "222:32:29", + "scope": 9445, + "src": "222:32:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -903,28 +903,28 @@ "typeString": "mapping(address => bool)" }, "typeName": { - "id": 6695, + "id": 9443, "keyType": { - "id": 6693, + "id": 9441, "name": "address", "nodeType": "ElementaryTypeName", - "src": "231:7:29", + "src": "231:7:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "222:25:29", + "src": "222:25:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { - "id": 6694, + "id": 9442, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "242:4:29", + "src": "242:4:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -937,20 +937,20 @@ ], "name": "Role", "nodeType": "StructDefinition", - "scope": 6760, - "src": "204:55:29", + "scope": 9508, + "src": "204:55:43", "visibility": "public" }, { "body": { - "id": 6712, + "id": 9460, "nodeType": "Block", - "src": "384:37:29", + "src": "384:37:43", "statements": [ { "expression": { "argumentTypes": null, - "id": 6710, + "id": 9458, "isConstant": false, "isLValue": false, "isPure": false, @@ -961,40 +961,40 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 6704, + "id": 9452, "name": "_role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6699, - "src": "390:5:29", + "referencedDeclaration": 9447, + "src": "390:5:43", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$6697_storage_ptr", + "typeIdentifier": "t_struct$_Role_$9445_storage_ptr", "typeString": "struct Roles.Role storage pointer" } }, - "id": 6707, + "id": 9455, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "bearer", "nodeType": "MemberAccess", - "referencedDeclaration": 6696, - "src": "390:12:29", + "referencedDeclaration": 9444, + "src": "390:12:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 6708, + "id": 9456, "indexExpression": { "argumentTypes": null, - "id": 6706, + "id": 9454, "name": "_addr", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6701, - "src": "403:5:29", + "referencedDeclaration": 9449, + "src": "403:5:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1005,7 +1005,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "390:19:29", + "src": "390:19:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1016,14 +1016,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 6709, + "id": 9457, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "412:4:29", + "src": "412:4:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -1031,20 +1031,20 @@ }, "value": "true" }, - "src": "390:26:29", + "src": "390:26:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 6711, + "id": 9459, "nodeType": "ExpressionStatement", - "src": "390:26:29" + "src": "390:26:43" } ] }, "documentation": "@dev give an address access to this role", - "id": 6713, + "id": 9461, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1052,31 +1052,31 @@ "name": "add", "nodeType": "FunctionDefinition", "parameters": { - "id": 6702, + "id": 9450, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6699, + "id": 9447, "name": "_role", "nodeType": "VariableDeclaration", - "scope": 6713, - "src": "334:18:29", + "scope": 9461, + "src": "334:18:43", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$6697_storage_ptr", + "typeIdentifier": "t_struct$_Role_$9445_storage_ptr", "typeString": "struct Roles.Role" }, "typeName": { "contractScope": null, - "id": 6698, + "id": 9446, "name": "Role", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6697, - "src": "334:4:29", + "referencedDeclaration": 9445, + "src": "334:4:43", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$6697_storage_ptr", + "typeIdentifier": "t_struct$_Role_$9445_storage_ptr", "typeString": "struct Roles.Role" } }, @@ -1085,11 +1085,11 @@ }, { "constant": false, - "id": 6701, + "id": 9449, "name": "_addr", "nodeType": "VariableDeclaration", - "scope": 6713, - "src": "354:13:29", + "scope": 9461, + "src": "354:13:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1097,10 +1097,10 @@ "typeString": "address" }, "typeName": { - "id": 6700, + "id": 9448, "name": "address", "nodeType": "ElementaryTypeName", - "src": "354:7:29", + "src": "354:7:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1110,31 +1110,31 @@ "visibility": "internal" } ], - "src": "333:35:29" + "src": "333:35:43" }, "payable": false, "returnParameters": { - "id": 6703, + "id": 9451, "nodeType": "ParameterList", "parameters": [], - "src": "384:0:29" + "src": "384:0:43" }, - "scope": 6760, - "src": "321:100:29", + "scope": 9508, + "src": "321:100:43", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 6728, + "id": 9476, "nodeType": "Block", - "src": "552:38:29", + "src": "552:38:43", "statements": [ { "expression": { "argumentTypes": null, - "id": 6726, + "id": 9474, "isConstant": false, "isLValue": false, "isPure": false, @@ -1145,40 +1145,40 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 6720, + "id": 9468, "name": "_role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6715, - "src": "558:5:29", + "referencedDeclaration": 9463, + "src": "558:5:43", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$6697_storage_ptr", + "typeIdentifier": "t_struct$_Role_$9445_storage_ptr", "typeString": "struct Roles.Role storage pointer" } }, - "id": 6723, + "id": 9471, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "bearer", "nodeType": "MemberAccess", - "referencedDeclaration": 6696, - "src": "558:12:29", + "referencedDeclaration": 9444, + "src": "558:12:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 6724, + "id": 9472, "indexExpression": { "argumentTypes": null, - "id": 6722, + "id": 9470, "name": "_addr", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6717, - "src": "571:5:29", + "referencedDeclaration": 9465, + "src": "571:5:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1189,7 +1189,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "558:19:29", + "src": "558:19:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1200,14 +1200,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 6725, + "id": 9473, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "580:5:29", + "src": "580:5:43", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -1215,20 +1215,20 @@ }, "value": "false" }, - "src": "558:27:29", + "src": "558:27:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 6727, + "id": 9475, "nodeType": "ExpressionStatement", - "src": "558:27:29" + "src": "558:27:43" } ] }, "documentation": "@dev remove an address' access to this role", - "id": 6729, + "id": 9477, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1236,31 +1236,31 @@ "name": "remove", "nodeType": "FunctionDefinition", "parameters": { - "id": 6718, + "id": 9466, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6715, + "id": 9463, "name": "_role", "nodeType": "VariableDeclaration", - "scope": 6729, - "src": "502:18:29", + "scope": 9477, + "src": "502:18:43", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$6697_storage_ptr", + "typeIdentifier": "t_struct$_Role_$9445_storage_ptr", "typeString": "struct Roles.Role" }, "typeName": { "contractScope": null, - "id": 6714, + "id": 9462, "name": "Role", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6697, - "src": "502:4:29", + "referencedDeclaration": 9445, + "src": "502:4:43", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$6697_storage_ptr", + "typeIdentifier": "t_struct$_Role_$9445_storage_ptr", "typeString": "struct Roles.Role" } }, @@ -1269,11 +1269,11 @@ }, { "constant": false, - "id": 6717, + "id": 9465, "name": "_addr", "nodeType": "VariableDeclaration", - "scope": 6729, - "src": "522:13:29", + "scope": 9477, + "src": "522:13:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1281,10 +1281,10 @@ "typeString": "address" }, "typeName": { - "id": 6716, + "id": 9464, "name": "address", "nodeType": "ElementaryTypeName", - "src": "522:7:29", + "src": "522:7:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1294,26 +1294,26 @@ "visibility": "internal" } ], - "src": "501:35:29" + "src": "501:35:43" }, "payable": false, "returnParameters": { - "id": 6719, + "id": 9467, "nodeType": "ParameterList", "parameters": [], - "src": "552:0:29" + "src": "552:0:43" }, - "scope": 6760, - "src": "486:104:29", + "scope": 9508, + "src": "486:104:43", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 6743, + "id": 9491, "nodeType": "Block", - "src": "740:37:29", + "src": "740:37:43", "statements": [ { "expression": { @@ -1324,25 +1324,25 @@ "arguments": [ { "argumentTypes": null, - "id": 6738, + "id": 9486, "name": "_role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6731, - "src": "758:5:29", + "referencedDeclaration": 9479, + "src": "758:5:43", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$6697_storage_ptr", + "typeIdentifier": "t_struct$_Role_$9445_storage_ptr", "typeString": "struct Roles.Role storage pointer" } }, { "argumentTypes": null, - "id": 6739, + "id": 9487, "name": "_addr", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6733, - "src": "765:5:29", + "referencedDeclaration": 9481, + "src": "765:5:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1352,7 +1352,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Role_$6697_storage_ptr", + "typeIdentifier": "t_struct$_Role_$9445_storage_ptr", "typeString": "struct Roles.Role storage pointer" }, { @@ -1360,18 +1360,18 @@ "typeString": "address" } ], - "id": 6737, + "id": 9485, "name": "has", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6759, - "src": "754:3:29", + "referencedDeclaration": 9507, + "src": "754:3:43", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$6697_storage_ptr_$_t_address_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$9445_storage_ptr_$_t_address_$returns$_t_bool_$", "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)" } }, - "id": 6740, + "id": 9488, "isConstant": false, "isLValue": false, "isPure": false, @@ -1379,7 +1379,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "754:17:29", + "src": "754:17:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1393,21 +1393,21 @@ "typeString": "bool" } ], - "id": 6736, + "id": 9484, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "746:7:29", + "referencedDeclaration": 10045, + "src": "746:7:43", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 6741, + "id": 9489, "isConstant": false, "isLValue": false, "isPure": false, @@ -1415,20 +1415,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "746:26:29", + "src": "746:26:43", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6742, + "id": 9490, "nodeType": "ExpressionStatement", - "src": "746:26:29" + "src": "746:26:43" } ] }, "documentation": "@dev check if an address has this role\n// reverts", - "id": 6744, + "id": 9492, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1436,31 +1436,31 @@ "name": "check", "nodeType": "FunctionDefinition", "parameters": { - "id": 6734, + "id": 9482, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6731, + "id": 9479, "name": "_role", "nodeType": "VariableDeclaration", - "scope": 6744, - "src": "681:18:29", + "scope": 9492, + "src": "681:18:43", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$6697_storage_ptr", + "typeIdentifier": "t_struct$_Role_$9445_storage_ptr", "typeString": "struct Roles.Role" }, "typeName": { "contractScope": null, - "id": 6730, + "id": 9478, "name": "Role", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6697, - "src": "681:4:29", + "referencedDeclaration": 9445, + "src": "681:4:43", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$6697_storage_ptr", + "typeIdentifier": "t_struct$_Role_$9445_storage_ptr", "typeString": "struct Roles.Role" } }, @@ -1469,11 +1469,11 @@ }, { "constant": false, - "id": 6733, + "id": 9481, "name": "_addr", "nodeType": "VariableDeclaration", - "scope": 6744, - "src": "701:13:29", + "scope": 9492, + "src": "701:13:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1481,10 +1481,10 @@ "typeString": "address" }, "typeName": { - "id": 6732, + "id": 9480, "name": "address", "nodeType": "ElementaryTypeName", - "src": "701:7:29", + "src": "701:7:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1494,26 +1494,26 @@ "visibility": "internal" } ], - "src": "680:35:29" + "src": "680:35:43" }, "payable": false, "returnParameters": { - "id": 6735, + "id": 9483, "nodeType": "ParameterList", "parameters": [], - "src": "740:0:29" + "src": "740:0:43" }, - "scope": 6760, - "src": "666:111:29", + "scope": 9508, + "src": "666:111:43", "stateMutability": "view", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 6758, + "id": 9506, "nodeType": "Block", - "src": "946:37:29", + "src": "946:37:43", "statements": [ { "expression": { @@ -1522,40 +1522,40 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 6753, + "id": 9501, "name": "_role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6746, - "src": "959:5:29", + "referencedDeclaration": 9494, + "src": "959:5:43", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$6697_storage_ptr", + "typeIdentifier": "t_struct$_Role_$9445_storage_ptr", "typeString": "struct Roles.Role storage pointer" } }, - "id": 6754, + "id": 9502, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "bearer", "nodeType": "MemberAccess", - "referencedDeclaration": 6696, - "src": "959:12:29", + "referencedDeclaration": 9444, + "src": "959:12:43", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 6756, + "id": 9504, "indexExpression": { "argumentTypes": null, - "id": 6755, + "id": 9503, "name": "_addr", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6748, - "src": "972:5:29", + "referencedDeclaration": 9496, + "src": "972:5:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1566,21 +1566,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "959:19:29", + "src": "959:19:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 6752, - "id": 6757, + "functionReturnParameters": 9500, + "id": 9505, "nodeType": "Return", - "src": "952:26:29" + "src": "952:26:43" } ] }, "documentation": "@dev check if an address has this role\n@return bool", - "id": 6759, + "id": 9507, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1588,31 +1588,31 @@ "name": "has", "nodeType": "FunctionDefinition", "parameters": { - "id": 6749, + "id": 9497, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6746, + "id": 9494, "name": "_role", "nodeType": "VariableDeclaration", - "scope": 6759, - "src": "868:18:29", + "scope": 9507, + "src": "868:18:43", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$6697_storage_ptr", + "typeIdentifier": "t_struct$_Role_$9445_storage_ptr", "typeString": "struct Roles.Role" }, "typeName": { "contractScope": null, - "id": 6745, + "id": 9493, "name": "Role", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6697, - "src": "868:4:29", + "referencedDeclaration": 9445, + "src": "868:4:43", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$6697_storage_ptr", + "typeIdentifier": "t_struct$_Role_$9445_storage_ptr", "typeString": "struct Roles.Role" } }, @@ -1621,11 +1621,11 @@ }, { "constant": false, - "id": 6748, + "id": 9496, "name": "_addr", "nodeType": "VariableDeclaration", - "scope": 6759, - "src": "888:13:29", + "scope": 9507, + "src": "888:13:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1633,10 +1633,10 @@ "typeString": "address" }, "typeName": { - "id": 6747, + "id": 9495, "name": "address", "nodeType": "ElementaryTypeName", - "src": "888:7:29", + "src": "888:7:43", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1646,20 +1646,20 @@ "visibility": "internal" } ], - "src": "867:35:29" + "src": "867:35:43" }, "payable": false, "returnParameters": { - "id": 6752, + "id": 9500, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6751, + "id": 9499, "name": "", "nodeType": "VariableDeclaration", - "scope": 6759, - "src": "938:4:29", + "scope": 9507, + "src": "938:4:43", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1667,10 +1667,10 @@ "typeString": "bool" }, "typeName": { - "id": 6750, + "id": 9498, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "938:4:29", + "src": "938:4:43", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1680,20 +1680,20 @@ "visibility": "internal" } ], - "src": "937:6:29" + "src": "937:6:43" }, - "scope": 6760, - "src": "855:128:29", + "scope": 9508, + "src": "855:128:43", "stateMutability": "view", "superFunction": null, "visibility": "internal" } ], - "scope": 6761, - "src": "186:799:29" + "scope": 9509, + "src": "186:799:43" } ], - "src": "0:986:29" + "src": "0:986:43" }, "compiler": { "name": "solc", @@ -1701,5 +1701,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-02T11:52:56.787Z" + "updatedAt": "2018-10-22T07:56:01.694Z" } \ No newline at end of file diff --git a/build/contracts/SafeERC20.json b/build/contracts/SafeERC20.json index f1fb22c4..c069c754 100644 --- a/build/contracts/SafeERC20.json +++ b/build/contracts/SafeERC20.json @@ -3,22 +3,22 @@ "abi": [], "bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820bb7049b3ccae63dd84bcf2c3e191f963397daa8ef155efd786dd7c31ab5cab3c0029", "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820bb7049b3ccae63dd84bcf2c3e191f963397daa8ef155efd786dd7c31ab5cab3c0029", - "sourceMap": "346:511:35:-;;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:35:-;;;;;;;;", + "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", "sourcePath": "openzeppelin-solidity/contracts/token/ERC20/SafeERC20.sol", "ast": { "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/SafeERC20.sol", "exportedSymbols": { "SafeERC20": [ - 7111 + 9859 ] }, - "id": 7112, + "id": 9860, "nodeType": "SourceUnit", "nodes": [ { - "id": 7051, + "id": 9799, "literals": [ "solidity", "^", @@ -26,27 +26,27 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:35" + "src": "0:24:49" }, { "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Basic.sol", "file": "./ERC20Basic.sol", - "id": 7052, + "id": 9800, "nodeType": "ImportDirective", - "scope": 7112, - "sourceUnit": 7050, - "src": "26:26:35", + "scope": 9860, + "sourceUnit": 9798, + "src": "26:26:49", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", "file": "./ERC20.sol", - "id": 7053, + "id": 9801, "nodeType": "ImportDirective", - "scope": 7112, - "sourceUnit": 7018, - "src": "53:21:35", + "scope": 9860, + "sourceUnit": 9766, + "src": "53:21:49", "symbolAliases": [], "unitAlias": "" }, @@ -56,18 +56,18 @@ "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": 7111, + "id": 9859, "linearizedBaseContracts": [ - 7111 + 9859 ], "name": "SafeERC20", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 7070, + "id": 9818, "nodeType": "Block", - "src": "469:48:35", + "src": "469:48:49", "statements": [ { "expression": { @@ -78,12 +78,12 @@ "arguments": [ { "argumentTypes": null, - "id": 7065, + "id": 9813, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7057, - "src": "499:3:35", + "referencedDeclaration": 9805, + "src": "499:3:49", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -91,12 +91,12 @@ }, { "argumentTypes": null, - "id": 7066, + "id": 9814, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7059, - "src": "504:6:35", + "referencedDeclaration": 9807, + "src": "504:6:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -116,32 +116,32 @@ ], "expression": { "argumentTypes": null, - "id": 7063, + "id": 9811, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7055, - "src": "483:6:35", + "referencedDeclaration": 9803, + "src": "483:6:49", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Basic_$7049", + "typeIdentifier": "t_contract$_ERC20Basic_$9797", "typeString": "contract ERC20Basic" } }, - "id": 7064, + "id": 9812, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 7040, - "src": "483:15:35", + "referencedDeclaration": 9788, + "src": "483:15:49", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 7067, + "id": 9815, "isConstant": false, "isLValue": false, "isPure": false, @@ -149,7 +149,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "483:28:35", + "src": "483:28:49", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -163,21 +163,21 @@ "typeString": "bool" } ], - "id": 7062, + "id": 9810, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "475:7:35", + "referencedDeclaration": 10045, + "src": "475:7:49", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 7068, + "id": 9816, "isConstant": false, "isLValue": false, "isPure": false, @@ -185,20 +185,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "475:37:35", + "src": "475:37:49", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 7069, + "id": 9817, "nodeType": "ExpressionStatement", - "src": "475:37:35" + "src": "475:37:49" } ] }, "documentation": null, - "id": 7071, + "id": 9819, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -206,31 +206,31 @@ "name": "safeTransfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 7060, + "id": 9808, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7055, + "id": 9803, "name": "_token", "nodeType": "VariableDeclaration", - "scope": 7071, - "src": "395:17:35", + "scope": 9819, + "src": "395:17:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Basic_$7049", + "typeIdentifier": "t_contract$_ERC20Basic_$9797", "typeString": "contract ERC20Basic" }, "typeName": { "contractScope": null, - "id": 7054, + "id": 9802, "name": "ERC20Basic", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7049, - "src": "395:10:35", + "referencedDeclaration": 9797, + "src": "395:10:49", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Basic_$7049", + "typeIdentifier": "t_contract$_ERC20Basic_$9797", "typeString": "contract ERC20Basic" } }, @@ -239,11 +239,11 @@ }, { "constant": false, - "id": 7057, + "id": 9805, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 7071, - "src": "418:11:35", + "scope": 9819, + "src": "418:11:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -251,10 +251,10 @@ "typeString": "address" }, "typeName": { - "id": 7056, + "id": 9804, "name": "address", "nodeType": "ElementaryTypeName", - "src": "418:7:35", + "src": "418:7:49", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -265,11 +265,11 @@ }, { "constant": false, - "id": 7059, + "id": 9807, "name": "_value", "nodeType": "VariableDeclaration", - "scope": 7071, - "src": "435:14:35", + "scope": 9819, + "src": "435:14:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -277,10 +277,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7058, + "id": 9806, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "435:7:35", + "src": "435:7:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -290,26 +290,26 @@ "visibility": "internal" } ], - "src": "389:64:35" + "src": "389:64:49" }, "payable": false, "returnParameters": { - "id": 7061, + "id": 9809, "nodeType": "ParameterList", "parameters": [], - "src": "469:0:35" + "src": "469:0:49" }, - "scope": 7111, - "src": "368:149:35", + "scope": 9859, + "src": "368:149:49", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 7091, + "id": 9839, "nodeType": "Block", - "src": "640:59:35", + "src": "640:59:49", "statements": [ { "expression": { @@ -320,12 +320,12 @@ "arguments": [ { "argumentTypes": null, - "id": 7085, + "id": 9833, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7075, - "src": "674:5:35", + "referencedDeclaration": 9823, + "src": "674:5:49", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -333,12 +333,12 @@ }, { "argumentTypes": null, - "id": 7086, + "id": 9834, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7077, - "src": "681:3:35", + "referencedDeclaration": 9825, + "src": "681:3:49", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -346,12 +346,12 @@ }, { "argumentTypes": null, - "id": 7087, + "id": 9835, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7079, - "src": "686:6:35", + "referencedDeclaration": 9827, + "src": "686:6:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -375,32 +375,32 @@ ], "expression": { "argumentTypes": null, - "id": 7083, + "id": 9831, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7073, - "src": "654:6:35", + "referencedDeclaration": 9821, + "src": "654:6:49", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, - "id": 7084, + "id": 9832, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transferFrom", "nodeType": "MemberAccess", - "referencedDeclaration": 6999, - "src": "654:19:35", + "referencedDeclaration": 9747, + "src": "654:19:49", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,address,uint256) external returns (bool)" } }, - "id": 7088, + "id": 9836, "isConstant": false, "isLValue": false, "isPure": false, @@ -408,7 +408,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "654:39:35", + "src": "654:39:49", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -422,21 +422,21 @@ "typeString": "bool" } ], - "id": 7082, + "id": 9830, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "646:7:35", + "referencedDeclaration": 10045, + "src": "646:7:49", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 7089, + "id": 9837, "isConstant": false, "isLValue": false, "isPure": false, @@ -444,20 +444,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "646:48:35", + "src": "646:48:49", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 7090, + "id": 9838, "nodeType": "ExpressionStatement", - "src": "646:48:35" + "src": "646:48:49" } ] }, "documentation": null, - "id": 7092, + "id": 9840, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -465,31 +465,31 @@ "name": "safeTransferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 7080, + "id": 9828, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7073, + "id": 9821, "name": "_token", "nodeType": "VariableDeclaration", - "scope": 7092, - "src": "552:12:35", + "scope": 9840, + "src": "552:12:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" }, "typeName": { "contractScope": null, - "id": 7072, + "id": 9820, "name": "ERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7017, - "src": "552:5:35", + "referencedDeclaration": 9765, + "src": "552:5:49", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, @@ -498,11 +498,11 @@ }, { "constant": false, - "id": 7075, + "id": 9823, "name": "_from", "nodeType": "VariableDeclaration", - "scope": 7092, - "src": "570:13:35", + "scope": 9840, + "src": "570:13:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -510,10 +510,10 @@ "typeString": "address" }, "typeName": { - "id": 7074, + "id": 9822, "name": "address", "nodeType": "ElementaryTypeName", - "src": "570:7:35", + "src": "570:7:49", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -524,11 +524,11 @@ }, { "constant": false, - "id": 7077, + "id": 9825, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 7092, - "src": "589:11:35", + "scope": 9840, + "src": "589:11:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -536,10 +536,10 @@ "typeString": "address" }, "typeName": { - "id": 7076, + "id": 9824, "name": "address", "nodeType": "ElementaryTypeName", - "src": "589:7:35", + "src": "589:7:49", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -550,11 +550,11 @@ }, { "constant": false, - "id": 7079, + "id": 9827, "name": "_value", "nodeType": "VariableDeclaration", - "scope": 7092, - "src": "606:14:35", + "scope": 9840, + "src": "606:14:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -562,10 +562,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7078, + "id": 9826, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "606:7:35", + "src": "606:7:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -575,26 +575,26 @@ "visibility": "internal" } ], - "src": "546:78:35" + "src": "546:78:49" }, "payable": false, "returnParameters": { - "id": 7081, + "id": 9829, "nodeType": "ParameterList", "parameters": [], - "src": "640:0:35" + "src": "640:0:49" }, - "scope": 7111, - "src": "521:178:35", + "scope": 9859, + "src": "521:178:49", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 7109, + "id": 9857, "nodeType": "Block", - "src": "803:52:35", + "src": "803:52:49", "statements": [ { "expression": { @@ -605,12 +605,12 @@ "arguments": [ { "argumentTypes": null, - "id": 7104, + "id": 9852, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7096, - "src": "832:8:35", + "referencedDeclaration": 9844, + "src": "832:8:49", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -618,12 +618,12 @@ }, { "argumentTypes": null, - "id": 7105, + "id": 9853, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7098, - "src": "842:6:35", + "referencedDeclaration": 9846, + "src": "842:6:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -643,32 +643,32 @@ ], "expression": { "argumentTypes": null, - "id": 7102, + "id": 9850, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7094, - "src": "817:6:35", + "referencedDeclaration": 9842, + "src": "817:6:49", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, - "id": 7103, + "id": 9851, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "approve", "nodeType": "MemberAccess", - "referencedDeclaration": 7008, - "src": "817:14:35", + "referencedDeclaration": 9756, + "src": "817:14:49", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 7106, + "id": 9854, "isConstant": false, "isLValue": false, "isPure": false, @@ -676,7 +676,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "817:32:35", + "src": "817:32:49", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -690,21 +690,21 @@ "typeString": "bool" } ], - "id": 7101, + "id": 9849, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "809:7:35", + "referencedDeclaration": 10045, + "src": "809:7:49", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 7107, + "id": 9855, "isConstant": false, "isLValue": false, "isPure": false, @@ -712,20 +712,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "809:41:35", + "src": "809:41:49", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 7108, + "id": 9856, "nodeType": "ExpressionStatement", - "src": "809:41:35" + "src": "809:41:49" } ] }, "documentation": null, - "id": 7110, + "id": 9858, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -733,31 +733,31 @@ "name": "safeApprove", "nodeType": "FunctionDefinition", "parameters": { - "id": 7099, + "id": 9847, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7094, + "id": 9842, "name": "_token", "nodeType": "VariableDeclaration", - "scope": 7110, - "src": "729:12:35", + "scope": 9858, + "src": "729:12:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" }, "typeName": { "contractScope": null, - "id": 7093, + "id": 9841, "name": "ERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7017, - "src": "729:5:35", + "referencedDeclaration": 9765, + "src": "729:5:49", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, @@ -766,11 +766,11 @@ }, { "constant": false, - "id": 7096, + "id": 9844, "name": "_spender", "nodeType": "VariableDeclaration", - "scope": 7110, - "src": "747:16:35", + "scope": 9858, + "src": "747:16:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -778,10 +778,10 @@ "typeString": "address" }, "typeName": { - "id": 7095, + "id": 9843, "name": "address", "nodeType": "ElementaryTypeName", - "src": "747:7:35", + "src": "747:7:49", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -792,11 +792,11 @@ }, { "constant": false, - "id": 7098, + "id": 9846, "name": "_value", "nodeType": "VariableDeclaration", - "scope": 7110, - "src": "769:14:35", + "scope": 9858, + "src": "769:14:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -804,10 +804,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7097, + "id": 9845, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "769:7:35", + "src": "769:7:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -817,40 +817,40 @@ "visibility": "internal" } ], - "src": "723:64:35" + "src": "723:64:49" }, "payable": false, "returnParameters": { - "id": 7100, + "id": 9848, "nodeType": "ParameterList", "parameters": [], - "src": "803:0:35" + "src": "803:0:49" }, - "scope": 7111, - "src": "703:152:35", + "scope": 9859, + "src": "703:152:49", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" } ], - "scope": 7112, - "src": "346:511:35" + "scope": 9860, + "src": "346:511:49" } ], - "src": "0:858:35" + "src": "0:858:49" }, "legacyAST": { "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/SafeERC20.sol", "exportedSymbols": { "SafeERC20": [ - 7111 + 9859 ] }, - "id": 7112, + "id": 9860, "nodeType": "SourceUnit", "nodes": [ { - "id": 7051, + "id": 9799, "literals": [ "solidity", "^", @@ -858,27 +858,27 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:35" + "src": "0:24:49" }, { "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Basic.sol", "file": "./ERC20Basic.sol", - "id": 7052, + "id": 9800, "nodeType": "ImportDirective", - "scope": 7112, - "sourceUnit": 7050, - "src": "26:26:35", + "scope": 9860, + "sourceUnit": 9798, + "src": "26:26:49", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", "file": "./ERC20.sol", - "id": 7053, + "id": 9801, "nodeType": "ImportDirective", - "scope": 7112, - "sourceUnit": 7018, - "src": "53:21:35", + "scope": 9860, + "sourceUnit": 9766, + "src": "53:21:49", "symbolAliases": [], "unitAlias": "" }, @@ -888,18 +888,18 @@ "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": 7111, + "id": 9859, "linearizedBaseContracts": [ - 7111 + 9859 ], "name": "SafeERC20", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 7070, + "id": 9818, "nodeType": "Block", - "src": "469:48:35", + "src": "469:48:49", "statements": [ { "expression": { @@ -910,12 +910,12 @@ "arguments": [ { "argumentTypes": null, - "id": 7065, + "id": 9813, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7057, - "src": "499:3:35", + "referencedDeclaration": 9805, + "src": "499:3:49", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -923,12 +923,12 @@ }, { "argumentTypes": null, - "id": 7066, + "id": 9814, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7059, - "src": "504:6:35", + "referencedDeclaration": 9807, + "src": "504:6:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -948,32 +948,32 @@ ], "expression": { "argumentTypes": null, - "id": 7063, + "id": 9811, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7055, - "src": "483:6:35", + "referencedDeclaration": 9803, + "src": "483:6:49", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Basic_$7049", + "typeIdentifier": "t_contract$_ERC20Basic_$9797", "typeString": "contract ERC20Basic" } }, - "id": 7064, + "id": 9812, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 7040, - "src": "483:15:35", + "referencedDeclaration": 9788, + "src": "483:15:49", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 7067, + "id": 9815, "isConstant": false, "isLValue": false, "isPure": false, @@ -981,7 +981,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "483:28:35", + "src": "483:28:49", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -995,21 +995,21 @@ "typeString": "bool" } ], - "id": 7062, + "id": 9810, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "475:7:35", + "referencedDeclaration": 10045, + "src": "475:7:49", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 7068, + "id": 9816, "isConstant": false, "isLValue": false, "isPure": false, @@ -1017,20 +1017,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "475:37:35", + "src": "475:37:49", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 7069, + "id": 9817, "nodeType": "ExpressionStatement", - "src": "475:37:35" + "src": "475:37:49" } ] }, "documentation": null, - "id": 7071, + "id": 9819, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1038,31 +1038,31 @@ "name": "safeTransfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 7060, + "id": 9808, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7055, + "id": 9803, "name": "_token", "nodeType": "VariableDeclaration", - "scope": 7071, - "src": "395:17:35", + "scope": 9819, + "src": "395:17:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Basic_$7049", + "typeIdentifier": "t_contract$_ERC20Basic_$9797", "typeString": "contract ERC20Basic" }, "typeName": { "contractScope": null, - "id": 7054, + "id": 9802, "name": "ERC20Basic", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7049, - "src": "395:10:35", + "referencedDeclaration": 9797, + "src": "395:10:49", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Basic_$7049", + "typeIdentifier": "t_contract$_ERC20Basic_$9797", "typeString": "contract ERC20Basic" } }, @@ -1071,11 +1071,11 @@ }, { "constant": false, - "id": 7057, + "id": 9805, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 7071, - "src": "418:11:35", + "scope": 9819, + "src": "418:11:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1083,10 +1083,10 @@ "typeString": "address" }, "typeName": { - "id": 7056, + "id": 9804, "name": "address", "nodeType": "ElementaryTypeName", - "src": "418:7:35", + "src": "418:7:49", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1097,11 +1097,11 @@ }, { "constant": false, - "id": 7059, + "id": 9807, "name": "_value", "nodeType": "VariableDeclaration", - "scope": 7071, - "src": "435:14:35", + "scope": 9819, + "src": "435:14:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1109,10 +1109,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7058, + "id": 9806, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "435:7:35", + "src": "435:7:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1122,26 +1122,26 @@ "visibility": "internal" } ], - "src": "389:64:35" + "src": "389:64:49" }, "payable": false, "returnParameters": { - "id": 7061, + "id": 9809, "nodeType": "ParameterList", "parameters": [], - "src": "469:0:35" + "src": "469:0:49" }, - "scope": 7111, - "src": "368:149:35", + "scope": 9859, + "src": "368:149:49", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 7091, + "id": 9839, "nodeType": "Block", - "src": "640:59:35", + "src": "640:59:49", "statements": [ { "expression": { @@ -1152,12 +1152,12 @@ "arguments": [ { "argumentTypes": null, - "id": 7085, + "id": 9833, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7075, - "src": "674:5:35", + "referencedDeclaration": 9823, + "src": "674:5:49", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1165,12 +1165,12 @@ }, { "argumentTypes": null, - "id": 7086, + "id": 9834, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7077, - "src": "681:3:35", + "referencedDeclaration": 9825, + "src": "681:3:49", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1178,12 +1178,12 @@ }, { "argumentTypes": null, - "id": 7087, + "id": 9835, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7079, - "src": "686:6:35", + "referencedDeclaration": 9827, + "src": "686:6:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1207,32 +1207,32 @@ ], "expression": { "argumentTypes": null, - "id": 7083, + "id": 9831, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7073, - "src": "654:6:35", + "referencedDeclaration": 9821, + "src": "654:6:49", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, - "id": 7084, + "id": 9832, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transferFrom", "nodeType": "MemberAccess", - "referencedDeclaration": 6999, - "src": "654:19:35", + "referencedDeclaration": 9747, + "src": "654:19:49", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,address,uint256) external returns (bool)" } }, - "id": 7088, + "id": 9836, "isConstant": false, "isLValue": false, "isPure": false, @@ -1240,7 +1240,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "654:39:35", + "src": "654:39:49", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1254,21 +1254,21 @@ "typeString": "bool" } ], - "id": 7082, + "id": 9830, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "646:7:35", + "referencedDeclaration": 10045, + "src": "646:7:49", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 7089, + "id": 9837, "isConstant": false, "isLValue": false, "isPure": false, @@ -1276,20 +1276,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "646:48:35", + "src": "646:48:49", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 7090, + "id": 9838, "nodeType": "ExpressionStatement", - "src": "646:48:35" + "src": "646:48:49" } ] }, "documentation": null, - "id": 7092, + "id": 9840, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1297,31 +1297,31 @@ "name": "safeTransferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 7080, + "id": 9828, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7073, + "id": 9821, "name": "_token", "nodeType": "VariableDeclaration", - "scope": 7092, - "src": "552:12:35", + "scope": 9840, + "src": "552:12:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" }, "typeName": { "contractScope": null, - "id": 7072, + "id": 9820, "name": "ERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7017, - "src": "552:5:35", + "referencedDeclaration": 9765, + "src": "552:5:49", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, @@ -1330,11 +1330,11 @@ }, { "constant": false, - "id": 7075, + "id": 9823, "name": "_from", "nodeType": "VariableDeclaration", - "scope": 7092, - "src": "570:13:35", + "scope": 9840, + "src": "570:13:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1342,10 +1342,10 @@ "typeString": "address" }, "typeName": { - "id": 7074, + "id": 9822, "name": "address", "nodeType": "ElementaryTypeName", - "src": "570:7:35", + "src": "570:7:49", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1356,11 +1356,11 @@ }, { "constant": false, - "id": 7077, + "id": 9825, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 7092, - "src": "589:11:35", + "scope": 9840, + "src": "589:11:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1368,10 +1368,10 @@ "typeString": "address" }, "typeName": { - "id": 7076, + "id": 9824, "name": "address", "nodeType": "ElementaryTypeName", - "src": "589:7:35", + "src": "589:7:49", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1382,11 +1382,11 @@ }, { "constant": false, - "id": 7079, + "id": 9827, "name": "_value", "nodeType": "VariableDeclaration", - "scope": 7092, - "src": "606:14:35", + "scope": 9840, + "src": "606:14:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1394,10 +1394,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7078, + "id": 9826, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "606:7:35", + "src": "606:7:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1407,26 +1407,26 @@ "visibility": "internal" } ], - "src": "546:78:35" + "src": "546:78:49" }, "payable": false, "returnParameters": { - "id": 7081, + "id": 9829, "nodeType": "ParameterList", "parameters": [], - "src": "640:0:35" + "src": "640:0:49" }, - "scope": 7111, - "src": "521:178:35", + "scope": 9859, + "src": "521:178:49", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 7109, + "id": 9857, "nodeType": "Block", - "src": "803:52:35", + "src": "803:52:49", "statements": [ { "expression": { @@ -1437,12 +1437,12 @@ "arguments": [ { "argumentTypes": null, - "id": 7104, + "id": 9852, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7096, - "src": "832:8:35", + "referencedDeclaration": 9844, + "src": "832:8:49", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1450,12 +1450,12 @@ }, { "argumentTypes": null, - "id": 7105, + "id": 9853, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7098, - "src": "842:6:35", + "referencedDeclaration": 9846, + "src": "842:6:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1475,32 +1475,32 @@ ], "expression": { "argumentTypes": null, - "id": 7102, + "id": 9850, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7094, - "src": "817:6:35", + "referencedDeclaration": 9842, + "src": "817:6:49", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, - "id": 7103, + "id": 9851, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "approve", "nodeType": "MemberAccess", - "referencedDeclaration": 7008, - "src": "817:14:35", + "referencedDeclaration": 9756, + "src": "817:14:49", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 7106, + "id": 9854, "isConstant": false, "isLValue": false, "isPure": false, @@ -1508,7 +1508,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "817:32:35", + "src": "817:32:49", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1522,21 +1522,21 @@ "typeString": "bool" } ], - "id": 7101, + "id": 9849, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "809:7:35", + "referencedDeclaration": 10045, + "src": "809:7:49", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 7107, + "id": 9855, "isConstant": false, "isLValue": false, "isPure": false, @@ -1544,20 +1544,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "809:41:35", + "src": "809:41:49", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 7108, + "id": 9856, "nodeType": "ExpressionStatement", - "src": "809:41:35" + "src": "809:41:49" } ] }, "documentation": null, - "id": 7110, + "id": 9858, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1565,31 +1565,31 @@ "name": "safeApprove", "nodeType": "FunctionDefinition", "parameters": { - "id": 7099, + "id": 9847, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7094, + "id": 9842, "name": "_token", "nodeType": "VariableDeclaration", - "scope": 7110, - "src": "729:12:35", + "scope": 9858, + "src": "729:12:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" }, "typeName": { "contractScope": null, - "id": 7093, + "id": 9841, "name": "ERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7017, - "src": "729:5:35", + "referencedDeclaration": 9765, + "src": "729:5:49", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, @@ -1598,11 +1598,11 @@ }, { "constant": false, - "id": 7096, + "id": 9844, "name": "_spender", "nodeType": "VariableDeclaration", - "scope": 7110, - "src": "747:16:35", + "scope": 9858, + "src": "747:16:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1610,10 +1610,10 @@ "typeString": "address" }, "typeName": { - "id": 7095, + "id": 9843, "name": "address", "nodeType": "ElementaryTypeName", - "src": "747:7:35", + "src": "747:7:49", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1624,11 +1624,11 @@ }, { "constant": false, - "id": 7098, + "id": 9846, "name": "_value", "nodeType": "VariableDeclaration", - "scope": 7110, - "src": "769:14:35", + "scope": 9858, + "src": "769:14:49", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1636,10 +1636,10 @@ "typeString": "uint256" }, "typeName": { - "id": 7097, + "id": 9845, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "769:7:35", + "src": "769:7:49", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1649,27 +1649,27 @@ "visibility": "internal" } ], - "src": "723:64:35" + "src": "723:64:49" }, "payable": false, "returnParameters": { - "id": 7100, + "id": 9848, "nodeType": "ParameterList", "parameters": [], - "src": "803:0:35" + "src": "803:0:49" }, - "scope": 7111, - "src": "703:152:35", + "scope": 9859, + "src": "703:152:49", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" } ], - "scope": 7112, - "src": "346:511:35" + "scope": 9860, + "src": "346:511:49" } ], - "src": "0:858:35" + "src": "0:858:49" }, "compiler": { "name": "solc", @@ -1677,5 +1677,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-02T11:52:56.789Z" + "updatedAt": "2018-10-22T07:56:01.697Z" } \ No newline at end of file diff --git a/build/contracts/SafeMath.json b/build/contracts/SafeMath.json index 63af3a5f..89578b0f 100644 --- a/build/contracts/SafeMath.json +++ b/build/contracts/SafeMath.json @@ -3,22 +3,22 @@ "abi": [], "bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820bd385704a7cdeeee49ba5e7c584a3197d8d330e17874d1f7883d1a03624e51460029", "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820bd385704a7cdeeee49ba5e7c584a3197d8d330e17874d1f7883d1a03624e51460029", - "sourceMap": "117:1251:30:-;;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:30:-;;;;;;;;", + "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", "sourcePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", "ast": { "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", "exportedSymbols": { "SafeMath": [ - 6854 + 9602 ] }, - "id": 6855, + "id": 9603, "nodeType": "SourceUnit", "nodes": [ { - "id": 6762, + "id": 9510, "literals": [ "solidity", "^", @@ -26,7 +26,7 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:30" + "src": "0:24:44" }, { "baseContracts": [], @@ -34,18 +34,18 @@ "contractKind": "library", "documentation": "@title SafeMath\n@dev Math operations with safety checks that throw on error", "fullyImplemented": true, - "id": 6854, + "id": 9602, "linearizedBaseContracts": [ - 6854 + 9602 ], "name": "SafeMath", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 6794, + "id": 9542, "nodeType": "Block", - "src": "274:309:30", + "src": "274:309:44", "statements": [ { "condition": { @@ -54,19 +54,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6773, + "id": 9521, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6771, + "id": 9519, "name": "_a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6764, - "src": "489:2:30", + "referencedDeclaration": 9512, + "src": "489:2:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -77,14 +77,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 6772, + "id": 9520, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "495:1:30", + "src": "495:1:44", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -92,33 +92,33 @@ }, "value": "0" }, - "src": "489:7:30", + "src": "489:7:44", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 6777, + "id": 9525, "nodeType": "IfStatement", - "src": "485:36:30", + "src": "485:36:44", "trueBody": { - "id": 6776, + "id": 9524, "nodeType": "Block", - "src": "498:23:30", + "src": "498:23:44", "statements": [ { "expression": { "argumentTypes": null, "hexValue": "30", - "id": 6774, + "id": 9522, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "513:1:30", + "src": "513:1:44", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -126,10 +126,10 @@ }, "value": "0" }, - "functionReturnParameters": 6770, - "id": 6775, + "functionReturnParameters": 9518, + "id": 9523, "nodeType": "Return", - "src": "506:8:30" + "src": "506:8:44" } ] } @@ -137,19 +137,19 @@ { "expression": { "argumentTypes": null, - "id": 6782, + "id": 9530, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 6778, + "id": 9526, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6769, - "src": "527:1:30", + "referencedDeclaration": 9517, + "src": "527:1:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -163,19 +163,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6781, + "id": 9529, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6779, + "id": 9527, "name": "_a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6764, - "src": "531:2:30", + "referencedDeclaration": 9512, + "src": "531:2:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -185,32 +185,32 @@ "operator": "*", "rightExpression": { "argumentTypes": null, - "id": 6780, + "id": 9528, "name": "_b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6766, - "src": "536:2:30", + "referencedDeclaration": 9514, + "src": "536:2:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "531:7:30", + "src": "531:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "527:11:30", + "src": "527:11:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6783, + "id": 9531, "nodeType": "ExpressionStatement", - "src": "527:11:30" + "src": "527:11:44" }, { "expression": { @@ -222,7 +222,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6789, + "id": 9537, "isConstant": false, "isLValue": false, "isPure": false, @@ -233,19 +233,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6787, + "id": 9535, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6785, + "id": 9533, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6769, - "src": "551:1:30", + "referencedDeclaration": 9517, + "src": "551:1:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -255,18 +255,18 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 6786, + "id": 9534, "name": "_a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6764, - "src": "555:2:30", + "referencedDeclaration": 9512, + "src": "555:2:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "551:6:30", + "src": "551:6:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -276,18 +276,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 6788, + "id": 9536, "name": "_b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6766, - "src": "561:2:30", + "referencedDeclaration": 9514, + "src": "561:2:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "551:12:30", + "src": "551:12:44", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -301,18 +301,18 @@ "typeString": "bool" } ], - "id": 6784, + "id": 9532, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7283, - "src": "544:6:30", + "referencedDeclaration": 10031, + "src": "544:6:44", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 6790, + "id": 9538, "isConstant": false, "isLValue": false, "isPure": false, @@ -320,39 +320,39 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "544:20:30", + "src": "544:20:44", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6791, + "id": 9539, "nodeType": "ExpressionStatement", - "src": "544:20:30" + "src": "544:20:44" }, { "expression": { "argumentTypes": null, - "id": 6792, + "id": 9540, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6769, - "src": "577:1:30", + "referencedDeclaration": 9517, + "src": "577:1:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 6770, - "id": 6793, + "functionReturnParameters": 9518, + "id": 9541, "nodeType": "Return", - "src": "570:8:30" + "src": "570:8:44" } ] }, "documentation": "@dev Multiplies two numbers, throws on overflow.", - "id": 6795, + "id": 9543, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -360,16 +360,16 @@ "name": "mul", "nodeType": "FunctionDefinition", "parameters": { - "id": 6767, + "id": 9515, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6764, + "id": 9512, "name": "_a", "nodeType": "VariableDeclaration", - "scope": 6795, - "src": "216:10:30", + "scope": 9543, + "src": "216:10:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -377,10 +377,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6763, + "id": 9511, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "216:7:30", + "src": "216:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -391,11 +391,11 @@ }, { "constant": false, - "id": 6766, + "id": 9514, "name": "_b", "nodeType": "VariableDeclaration", - "scope": 6795, - "src": "228:10:30", + "scope": 9543, + "src": "228:10:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -403,10 +403,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6765, + "id": 9513, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "228:7:30", + "src": "228:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -416,20 +416,20 @@ "visibility": "internal" } ], - "src": "215:24:30" + "src": "215:24:44" }, "payable": false, "returnParameters": { - "id": 6770, + "id": 9518, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6769, + "id": 9517, "name": "c", "nodeType": "VariableDeclaration", - "scope": 6795, - "src": "263:9:30", + "scope": 9543, + "src": "263:9:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -437,10 +437,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6768, + "id": 9516, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "263:7:30", + "src": "263:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -450,19 +450,19 @@ "visibility": "internal" } ], - "src": "262:11:30" + "src": "262:11:44" }, - "scope": 6854, - "src": "203:380:30", + "scope": 9602, + "src": "203:380:44", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 6808, + "id": 9556, "nodeType": "Block", - "src": "734:214:30", + "src": "734:214:44", "statements": [ { "expression": { @@ -471,19 +471,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6806, + "id": 9554, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6804, + "id": 9552, "name": "_a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6797, - "src": "936:2:30", + "referencedDeclaration": 9545, + "src": "936:2:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -493,32 +493,32 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 6805, + "id": 9553, "name": "_b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6799, - "src": "941:2:30", + "referencedDeclaration": 9547, + "src": "941:2:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "936:7:30", + "src": "936:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 6803, - "id": 6807, + "functionReturnParameters": 9551, + "id": 9555, "nodeType": "Return", - "src": "929:14:30" + "src": "929:14:44" } ] }, "documentation": "@dev Integer division of two numbers, truncating the quotient.", - "id": 6809, + "id": 9557, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -526,16 +526,16 @@ "name": "div", "nodeType": "FunctionDefinition", "parameters": { - "id": 6800, + "id": 9548, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6797, + "id": 9545, "name": "_a", "nodeType": "VariableDeclaration", - "scope": 6809, - "src": "678:10:30", + "scope": 9557, + "src": "678:10:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -543,10 +543,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6796, + "id": 9544, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "678:7:30", + "src": "678:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -557,11 +557,11 @@ }, { "constant": false, - "id": 6799, + "id": 9547, "name": "_b", "nodeType": "VariableDeclaration", - "scope": 6809, - "src": "690:10:30", + "scope": 9557, + "src": "690:10:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -569,10 +569,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6798, + "id": 9546, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "690:7:30", + "src": "690:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -582,20 +582,20 @@ "visibility": "internal" } ], - "src": "677:24:30" + "src": "677:24:44" }, "payable": false, "returnParameters": { - "id": 6803, + "id": 9551, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6802, + "id": 9550, "name": "", "nodeType": "VariableDeclaration", - "scope": 6809, - "src": "725:7:30", + "scope": 9557, + "src": "725:7:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -603,10 +603,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6801, + "id": 9549, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "725:7:30", + "src": "725:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -616,19 +616,19 @@ "visibility": "internal" } ], - "src": "724:9:30" + "src": "724:9:44" }, - "scope": 6854, - "src": "665:283:30", + "scope": 9602, + "src": "665:283:44", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 6828, + "id": 9576, "nodeType": "Block", - "src": "1129:47:30", + "src": "1129:47:44", "statements": [ { "expression": { @@ -640,19 +640,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6821, + "id": 9569, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6819, + "id": 9567, "name": "_b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6813, - "src": "1142:2:30", + "referencedDeclaration": 9561, + "src": "1142:2:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -662,18 +662,18 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 6820, + "id": 9568, "name": "_a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6811, - "src": "1148:2:30", + "referencedDeclaration": 9559, + "src": "1148:2:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1142:8:30", + "src": "1142:8:44", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -687,18 +687,18 @@ "typeString": "bool" } ], - "id": 6818, + "id": 9566, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7283, - "src": "1135:6:30", + "referencedDeclaration": 10031, + "src": "1135:6:44", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 6822, + "id": 9570, "isConstant": false, "isLValue": false, "isPure": false, @@ -706,15 +706,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1135:16:30", + "src": "1135:16:44", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6823, + "id": 9571, "nodeType": "ExpressionStatement", - "src": "1135:16:30" + "src": "1135:16:44" }, { "expression": { @@ -723,19 +723,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6826, + "id": 9574, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6824, + "id": 9572, "name": "_a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6811, - "src": "1164:2:30", + "referencedDeclaration": 9559, + "src": "1164:2:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -745,32 +745,32 @@ "operator": "-", "rightExpression": { "argumentTypes": null, - "id": 6825, + "id": 9573, "name": "_b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6813, - "src": "1169:2:30", + "referencedDeclaration": 9561, + "src": "1169:2:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1164:7:30", + "src": "1164:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 6817, - "id": 6827, + "functionReturnParameters": 9565, + "id": 9575, "nodeType": "Return", - "src": "1157:14:30" + "src": "1157:14:44" } ] }, "documentation": "@dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).", - "id": 6829, + "id": 9577, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -778,16 +778,16 @@ "name": "sub", "nodeType": "FunctionDefinition", "parameters": { - "id": 6814, + "id": 9562, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6811, + "id": 9559, "name": "_a", "nodeType": "VariableDeclaration", - "scope": 6829, - "src": "1073:10:30", + "scope": 9577, + "src": "1073:10:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -795,10 +795,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6810, + "id": 9558, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1073:7:30", + "src": "1073:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -809,11 +809,11 @@ }, { "constant": false, - "id": 6813, + "id": 9561, "name": "_b", "nodeType": "VariableDeclaration", - "scope": 6829, - "src": "1085:10:30", + "scope": 9577, + "src": "1085:10:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -821,10 +821,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6812, + "id": 9560, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1085:7:30", + "src": "1085:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -834,20 +834,20 @@ "visibility": "internal" } ], - "src": "1072:24:30" + "src": "1072:24:44" }, "payable": false, "returnParameters": { - "id": 6817, + "id": 9565, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6816, + "id": 9564, "name": "", "nodeType": "VariableDeclaration", - "scope": 6829, - "src": "1120:7:30", + "scope": 9577, + "src": "1120:7:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -855,10 +855,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6815, + "id": 9563, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1120:7:30", + "src": "1120:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -868,36 +868,36 @@ "visibility": "internal" } ], - "src": "1119:9:30" + "src": "1119:9:44" }, - "scope": 6854, - "src": "1060:116:30", + "scope": 9602, + "src": "1060:116:44", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 6852, + "id": 9600, "nodeType": "Block", - "src": "1309:57:30", + "src": "1309:57:44", "statements": [ { "expression": { "argumentTypes": null, - "id": 6842, + "id": 9590, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 6838, + "id": 9586, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6836, - "src": "1315:1:30", + "referencedDeclaration": 9584, + "src": "1315:1:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -911,19 +911,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6841, + "id": 9589, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6839, + "id": 9587, "name": "_a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6831, - "src": "1319:2:30", + "referencedDeclaration": 9579, + "src": "1319:2:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -933,32 +933,32 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 6840, + "id": 9588, "name": "_b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6833, - "src": "1324:2:30", + "referencedDeclaration": 9581, + "src": "1324:2:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1319:7:30", + "src": "1319:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1315:11:30", + "src": "1315:11:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6843, + "id": 9591, "nodeType": "ExpressionStatement", - "src": "1315:11:30" + "src": "1315:11:44" }, { "expression": { @@ -970,19 +970,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6847, + "id": 9595, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6845, + "id": 9593, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6836, - "src": "1339:1:30", + "referencedDeclaration": 9584, + "src": "1339:1:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -992,18 +992,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 6846, + "id": 9594, "name": "_a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6831, - "src": "1344:2:30", + "referencedDeclaration": 9579, + "src": "1344:2:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1339:7:30", + "src": "1339:7:44", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1017,18 +1017,18 @@ "typeString": "bool" } ], - "id": 6844, + "id": 9592, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7283, - "src": "1332:6:30", + "referencedDeclaration": 10031, + "src": "1332:6:44", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 6848, + "id": 9596, "isConstant": false, "isLValue": false, "isPure": false, @@ -1036,39 +1036,39 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1332:15:30", + "src": "1332:15:44", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6849, + "id": 9597, "nodeType": "ExpressionStatement", - "src": "1332:15:30" + "src": "1332:15:44" }, { "expression": { "argumentTypes": null, - "id": 6850, + "id": 9598, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6836, - "src": "1360:1:30", + "referencedDeclaration": 9584, + "src": "1360:1:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 6837, - "id": 6851, + "functionReturnParameters": 9585, + "id": 9599, "nodeType": "Return", - "src": "1353:8:30" + "src": "1353:8:44" } ] }, "documentation": "@dev Adds two numbers, throws on overflow.", - "id": 6853, + "id": 9601, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1076,16 +1076,16 @@ "name": "add", "nodeType": "FunctionDefinition", "parameters": { - "id": 6834, + "id": 9582, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6831, + "id": 9579, "name": "_a", "nodeType": "VariableDeclaration", - "scope": 6853, - "src": "1251:10:30", + "scope": 9601, + "src": "1251:10:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1093,10 +1093,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6830, + "id": 9578, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1251:7:30", + "src": "1251:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1107,11 +1107,11 @@ }, { "constant": false, - "id": 6833, + "id": 9581, "name": "_b", "nodeType": "VariableDeclaration", - "scope": 6853, - "src": "1263:10:30", + "scope": 9601, + "src": "1263:10:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1119,10 +1119,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6832, + "id": 9580, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1263:7:30", + "src": "1263:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1132,20 +1132,20 @@ "visibility": "internal" } ], - "src": "1250:24:30" + "src": "1250:24:44" }, "payable": false, "returnParameters": { - "id": 6837, + "id": 9585, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6836, + "id": 9584, "name": "c", "nodeType": "VariableDeclaration", - "scope": 6853, - "src": "1298:9:30", + "scope": 9601, + "src": "1298:9:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1153,10 +1153,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6835, + "id": 9583, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1298:7:30", + "src": "1298:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1166,33 +1166,33 @@ "visibility": "internal" } ], - "src": "1297:11:30" + "src": "1297:11:44" }, - "scope": 6854, - "src": "1238:128:30", + "scope": 9602, + "src": "1238:128:44", "stateMutability": "pure", "superFunction": null, "visibility": "internal" } ], - "scope": 6855, - "src": "117:1251:30" + "scope": 9603, + "src": "117:1251:44" } ], - "src": "0:1369:30" + "src": "0:1369:44" }, "legacyAST": { "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", "exportedSymbols": { "SafeMath": [ - 6854 + 9602 ] }, - "id": 6855, + "id": 9603, "nodeType": "SourceUnit", "nodes": [ { - "id": 6762, + "id": 9510, "literals": [ "solidity", "^", @@ -1200,7 +1200,7 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:30" + "src": "0:24:44" }, { "baseContracts": [], @@ -1208,18 +1208,18 @@ "contractKind": "library", "documentation": "@title SafeMath\n@dev Math operations with safety checks that throw on error", "fullyImplemented": true, - "id": 6854, + "id": 9602, "linearizedBaseContracts": [ - 6854 + 9602 ], "name": "SafeMath", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 6794, + "id": 9542, "nodeType": "Block", - "src": "274:309:30", + "src": "274:309:44", "statements": [ { "condition": { @@ -1228,19 +1228,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6773, + "id": 9521, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6771, + "id": 9519, "name": "_a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6764, - "src": "489:2:30", + "referencedDeclaration": 9512, + "src": "489:2:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1251,14 +1251,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 6772, + "id": 9520, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "495:1:30", + "src": "495:1:44", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1266,33 +1266,33 @@ }, "value": "0" }, - "src": "489:7:30", + "src": "489:7:44", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 6777, + "id": 9525, "nodeType": "IfStatement", - "src": "485:36:30", + "src": "485:36:44", "trueBody": { - "id": 6776, + "id": 9524, "nodeType": "Block", - "src": "498:23:30", + "src": "498:23:44", "statements": [ { "expression": { "argumentTypes": null, "hexValue": "30", - "id": 6774, + "id": 9522, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "513:1:30", + "src": "513:1:44", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1300,10 +1300,10 @@ }, "value": "0" }, - "functionReturnParameters": 6770, - "id": 6775, + "functionReturnParameters": 9518, + "id": 9523, "nodeType": "Return", - "src": "506:8:30" + "src": "506:8:44" } ] } @@ -1311,19 +1311,19 @@ { "expression": { "argumentTypes": null, - "id": 6782, + "id": 9530, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 6778, + "id": 9526, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6769, - "src": "527:1:30", + "referencedDeclaration": 9517, + "src": "527:1:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1337,19 +1337,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6781, + "id": 9529, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6779, + "id": 9527, "name": "_a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6764, - "src": "531:2:30", + "referencedDeclaration": 9512, + "src": "531:2:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1359,32 +1359,32 @@ "operator": "*", "rightExpression": { "argumentTypes": null, - "id": 6780, + "id": 9528, "name": "_b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6766, - "src": "536:2:30", + "referencedDeclaration": 9514, + "src": "536:2:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "531:7:30", + "src": "531:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "527:11:30", + "src": "527:11:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6783, + "id": 9531, "nodeType": "ExpressionStatement", - "src": "527:11:30" + "src": "527:11:44" }, { "expression": { @@ -1396,7 +1396,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6789, + "id": 9537, "isConstant": false, "isLValue": false, "isPure": false, @@ -1407,19 +1407,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6787, + "id": 9535, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6785, + "id": 9533, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6769, - "src": "551:1:30", + "referencedDeclaration": 9517, + "src": "551:1:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1429,18 +1429,18 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 6786, + "id": 9534, "name": "_a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6764, - "src": "555:2:30", + "referencedDeclaration": 9512, + "src": "555:2:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "551:6:30", + "src": "551:6:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1450,18 +1450,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 6788, + "id": 9536, "name": "_b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6766, - "src": "561:2:30", + "referencedDeclaration": 9514, + "src": "561:2:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "551:12:30", + "src": "551:12:44", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1475,18 +1475,18 @@ "typeString": "bool" } ], - "id": 6784, + "id": 9532, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7283, - "src": "544:6:30", + "referencedDeclaration": 10031, + "src": "544:6:44", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 6790, + "id": 9538, "isConstant": false, "isLValue": false, "isPure": false, @@ -1494,39 +1494,39 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "544:20:30", + "src": "544:20:44", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6791, + "id": 9539, "nodeType": "ExpressionStatement", - "src": "544:20:30" + "src": "544:20:44" }, { "expression": { "argumentTypes": null, - "id": 6792, + "id": 9540, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6769, - "src": "577:1:30", + "referencedDeclaration": 9517, + "src": "577:1:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 6770, - "id": 6793, + "functionReturnParameters": 9518, + "id": 9541, "nodeType": "Return", - "src": "570:8:30" + "src": "570:8:44" } ] }, "documentation": "@dev Multiplies two numbers, throws on overflow.", - "id": 6795, + "id": 9543, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1534,16 +1534,16 @@ "name": "mul", "nodeType": "FunctionDefinition", "parameters": { - "id": 6767, + "id": 9515, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6764, + "id": 9512, "name": "_a", "nodeType": "VariableDeclaration", - "scope": 6795, - "src": "216:10:30", + "scope": 9543, + "src": "216:10:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1551,10 +1551,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6763, + "id": 9511, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "216:7:30", + "src": "216:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1565,11 +1565,11 @@ }, { "constant": false, - "id": 6766, + "id": 9514, "name": "_b", "nodeType": "VariableDeclaration", - "scope": 6795, - "src": "228:10:30", + "scope": 9543, + "src": "228:10:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1577,10 +1577,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6765, + "id": 9513, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "228:7:30", + "src": "228:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1590,20 +1590,20 @@ "visibility": "internal" } ], - "src": "215:24:30" + "src": "215:24:44" }, "payable": false, "returnParameters": { - "id": 6770, + "id": 9518, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6769, + "id": 9517, "name": "c", "nodeType": "VariableDeclaration", - "scope": 6795, - "src": "263:9:30", + "scope": 9543, + "src": "263:9:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1611,10 +1611,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6768, + "id": 9516, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "263:7:30", + "src": "263:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1624,19 +1624,19 @@ "visibility": "internal" } ], - "src": "262:11:30" + "src": "262:11:44" }, - "scope": 6854, - "src": "203:380:30", + "scope": 9602, + "src": "203:380:44", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 6808, + "id": 9556, "nodeType": "Block", - "src": "734:214:30", + "src": "734:214:44", "statements": [ { "expression": { @@ -1645,19 +1645,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6806, + "id": 9554, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6804, + "id": 9552, "name": "_a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6797, - "src": "936:2:30", + "referencedDeclaration": 9545, + "src": "936:2:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1667,32 +1667,32 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 6805, + "id": 9553, "name": "_b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6799, - "src": "941:2:30", + "referencedDeclaration": 9547, + "src": "941:2:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "936:7:30", + "src": "936:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 6803, - "id": 6807, + "functionReturnParameters": 9551, + "id": 9555, "nodeType": "Return", - "src": "929:14:30" + "src": "929:14:44" } ] }, "documentation": "@dev Integer division of two numbers, truncating the quotient.", - "id": 6809, + "id": 9557, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1700,16 +1700,16 @@ "name": "div", "nodeType": "FunctionDefinition", "parameters": { - "id": 6800, + "id": 9548, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6797, + "id": 9545, "name": "_a", "nodeType": "VariableDeclaration", - "scope": 6809, - "src": "678:10:30", + "scope": 9557, + "src": "678:10:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1717,10 +1717,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6796, + "id": 9544, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "678:7:30", + "src": "678:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1731,11 +1731,11 @@ }, { "constant": false, - "id": 6799, + "id": 9547, "name": "_b", "nodeType": "VariableDeclaration", - "scope": 6809, - "src": "690:10:30", + "scope": 9557, + "src": "690:10:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1743,10 +1743,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6798, + "id": 9546, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "690:7:30", + "src": "690:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1756,20 +1756,20 @@ "visibility": "internal" } ], - "src": "677:24:30" + "src": "677:24:44" }, "payable": false, "returnParameters": { - "id": 6803, + "id": 9551, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6802, + "id": 9550, "name": "", "nodeType": "VariableDeclaration", - "scope": 6809, - "src": "725:7:30", + "scope": 9557, + "src": "725:7:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1777,10 +1777,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6801, + "id": 9549, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "725:7:30", + "src": "725:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1790,19 +1790,19 @@ "visibility": "internal" } ], - "src": "724:9:30" + "src": "724:9:44" }, - "scope": 6854, - "src": "665:283:30", + "scope": 9602, + "src": "665:283:44", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 6828, + "id": 9576, "nodeType": "Block", - "src": "1129:47:30", + "src": "1129:47:44", "statements": [ { "expression": { @@ -1814,19 +1814,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6821, + "id": 9569, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6819, + "id": 9567, "name": "_b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6813, - "src": "1142:2:30", + "referencedDeclaration": 9561, + "src": "1142:2:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1836,18 +1836,18 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 6820, + "id": 9568, "name": "_a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6811, - "src": "1148:2:30", + "referencedDeclaration": 9559, + "src": "1148:2:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1142:8:30", + "src": "1142:8:44", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1861,18 +1861,18 @@ "typeString": "bool" } ], - "id": 6818, + "id": 9566, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7283, - "src": "1135:6:30", + "referencedDeclaration": 10031, + "src": "1135:6:44", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 6822, + "id": 9570, "isConstant": false, "isLValue": false, "isPure": false, @@ -1880,15 +1880,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1135:16:30", + "src": "1135:16:44", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6823, + "id": 9571, "nodeType": "ExpressionStatement", - "src": "1135:16:30" + "src": "1135:16:44" }, { "expression": { @@ -1897,19 +1897,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6826, + "id": 9574, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6824, + "id": 9572, "name": "_a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6811, - "src": "1164:2:30", + "referencedDeclaration": 9559, + "src": "1164:2:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1919,32 +1919,32 @@ "operator": "-", "rightExpression": { "argumentTypes": null, - "id": 6825, + "id": 9573, "name": "_b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6813, - "src": "1169:2:30", + "referencedDeclaration": 9561, + "src": "1169:2:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1164:7:30", + "src": "1164:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 6817, - "id": 6827, + "functionReturnParameters": 9565, + "id": 9575, "nodeType": "Return", - "src": "1157:14:30" + "src": "1157:14:44" } ] }, "documentation": "@dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).", - "id": 6829, + "id": 9577, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1952,16 +1952,16 @@ "name": "sub", "nodeType": "FunctionDefinition", "parameters": { - "id": 6814, + "id": 9562, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6811, + "id": 9559, "name": "_a", "nodeType": "VariableDeclaration", - "scope": 6829, - "src": "1073:10:30", + "scope": 9577, + "src": "1073:10:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1969,10 +1969,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6810, + "id": 9558, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1073:7:30", + "src": "1073:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1983,11 +1983,11 @@ }, { "constant": false, - "id": 6813, + "id": 9561, "name": "_b", "nodeType": "VariableDeclaration", - "scope": 6829, - "src": "1085:10:30", + "scope": 9577, + "src": "1085:10:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1995,10 +1995,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6812, + "id": 9560, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1085:7:30", + "src": "1085:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2008,20 +2008,20 @@ "visibility": "internal" } ], - "src": "1072:24:30" + "src": "1072:24:44" }, "payable": false, "returnParameters": { - "id": 6817, + "id": 9565, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6816, + "id": 9564, "name": "", "nodeType": "VariableDeclaration", - "scope": 6829, - "src": "1120:7:30", + "scope": 9577, + "src": "1120:7:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2029,10 +2029,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6815, + "id": 9563, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1120:7:30", + "src": "1120:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2042,36 +2042,36 @@ "visibility": "internal" } ], - "src": "1119:9:30" + "src": "1119:9:44" }, - "scope": 6854, - "src": "1060:116:30", + "scope": 9602, + "src": "1060:116:44", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 6852, + "id": 9600, "nodeType": "Block", - "src": "1309:57:30", + "src": "1309:57:44", "statements": [ { "expression": { "argumentTypes": null, - "id": 6842, + "id": 9590, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 6838, + "id": 9586, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6836, - "src": "1315:1:30", + "referencedDeclaration": 9584, + "src": "1315:1:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2085,19 +2085,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6841, + "id": 9589, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6839, + "id": 9587, "name": "_a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6831, - "src": "1319:2:30", + "referencedDeclaration": 9579, + "src": "1319:2:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2107,32 +2107,32 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 6840, + "id": 9588, "name": "_b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6833, - "src": "1324:2:30", + "referencedDeclaration": 9581, + "src": "1324:2:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1319:7:30", + "src": "1319:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1315:11:30", + "src": "1315:11:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6843, + "id": 9591, "nodeType": "ExpressionStatement", - "src": "1315:11:30" + "src": "1315:11:44" }, { "expression": { @@ -2144,19 +2144,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6847, + "id": 9595, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6845, + "id": 9593, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6836, - "src": "1339:1:30", + "referencedDeclaration": 9584, + "src": "1339:1:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2166,18 +2166,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 6846, + "id": 9594, "name": "_a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6831, - "src": "1344:2:30", + "referencedDeclaration": 9579, + "src": "1344:2:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1339:7:30", + "src": "1339:7:44", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2191,18 +2191,18 @@ "typeString": "bool" } ], - "id": 6844, + "id": 9592, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7283, - "src": "1332:6:30", + "referencedDeclaration": 10031, + "src": "1332:6:44", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 6848, + "id": 9596, "isConstant": false, "isLValue": false, "isPure": false, @@ -2210,39 +2210,39 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1332:15:30", + "src": "1332:15:44", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6849, + "id": 9597, "nodeType": "ExpressionStatement", - "src": "1332:15:30" + "src": "1332:15:44" }, { "expression": { "argumentTypes": null, - "id": 6850, + "id": 9598, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6836, - "src": "1360:1:30", + "referencedDeclaration": 9584, + "src": "1360:1:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 6837, - "id": 6851, + "functionReturnParameters": 9585, + "id": 9599, "nodeType": "Return", - "src": "1353:8:30" + "src": "1353:8:44" } ] }, "documentation": "@dev Adds two numbers, throws on overflow.", - "id": 6853, + "id": 9601, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2250,16 +2250,16 @@ "name": "add", "nodeType": "FunctionDefinition", "parameters": { - "id": 6834, + "id": 9582, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6831, + "id": 9579, "name": "_a", "nodeType": "VariableDeclaration", - "scope": 6853, - "src": "1251:10:30", + "scope": 9601, + "src": "1251:10:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2267,10 +2267,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6830, + "id": 9578, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1251:7:30", + "src": "1251:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2281,11 +2281,11 @@ }, { "constant": false, - "id": 6833, + "id": 9581, "name": "_b", "nodeType": "VariableDeclaration", - "scope": 6853, - "src": "1263:10:30", + "scope": 9601, + "src": "1263:10:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2293,10 +2293,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6832, + "id": 9580, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1263:7:30", + "src": "1263:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2306,20 +2306,20 @@ "visibility": "internal" } ], - "src": "1250:24:30" + "src": "1250:24:44" }, "payable": false, "returnParameters": { - "id": 6837, + "id": 9585, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6836, + "id": 9584, "name": "c", "nodeType": "VariableDeclaration", - "scope": 6853, - "src": "1298:9:30", + "scope": 9601, + "src": "1298:9:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2327,10 +2327,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6835, + "id": 9583, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1298:7:30", + "src": "1298:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2340,20 +2340,20 @@ "visibility": "internal" } ], - "src": "1297:11:30" + "src": "1297:11:44" }, - "scope": 6854, - "src": "1238:128:30", + "scope": 9602, + "src": "1238:128:44", "stateMutability": "pure", "superFunction": null, "visibility": "internal" } ], - "scope": 6855, - "src": "117:1251:30" + "scope": 9603, + "src": "117:1251:44" } ], - "src": "0:1369:30" + "src": "0:1369:44" }, "compiler": { "name": "solc", @@ -2361,5 +2361,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-02T11:52:56.766Z" + "updatedAt": "2018-10-22T07:56:01.694Z" } \ No newline at end of file diff --git a/build/contracts/Symbols.json b/build/contracts/Symbols.json index 5255f2d5..7318a96a 100644 --- a/build/contracts/Symbols.json +++ b/build/contracts/Symbols.json @@ -82,24 +82,24 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50610395806100206000396000f30060806040526004361061006c5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631b71a9db8114610071578063289e029b1461008b57806350b49f2d146100a35780637d20abf8146100cd578063e5da831f146100f9575b600080fd5b34801561007d57600080fd5b5061008960043561015e565b005b34801561009757600080fd5b506100896004356101b6565b3480156100af57600080fd5b506100bb600435610229565b60408051918252519081900360200190f35b3480156100d957600080fd5b506100e5600435610248565b604080519115158252519081900360200190f35b34801561010557600080fd5b5061010e61025d565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561014a578181015183820152602001610132565b505050509050019250505060405180910390f35b60008181526002602052604090205460ff16151561017b57600080fd5b6000818152600260209081526040808320805460ff1916905560019091529020546101a5906102b7565b600090815260016020526040812055565b60008181526002602052604090205460ff16156101d257600080fd5b6000818152600260209081526040808320805460ff19166001908117909155835492819052908320829055810182559080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5630155565b600080548290811061023757fe5b600091825260209091200154905081565b60009081526002602052604090205460ff1690565b606060008054806020026020016040519081016040528092919081815260200182805480156102ac57602002820191906000526020600020905b81548152600190910190602001808311610297575b505050505090505b90565b60005481106102c557600080fd5b60005460001901811461030b576000805460001981019081106102e457fe5b90600052602060002001546000828154811015156102fe57fe5b6000918252602090912001555b600080549061031e906000198301610322565b5050565b8154818355818111156103465760008381526020902061034691810190830161034b565b505050565b6102b491905b808211156103655760008155600101610351565b50905600a165627a7a72305820b0e90565d59a643971c2186badeda3356d5b995241d1df9171c0952445fea5e80029", - "deployedBytecode": "0x60806040526004361061006c5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631b71a9db8114610071578063289e029b1461008b57806350b49f2d146100a35780637d20abf8146100cd578063e5da831f146100f9575b600080fd5b34801561007d57600080fd5b5061008960043561015e565b005b34801561009757600080fd5b506100896004356101b6565b3480156100af57600080fd5b506100bb600435610229565b60408051918252519081900360200190f35b3480156100d957600080fd5b506100e5600435610248565b604080519115158252519081900360200190f35b34801561010557600080fd5b5061010e61025d565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561014a578181015183820152602001610132565b505050509050019250505060405180910390f35b60008181526002602052604090205460ff16151561017b57600080fd5b6000818152600260209081526040808320805460ff1916905560019091529020546101a5906102b7565b600090815260016020526040812055565b60008181526002602052604090205460ff16156101d257600080fd5b6000818152600260209081526040808320805460ff19166001908117909155835492819052908320829055810182559080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5630155565b600080548290811061023757fe5b600091825260209091200154905081565b60009081526002602052604090205460ff1690565b606060008054806020026020016040519081016040528092919081815260200182805480156102ac57602002820191906000526020600020905b81548152600190910190602001808311610297575b505050505090505b90565b60005481106102c557600080fd5b60005460001901811461030b576000805460001981019081106102e457fe5b90600052602060002001546000828154811015156102fe57fe5b6000918252602090912001555b600080549061031e906000198301610322565b5050565b8154818355818111156103465760008381526020902061034691810190830161034b565b505050565b6102b491905b808211156103655760008155600101610351565b50905600a165627a7a72305820b0e90565d59a643971c2186badeda3356d5b995241d1df9171c0952445fea5e80029", - "sourceMap": "26:1025:17:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;26:1025:17;;;;;;;", - "deployedSourceMap": "26:1025:17:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;373:204;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;373:204:17;;;;;;;166:201;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;166:201:17;;;;;49:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;49:28:17;;;;;;;;;;;;;;;;;;;;;583:100;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;583:100:17;;;;;;;;;;;;;;;;;;;;;;;689:92;;8:9:-1;5:2;;;30:1;27;20:12;5:2;689:92:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;689:92:17;;;;;;;;;;;;;;;;;373:204;436:15;;;;:7;:15;;;;;;;;428:24;;;;;;;;481:5;463:15;;;:7;:15;;;;;;;;:23;;-1:-1:-1;;463:23:17;;;;517:19;;;;;;496:41;;:20;:41::i;:::-;569:1;547:19;;;:11;:19;;;;;:23;373:204::o;166:201::-;227:15;;;;:7;:15;;;;;;;;226:16;218:25;;;;;;254:15;;;;:7;:15;;;;;;;;:22;;-1:-1:-1;;254:22:17;272:4;254:22;;;;;;308:18;;286:19;;;;;;;:40;;;23:18:-1;;45:23;;336:24:17;;;;;;166:201::o;49:28::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;49:28:17;:::o;583:100::-;638:4;661:15;;;:7;:15;;;;;;;;;583:100::o;689:92::-;735:9;763:11;756:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;689:92;;:::o;787:262::-;864:11;:18;856:26;;848:35;;;;;;907:11;:18;-1:-1:-1;;907:22:17;898:31;;894:118;;966:11;978:18;;-1:-1:-1;;978:22:17;;;966:35;;;;;;;;;;;;;;945:11;957:5;945:18;;;;;;;;;;;;;;;;;;;:56;894:118;1022:11;:20;;;;;-1:-1:-1;;1022:20:17;;;:::i;:::-;;787:262;:::o;26:1025::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;", - "source": "pragma solidity ^0.4.24;\n\ncontract Symbols {\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": "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", "sourcePath": "/home/circleci/code/contracts/rates/Symbols.sol", "ast": { "absolutePath": "/home/circleci/code/contracts/rates/Symbols.sol", "exportedSymbols": { "Symbols": [ - 4949 + 7402 ] }, - "id": 4950, + "id": 7403, "nodeType": "SourceUnit", "nodes": [ { - "id": 4817, + "id": 7267, "literals": [ "solidity", "^", @@ -107,28 +107,61 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:17" + "src": "0:24:26" }, { - "baseContracts": [], - "contractDependencies": [], + "absolutePath": "/home/circleci/code/contracts/rates/ISymbols.sol", + "file": "./ISymbols.sol", + "id": 7268, + "nodeType": "ImportDirective", + "scope": 7403, + "sourceUnit": 7045, + "src": "26:24:26", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 7269, + "name": "ISymbols", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7044, + "src": "72:8:26", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISymbols_$7044", + "typeString": "contract ISymbols" + } + }, + "id": 7270, + "nodeType": "InheritanceSpecifier", + "src": "72:8:26" + } + ], + "contractDependencies": [ + 7044 + ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 4949, + "id": 7402, "linearizedBaseContracts": [ - 4949 + 7402, + 7044 ], "name": "Symbols", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 4820, + "id": 7273, "name": "symbolsList", "nodeType": "VariableDeclaration", - "scope": 4949, - "src": "49:28:17", + "scope": 7402, + "src": "87:28:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -137,19 +170,19 @@ }, "typeName": { "baseType": { - "id": 4818, + "id": 7271, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "49:7:17", + "src": "87:7:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 4819, + "id": 7272, "length": null, "nodeType": "ArrayTypeName", - "src": "49:9:17", + "src": "87:9:26", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -160,11 +193,11 @@ }, { "constant": false, - "id": 4824, + "id": 7277, "name": "symbolIndex", "nodeType": "VariableDeclaration", - "scope": 4949, - "src": "83:37:17", + "scope": 7402, + "src": "121:37:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -172,28 +205,28 @@ "typeString": "mapping(bytes32 => uint256)" }, "typeName": { - "id": 4823, + "id": 7276, "keyType": { - "id": 4821, + "id": 7274, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "92:7:17", + "src": "130:7:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "83:25:17", + "src": "121:25:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" }, "valueType": { - "id": 4822, + "id": 7275, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "103:4:17", + "src": "141:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -205,11 +238,11 @@ }, { "constant": false, - "id": 4828, + "id": 7281, "name": "symbols", "nodeType": "VariableDeclaration", - "scope": 4949, - "src": "126:33:17", + "scope": 7402, + "src": "164:33:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -217,28 +250,28 @@ "typeString": "mapping(bytes32 => bool)" }, "typeName": { - "id": 4827, + "id": 7280, "keyType": { - "id": 4825, + "id": 7278, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "135:7:17", + "src": "173:7:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "126:25:17", + "src": "164:25:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" }, "valueType": { - "id": 4826, + "id": 7279, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "146:4:17", + "src": "184:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -250,9 +283,9 @@ }, { "body": { - "id": 4859, + "id": 7312, "nodeType": "Block", - "src": "208:159:17", + "src": "246:159:26", "statements": [ { "expression": { @@ -260,7 +293,7 @@ "arguments": [ { "argumentTypes": null, - "id": 4837, + "id": 7290, "isConstant": false, "isLValue": false, "isPure": false, @@ -268,31 +301,31 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "226:16:17", + "src": "264:16:26", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 4834, + "id": 7287, "name": "symbols", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4828, - "src": "227:7:17", + "referencedDeclaration": 7281, + "src": "265:7:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 4836, + "id": 7289, "indexExpression": { "argumentTypes": null, - "id": 4835, + "id": 7288, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4830, - "src": "235:6:17", + "referencedDeclaration": 7283, + "src": "273:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -303,7 +336,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "227:15:17", + "src": "265:15:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -322,21 +355,21 @@ "typeString": "bool" } ], - "id": 4833, + "id": 7286, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "218:7:17", + "referencedDeclaration": 10045, + "src": "256:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 4838, + "id": 7291, "isConstant": false, "isLValue": false, "isPure": false, @@ -344,20 +377,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "218:25:17", + "src": "256:25:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4839, + "id": 7292, "nodeType": "ExpressionStatement", - "src": "218:25:17" + "src": "256:25:26" }, { "expression": { "argumentTypes": null, - "id": 4844, + "id": 7297, "isConstant": false, "isLValue": false, "isPure": false, @@ -366,26 +399,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 4840, + "id": 7293, "name": "symbols", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4828, - "src": "254:7:17", + "referencedDeclaration": 7281, + "src": "292:7:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 4842, + "id": 7295, "indexExpression": { "argumentTypes": null, - "id": 4841, + "id": 7294, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4830, - "src": "262:6:17", + "referencedDeclaration": 7283, + "src": "300:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -396,7 +429,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "254:15:17", + "src": "292:15:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -407,14 +440,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 4843, + "id": 7296, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "272:4:17", + "src": "310:4:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -422,20 +455,20 @@ }, "value": "true" }, - "src": "254:22:17", + "src": "292:22:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 4845, + "id": 7298, "nodeType": "ExpressionStatement", - "src": "254:22:17" + "src": "292:22:26" }, { "expression": { "argumentTypes": null, - "id": 4851, + "id": 7304, "isConstant": false, "isLValue": false, "isPure": false, @@ -444,26 +477,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 4846, + "id": 7299, "name": "symbolIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4824, - "src": "286:11:17", + "referencedDeclaration": 7277, + "src": "324:11:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 4848, + "id": 7301, "indexExpression": { "argumentTypes": null, - "id": 4847, + "id": 7300, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4830, - "src": "298:6:17", + "referencedDeclaration": 7283, + "src": "336:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -474,7 +507,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "286:19:17", + "src": "324:19:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -486,18 +519,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4849, + "id": 7302, "name": "symbolsList", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4820, - "src": "308:11:17", + "referencedDeclaration": 7273, + "src": "346:11:26", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 4850, + "id": 7303, "isConstant": false, "isLValue": true, "isPure": false, @@ -505,21 +538,21 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "308:18:17", + "src": "346:18:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "286:40:17", + "src": "324:40:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 4852, + "id": 7305, "nodeType": "ExpressionStatement", - "src": "286:40:17" + "src": "324:40:26" }, { "expression": { @@ -527,12 +560,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4856, + "id": 7309, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4830, - "src": "353:6:17", + "referencedDeclaration": 7283, + "src": "391:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -548,18 +581,18 @@ ], "expression": { "argumentTypes": null, - "id": 4853, + "id": 7306, "name": "symbolsList", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4820, - "src": "336:11:17", + "referencedDeclaration": 7273, + "src": "374:11:26", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 4855, + "id": 7308, "isConstant": false, "isLValue": false, "isPure": false, @@ -567,13 +600,13 @@ "memberName": "push", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "336:16:17", + "src": "374:16:26", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_bytes32_$returns$_t_uint256_$", "typeString": "function (bytes32) returns (uint256)" } }, - "id": 4857, + "id": 7310, "isConstant": false, "isLValue": false, "isPure": false, @@ -581,20 +614,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "336:24:17", + "src": "374:24:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 4858, + "id": 7311, "nodeType": "ExpressionStatement", - "src": "336:24:17" + "src": "374:24:26" } ] }, "documentation": null, - "id": 4860, + "id": 7313, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -602,16 +635,16 @@ "name": "addSymbol", "nodeType": "FunctionDefinition", "parameters": { - "id": 4831, + "id": 7284, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4830, + "id": 7283, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 4860, - "src": "185:14:17", + "scope": 7313, + "src": "223:14:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -619,10 +652,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 4829, + "id": 7282, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "185:7:17", + "src": "223:7:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -632,26 +665,26 @@ "visibility": "internal" } ], - "src": "184:16:17" + "src": "222:16:26" }, "payable": false, "returnParameters": { - "id": 4832, + "id": 7285, "nodeType": "ParameterList", "parameters": [], - "src": "208:0:17" + "src": "246:0:26" }, - "scope": 4949, - "src": "166:201:17", + "scope": 7402, + "src": "204:201:26", "stateMutability": "nonpayable", - "superFunction": null, + "superFunction": 7025, "visibility": "public" }, { "body": { - "id": 4889, + "id": 7342, "nodeType": "Block", - "src": "418:159:17", + "src": "456:159:26", "statements": [ { "expression": { @@ -661,26 +694,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 4866, + "id": 7319, "name": "symbols", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4828, - "src": "436:7:17", + "referencedDeclaration": 7281, + "src": "474:7:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 4868, + "id": 7321, "indexExpression": { "argumentTypes": null, - "id": 4867, + "id": 7320, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4862, - "src": "444:6:17", + "referencedDeclaration": 7315, + "src": "482:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -691,7 +724,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "436:15:17", + "src": "474:15:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -705,21 +738,21 @@ "typeString": "bool" } ], - "id": 4865, + "id": 7318, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "428:7:17", + "referencedDeclaration": 10045, + "src": "466:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 4869, + "id": 7322, "isConstant": false, "isLValue": false, "isPure": false, @@ -727,20 +760,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "428:24:17", + "src": "466:24:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4870, + "id": 7323, "nodeType": "ExpressionStatement", - "src": "428:24:17" + "src": "466:24:26" }, { "expression": { "argumentTypes": null, - "id": 4875, + "id": 7328, "isConstant": false, "isLValue": false, "isPure": false, @@ -749,26 +782,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 4871, + "id": 7324, "name": "symbols", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4828, - "src": "463:7:17", + "referencedDeclaration": 7281, + "src": "501:7:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 4873, + "id": 7326, "indexExpression": { "argumentTypes": null, - "id": 4872, + "id": 7325, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4862, - "src": "471:6:17", + "referencedDeclaration": 7315, + "src": "509:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -779,7 +812,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "463:15:17", + "src": "501:15:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -790,14 +823,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 4874, + "id": 7327, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "481:5:17", + "src": "519:5:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -805,15 +838,15 @@ }, "value": "false" }, - "src": "463:23:17", + "src": "501:23:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 4876, + "id": 7329, "nodeType": "ExpressionStatement", - "src": "463:23:17" + "src": "501:23:26" }, { "expression": { @@ -823,26 +856,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 4878, + "id": 7331, "name": "symbolIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4824, - "src": "517:11:17", + "referencedDeclaration": 7277, + "src": "555:11:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 4880, + "id": 7333, "indexExpression": { "argumentTypes": null, - "id": 4879, + "id": 7332, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4862, - "src": "529:6:17", + "referencedDeclaration": 7315, + "src": "567:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -853,7 +886,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "517:19:17", + "src": "555:19:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -867,18 +900,18 @@ "typeString": "uint256" } ], - "id": 4877, + "id": 7330, "name": "_removeSymbolByIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4948, - "src": "496:20:17", + "referencedDeclaration": 7401, + "src": "534:20:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 4881, + "id": 7334, "isConstant": false, "isLValue": false, "isPure": false, @@ -886,20 +919,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "496:41:17", + "src": "534:41:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4882, + "id": 7335, "nodeType": "ExpressionStatement", - "src": "496:41:17" + "src": "534:41:26" }, { "expression": { "argumentTypes": null, - "id": 4887, + "id": 7340, "isConstant": false, "isLValue": false, "isPure": false, @@ -908,26 +941,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 4883, + "id": 7336, "name": "symbolIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4824, - "src": "547:11:17", + "referencedDeclaration": 7277, + "src": "585:11:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 4885, + "id": 7338, "indexExpression": { "argumentTypes": null, - "id": 4884, + "id": 7337, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4862, - "src": "559:6:17", + "referencedDeclaration": 7315, + "src": "597:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -938,7 +971,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "547:19:17", + "src": "585:19:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -949,14 +982,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 4886, + "id": 7339, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "569:1:17", + "src": "607:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -964,20 +997,20 @@ }, "value": "0" }, - "src": "547:23:17", + "src": "585:23:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 4888, + "id": 7341, "nodeType": "ExpressionStatement", - "src": "547:23:17" + "src": "585:23:26" } ] }, "documentation": null, - "id": 4890, + "id": 7343, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -985,16 +1018,16 @@ "name": "removeSymbol", "nodeType": "FunctionDefinition", "parameters": { - "id": 4863, + "id": 7316, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4862, + "id": 7315, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 4890, - "src": "395:14:17", + "scope": 7343, + "src": "433:14:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1002,10 +1035,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 4861, + "id": 7314, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "395:7:17", + "src": "433:7:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1015,52 +1048,52 @@ "visibility": "internal" } ], - "src": "394:16:17" + "src": "432:16:26" }, "payable": false, "returnParameters": { - "id": 4864, + "id": 7317, "nodeType": "ParameterList", "parameters": [], - "src": "418:0:17" + "src": "456:0:26" }, - "scope": 4949, - "src": "373:204:17", + "scope": 7402, + "src": "411:204:26", "stateMutability": "nonpayable", - "superFunction": null, + "superFunction": 7030, "visibility": "public" }, { "body": { - "id": 4901, + "id": 7354, "nodeType": "Block", - "src": "644:39:17", + "src": "682:39:26", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 4897, + "id": 7350, "name": "symbols", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4828, - "src": "661:7:17", + "referencedDeclaration": 7281, + "src": "699:7:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 4899, + "id": 7352, "indexExpression": { "argumentTypes": null, - "id": 4898, + "id": 7351, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4892, - "src": "669:6:17", + "referencedDeclaration": 7345, + "src": "707:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1071,21 +1104,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "661:15:17", + "src": "699:15:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 4896, - "id": 4900, + "functionReturnParameters": 7349, + "id": 7353, "nodeType": "Return", - "src": "654:22:17" + "src": "692:22:26" } ] }, "documentation": null, - "id": 4902, + "id": 7355, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1093,16 +1126,16 @@ "name": "hasSymbol", "nodeType": "FunctionDefinition", "parameters": { - "id": 4893, + "id": 7346, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4892, + "id": 7345, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 4902, - "src": "602:14:17", + "scope": 7355, + "src": "640:14:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1110,10 +1143,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 4891, + "id": 7344, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "602:7:17", + "src": "640:7:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1123,20 +1156,20 @@ "visibility": "internal" } ], - "src": "601:16:17" + "src": "639:16:26" }, "payable": false, "returnParameters": { - "id": 4896, + "id": 7349, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4895, + "id": 7348, "name": "", "nodeType": "VariableDeclaration", - "scope": 4902, - "src": "638:4:17", + "scope": 7355, + "src": "676:4:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1144,10 +1177,10 @@ "typeString": "bool" }, "typeName": { - "id": 4894, + "id": 7347, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "638:4:17", + "src": "676:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1157,43 +1190,43 @@ "visibility": "internal" } ], - "src": "637:6:17" + "src": "675:6:26" }, - "scope": 4949, - "src": "583:100:17", + "scope": 7402, + "src": "621:100:26", "stateMutability": "view", - "superFunction": null, + "superFunction": 7037, "visibility": "public" }, { "body": { - "id": 4910, + "id": 7363, "nodeType": "Block", - "src": "746:35:17", + "src": "784:35:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 4908, + "id": 7361, "name": "symbolsList", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4820, - "src": "763:11:17", + "referencedDeclaration": 7273, + "src": "801:11:26", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "functionReturnParameters": 4907, - "id": 4909, + "functionReturnParameters": 7360, + "id": 7362, "nodeType": "Return", - "src": "756:18:17" + "src": "794:18:26" } ] }, "documentation": null, - "id": 4911, + "id": 7364, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1201,23 +1234,23 @@ "name": "getSymbolsList", "nodeType": "FunctionDefinition", "parameters": { - "id": 4903, + "id": 7356, "nodeType": "ParameterList", "parameters": [], - "src": "712:2:17" + "src": "750:2:26" }, "payable": false, "returnParameters": { - "id": 4907, + "id": 7360, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4906, + "id": 7359, "name": "", "nodeType": "VariableDeclaration", - "scope": 4911, - "src": "735:9:17", + "scope": 7364, + "src": "773:9:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1226,19 +1259,19 @@ }, "typeName": { "baseType": { - "id": 4904, + "id": 7357, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "735:7:17", + "src": "773:7:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 4905, + "id": 7358, "length": null, "nodeType": "ArrayTypeName", - "src": "735:9:17", + "src": "773:9:26", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -1248,19 +1281,19 @@ "visibility": "internal" } ], - "src": "734:11:17" + "src": "772:11:26" }, - "scope": 4949, - "src": "689:92:17", + "scope": 7402, + "src": "727:92:26", "stateMutability": "view", - "superFunction": null, + "superFunction": 7043, "visibility": "public" }, { "body": { - "id": 4947, + "id": 7400, "nodeType": "Block", - "src": "838:211:17", + "src": "876:211:26", "statements": [ { "expression": { @@ -1272,19 +1305,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4920, + "id": 7373, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 4917, + "id": 7370, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4913, - "src": "856:5:17", + "referencedDeclaration": 7366, + "src": "894:5:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1296,18 +1329,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4918, + "id": 7371, "name": "symbolsList", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4820, - "src": "864:11:17", + "referencedDeclaration": 7273, + "src": "902:11:26", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 4919, + "id": 7372, "isConstant": false, "isLValue": true, "isPure": false, @@ -1315,13 +1348,13 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "864:18:17", + "src": "902:18:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "856:26:17", + "src": "894:26:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1335,21 +1368,21 @@ "typeString": "bool" } ], - "id": 4916, + "id": 7369, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "848:7:17", + "referencedDeclaration": 10045, + "src": "886:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 4921, + "id": 7374, "isConstant": false, "isLValue": false, "isPure": false, @@ -1357,15 +1390,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "848:35:17", + "src": "886:35:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4922, + "id": 7375, "nodeType": "ExpressionStatement", - "src": "848:35:17" + "src": "886:35:26" }, { "condition": { @@ -1374,19 +1407,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4928, + "id": 7381, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 4923, + "id": 7376, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4913, - "src": "898:5:17", + "referencedDeclaration": 7366, + "src": "936:5:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1400,7 +1433,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4927, + "id": 7380, "isConstant": false, "isLValue": false, "isPure": false, @@ -1409,18 +1442,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4924, + "id": 7377, "name": "symbolsList", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4820, - "src": "907:11:17", + "referencedDeclaration": 7273, + "src": "945:11:26", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 4925, + "id": 7378, "isConstant": false, "isLValue": true, "isPure": false, @@ -1428,7 +1461,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "907:18:17", + "src": "945:18:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1439,14 +1472,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 4926, + "id": 7379, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "928:1:17", + "src": "966:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -1454,31 +1487,31 @@ }, "value": "1" }, - "src": "907:22:17", + "src": "945:22:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "898:31:17", + "src": "936:31:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 4941, + "id": 7394, "nodeType": "IfStatement", - "src": "894:118:17", + "src": "932:118:26", "trueBody": { - "id": 4940, + "id": 7393, "nodeType": "Block", - "src": "931:81:17", + "src": "969:81:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 4938, + "id": 7391, "isConstant": false, "isLValue": false, "isPure": false, @@ -1487,26 +1520,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 4929, + "id": 7382, "name": "symbolsList", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4820, - "src": "945:11:17", + "referencedDeclaration": 7273, + "src": "983:11:26", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 4931, + "id": 7384, "indexExpression": { "argumentTypes": null, - "id": 4930, + "id": 7383, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4913, - "src": "957:5:17", + "referencedDeclaration": 7366, + "src": "995:5:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1517,7 +1550,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "945:18:17", + "src": "983:18:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1529,25 +1562,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 4932, + "id": 7385, "name": "symbolsList", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4820, - "src": "966:11:17", + "referencedDeclaration": 7273, + "src": "1004:11:26", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 4937, + "id": 7390, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4936, + "id": 7389, "isConstant": false, "isLValue": false, "isPure": false, @@ -1556,18 +1589,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4933, + "id": 7386, "name": "symbolsList", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4820, - "src": "978:11:17", + "referencedDeclaration": 7273, + "src": "1016:11:26", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 4934, + "id": 7387, "isConstant": false, "isLValue": true, "isPure": false, @@ -1575,7 +1608,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "978:18:17", + "src": "1016:18:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1586,14 +1619,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 4935, + "id": 7388, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "999:1:17", + "src": "1037:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -1601,7 +1634,7 @@ }, "value": "1" }, - "src": "978:22:17", + "src": "1016:22:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1612,21 +1645,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "966:35:17", + "src": "1004:35:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "945:56:17", + "src": "983:56:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 4939, + "id": 7392, "nodeType": "ExpressionStatement", - "src": "945:56:17" + "src": "983:56:26" } ] } @@ -1634,7 +1667,7 @@ { "expression": { "argumentTypes": null, - "id": 4945, + "id": 7398, "isConstant": false, "isLValue": false, "isPure": false, @@ -1642,23 +1675,23 @@ "nodeType": "UnaryOperation", "operator": "--", "prefix": false, - "src": "1022:20:17", + "src": "1060:20:26", "subExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4942, + "id": 7395, "name": "symbolsList", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4820, - "src": "1022:11:17", + "referencedDeclaration": 7273, + "src": "1060:11:26", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 4944, + "id": 7397, "isConstant": false, "isLValue": true, "isPure": false, @@ -1666,7 +1699,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1022:18:17", + "src": "1060:18:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1677,14 +1710,14 @@ "typeString": "uint256" } }, - "id": 4946, + "id": 7399, "nodeType": "ExpressionStatement", - "src": "1022:20:17" + "src": "1060:20:26" } ] }, "documentation": null, - "id": 4948, + "id": 7401, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1692,16 +1725,16 @@ "name": "_removeSymbolByIndex", "nodeType": "FunctionDefinition", "parameters": { - "id": 4914, + "id": 7367, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4913, + "id": 7366, "name": "index", "nodeType": "VariableDeclaration", - "scope": 4948, - "src": "817:10:17", + "scope": 7401, + "src": "855:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1709,10 +1742,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4912, + "id": 7365, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "817:4:17", + "src": "855:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1722,40 +1755,40 @@ "visibility": "internal" } ], - "src": "816:12:17" + "src": "854:12:26" }, "payable": false, "returnParameters": { - "id": 4915, + "id": 7368, "nodeType": "ParameterList", "parameters": [], - "src": "838:0:17" + "src": "876:0:26" }, - "scope": 4949, - "src": "787:262:17", + "scope": 7402, + "src": "825:262:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" } ], - "scope": 4950, - "src": "26:1025:17" + "scope": 7403, + "src": "52:1037:26" } ], - "src": "0:1052:17" + "src": "0:1090:26" }, "legacyAST": { "absolutePath": "/home/circleci/code/contracts/rates/Symbols.sol", "exportedSymbols": { "Symbols": [ - 4949 + 7402 ] }, - "id": 4950, + "id": 7403, "nodeType": "SourceUnit", "nodes": [ { - "id": 4817, + "id": 7267, "literals": [ "solidity", "^", @@ -1763,28 +1796,61 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:17" + "src": "0:24:26" }, { - "baseContracts": [], - "contractDependencies": [], + "absolutePath": "/home/circleci/code/contracts/rates/ISymbols.sol", + "file": "./ISymbols.sol", + "id": 7268, + "nodeType": "ImportDirective", + "scope": 7403, + "sourceUnit": 7045, + "src": "26:24:26", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 7269, + "name": "ISymbols", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7044, + "src": "72:8:26", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ISymbols_$7044", + "typeString": "contract ISymbols" + } + }, + "id": 7270, + "nodeType": "InheritanceSpecifier", + "src": "72:8:26" + } + ], + "contractDependencies": [ + 7044 + ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 4949, + "id": 7402, "linearizedBaseContracts": [ - 4949 + 7402, + 7044 ], "name": "Symbols", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 4820, + "id": 7273, "name": "symbolsList", "nodeType": "VariableDeclaration", - "scope": 4949, - "src": "49:28:17", + "scope": 7402, + "src": "87:28:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1793,19 +1859,19 @@ }, "typeName": { "baseType": { - "id": 4818, + "id": 7271, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "49:7:17", + "src": "87:7:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 4819, + "id": 7272, "length": null, "nodeType": "ArrayTypeName", - "src": "49:9:17", + "src": "87:9:26", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -1816,11 +1882,11 @@ }, { "constant": false, - "id": 4824, + "id": 7277, "name": "symbolIndex", "nodeType": "VariableDeclaration", - "scope": 4949, - "src": "83:37:17", + "scope": 7402, + "src": "121:37:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1828,28 +1894,28 @@ "typeString": "mapping(bytes32 => uint256)" }, "typeName": { - "id": 4823, + "id": 7276, "keyType": { - "id": 4821, + "id": 7274, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "92:7:17", + "src": "130:7:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "83:25:17", + "src": "121:25:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" }, "valueType": { - "id": 4822, + "id": 7275, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "103:4:17", + "src": "141:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1861,11 +1927,11 @@ }, { "constant": false, - "id": 4828, + "id": 7281, "name": "symbols", "nodeType": "VariableDeclaration", - "scope": 4949, - "src": "126:33:17", + "scope": 7402, + "src": "164:33:26", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1873,28 +1939,28 @@ "typeString": "mapping(bytes32 => bool)" }, "typeName": { - "id": 4827, + "id": 7280, "keyType": { - "id": 4825, + "id": 7278, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "135:7:17", + "src": "173:7:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "126:25:17", + "src": "164:25:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" }, "valueType": { - "id": 4826, + "id": 7279, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "146:4:17", + "src": "184:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1906,9 +1972,9 @@ }, { "body": { - "id": 4859, + "id": 7312, "nodeType": "Block", - "src": "208:159:17", + "src": "246:159:26", "statements": [ { "expression": { @@ -1916,7 +1982,7 @@ "arguments": [ { "argumentTypes": null, - "id": 4837, + "id": 7290, "isConstant": false, "isLValue": false, "isPure": false, @@ -1924,31 +1990,31 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "226:16:17", + "src": "264:16:26", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 4834, + "id": 7287, "name": "symbols", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4828, - "src": "227:7:17", + "referencedDeclaration": 7281, + "src": "265:7:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 4836, + "id": 7289, "indexExpression": { "argumentTypes": null, - "id": 4835, + "id": 7288, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4830, - "src": "235:6:17", + "referencedDeclaration": 7283, + "src": "273:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1959,7 +2025,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "227:15:17", + "src": "265:15:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1978,21 +2044,21 @@ "typeString": "bool" } ], - "id": 4833, + "id": 7286, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "218:7:17", + "referencedDeclaration": 10045, + "src": "256:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 4838, + "id": 7291, "isConstant": false, "isLValue": false, "isPure": false, @@ -2000,20 +2066,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "218:25:17", + "src": "256:25:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4839, + "id": 7292, "nodeType": "ExpressionStatement", - "src": "218:25:17" + "src": "256:25:26" }, { "expression": { "argumentTypes": null, - "id": 4844, + "id": 7297, "isConstant": false, "isLValue": false, "isPure": false, @@ -2022,26 +2088,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 4840, + "id": 7293, "name": "symbols", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4828, - "src": "254:7:17", + "referencedDeclaration": 7281, + "src": "292:7:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 4842, + "id": 7295, "indexExpression": { "argumentTypes": null, - "id": 4841, + "id": 7294, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4830, - "src": "262:6:17", + "referencedDeclaration": 7283, + "src": "300:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2052,7 +2118,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "254:15:17", + "src": "292:15:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2063,14 +2129,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 4843, + "id": 7296, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "272:4:17", + "src": "310:4:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2078,20 +2144,20 @@ }, "value": "true" }, - "src": "254:22:17", + "src": "292:22:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 4845, + "id": 7298, "nodeType": "ExpressionStatement", - "src": "254:22:17" + "src": "292:22:26" }, { "expression": { "argumentTypes": null, - "id": 4851, + "id": 7304, "isConstant": false, "isLValue": false, "isPure": false, @@ -2100,26 +2166,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 4846, + "id": 7299, "name": "symbolIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4824, - "src": "286:11:17", + "referencedDeclaration": 7277, + "src": "324:11:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 4848, + "id": 7301, "indexExpression": { "argumentTypes": null, - "id": 4847, + "id": 7300, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4830, - "src": "298:6:17", + "referencedDeclaration": 7283, + "src": "336:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2130,7 +2196,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "286:19:17", + "src": "324:19:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2142,18 +2208,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4849, + "id": 7302, "name": "symbolsList", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4820, - "src": "308:11:17", + "referencedDeclaration": 7273, + "src": "346:11:26", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 4850, + "id": 7303, "isConstant": false, "isLValue": true, "isPure": false, @@ -2161,21 +2227,21 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "308:18:17", + "src": "346:18:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "286:40:17", + "src": "324:40:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 4852, + "id": 7305, "nodeType": "ExpressionStatement", - "src": "286:40:17" + "src": "324:40:26" }, { "expression": { @@ -2183,12 +2249,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4856, + "id": 7309, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4830, - "src": "353:6:17", + "referencedDeclaration": 7283, + "src": "391:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2204,18 +2270,18 @@ ], "expression": { "argumentTypes": null, - "id": 4853, + "id": 7306, "name": "symbolsList", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4820, - "src": "336:11:17", + "referencedDeclaration": 7273, + "src": "374:11:26", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 4855, + "id": 7308, "isConstant": false, "isLValue": false, "isPure": false, @@ -2223,13 +2289,13 @@ "memberName": "push", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "336:16:17", + "src": "374:16:26", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_bytes32_$returns$_t_uint256_$", "typeString": "function (bytes32) returns (uint256)" } }, - "id": 4857, + "id": 7310, "isConstant": false, "isLValue": false, "isPure": false, @@ -2237,20 +2303,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "336:24:17", + "src": "374:24:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 4858, + "id": 7311, "nodeType": "ExpressionStatement", - "src": "336:24:17" + "src": "374:24:26" } ] }, "documentation": null, - "id": 4860, + "id": 7313, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -2258,16 +2324,16 @@ "name": "addSymbol", "nodeType": "FunctionDefinition", "parameters": { - "id": 4831, + "id": 7284, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4830, + "id": 7283, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 4860, - "src": "185:14:17", + "scope": 7313, + "src": "223:14:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2275,10 +2341,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 4829, + "id": 7282, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "185:7:17", + "src": "223:7:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2288,26 +2354,26 @@ "visibility": "internal" } ], - "src": "184:16:17" + "src": "222:16:26" }, "payable": false, "returnParameters": { - "id": 4832, + "id": 7285, "nodeType": "ParameterList", "parameters": [], - "src": "208:0:17" + "src": "246:0:26" }, - "scope": 4949, - "src": "166:201:17", + "scope": 7402, + "src": "204:201:26", "stateMutability": "nonpayable", - "superFunction": null, + "superFunction": 7025, "visibility": "public" }, { "body": { - "id": 4889, + "id": 7342, "nodeType": "Block", - "src": "418:159:17", + "src": "456:159:26", "statements": [ { "expression": { @@ -2317,26 +2383,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 4866, + "id": 7319, "name": "symbols", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4828, - "src": "436:7:17", + "referencedDeclaration": 7281, + "src": "474:7:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 4868, + "id": 7321, "indexExpression": { "argumentTypes": null, - "id": 4867, + "id": 7320, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4862, - "src": "444:6:17", + "referencedDeclaration": 7315, + "src": "482:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2347,7 +2413,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "436:15:17", + "src": "474:15:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2361,21 +2427,21 @@ "typeString": "bool" } ], - "id": 4865, + "id": 7318, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "428:7:17", + "referencedDeclaration": 10045, + "src": "466:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 4869, + "id": 7322, "isConstant": false, "isLValue": false, "isPure": false, @@ -2383,20 +2449,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "428:24:17", + "src": "466:24:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4870, + "id": 7323, "nodeType": "ExpressionStatement", - "src": "428:24:17" + "src": "466:24:26" }, { "expression": { "argumentTypes": null, - "id": 4875, + "id": 7328, "isConstant": false, "isLValue": false, "isPure": false, @@ -2405,26 +2471,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 4871, + "id": 7324, "name": "symbols", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4828, - "src": "463:7:17", + "referencedDeclaration": 7281, + "src": "501:7:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 4873, + "id": 7326, "indexExpression": { "argumentTypes": null, - "id": 4872, + "id": 7325, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4862, - "src": "471:6:17", + "referencedDeclaration": 7315, + "src": "509:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2435,7 +2501,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "463:15:17", + "src": "501:15:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2446,14 +2512,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 4874, + "id": 7327, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "481:5:17", + "src": "519:5:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2461,15 +2527,15 @@ }, "value": "false" }, - "src": "463:23:17", + "src": "501:23:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 4876, + "id": 7329, "nodeType": "ExpressionStatement", - "src": "463:23:17" + "src": "501:23:26" }, { "expression": { @@ -2479,26 +2545,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 4878, + "id": 7331, "name": "symbolIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4824, - "src": "517:11:17", + "referencedDeclaration": 7277, + "src": "555:11:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 4880, + "id": 7333, "indexExpression": { "argumentTypes": null, - "id": 4879, + "id": 7332, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4862, - "src": "529:6:17", + "referencedDeclaration": 7315, + "src": "567:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2509,7 +2575,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "517:19:17", + "src": "555:19:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2523,18 +2589,18 @@ "typeString": "uint256" } ], - "id": 4877, + "id": 7330, "name": "_removeSymbolByIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4948, - "src": "496:20:17", + "referencedDeclaration": 7401, + "src": "534:20:26", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 4881, + "id": 7334, "isConstant": false, "isLValue": false, "isPure": false, @@ -2542,20 +2608,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "496:41:17", + "src": "534:41:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4882, + "id": 7335, "nodeType": "ExpressionStatement", - "src": "496:41:17" + "src": "534:41:26" }, { "expression": { "argumentTypes": null, - "id": 4887, + "id": 7340, "isConstant": false, "isLValue": false, "isPure": false, @@ -2564,26 +2630,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 4883, + "id": 7336, "name": "symbolIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4824, - "src": "547:11:17", + "referencedDeclaration": 7277, + "src": "585:11:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 4885, + "id": 7338, "indexExpression": { "argumentTypes": null, - "id": 4884, + "id": 7337, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4862, - "src": "559:6:17", + "referencedDeclaration": 7315, + "src": "597:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2594,7 +2660,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "547:19:17", + "src": "585:19:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2605,14 +2671,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 4886, + "id": 7339, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "569:1:17", + "src": "607:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2620,20 +2686,20 @@ }, "value": "0" }, - "src": "547:23:17", + "src": "585:23:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 4888, + "id": 7341, "nodeType": "ExpressionStatement", - "src": "547:23:17" + "src": "585:23:26" } ] }, "documentation": null, - "id": 4890, + "id": 7343, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -2641,16 +2707,16 @@ "name": "removeSymbol", "nodeType": "FunctionDefinition", "parameters": { - "id": 4863, + "id": 7316, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4862, + "id": 7315, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 4890, - "src": "395:14:17", + "scope": 7343, + "src": "433:14:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2658,10 +2724,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 4861, + "id": 7314, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "395:7:17", + "src": "433:7:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2671,52 +2737,52 @@ "visibility": "internal" } ], - "src": "394:16:17" + "src": "432:16:26" }, "payable": false, "returnParameters": { - "id": 4864, + "id": 7317, "nodeType": "ParameterList", "parameters": [], - "src": "418:0:17" + "src": "456:0:26" }, - "scope": 4949, - "src": "373:204:17", + "scope": 7402, + "src": "411:204:26", "stateMutability": "nonpayable", - "superFunction": null, + "superFunction": 7030, "visibility": "public" }, { "body": { - "id": 4901, + "id": 7354, "nodeType": "Block", - "src": "644:39:17", + "src": "682:39:26", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 4897, + "id": 7350, "name": "symbols", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4828, - "src": "661:7:17", + "referencedDeclaration": 7281, + "src": "699:7:26", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 4899, + "id": 7352, "indexExpression": { "argumentTypes": null, - "id": 4898, + "id": 7351, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4892, - "src": "669:6:17", + "referencedDeclaration": 7345, + "src": "707:6:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2727,21 +2793,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "661:15:17", + "src": "699:15:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 4896, - "id": 4900, + "functionReturnParameters": 7349, + "id": 7353, "nodeType": "Return", - "src": "654:22:17" + "src": "692:22:26" } ] }, "documentation": null, - "id": 4902, + "id": 7355, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2749,16 +2815,16 @@ "name": "hasSymbol", "nodeType": "FunctionDefinition", "parameters": { - "id": 4893, + "id": 7346, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4892, + "id": 7345, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 4902, - "src": "602:14:17", + "scope": 7355, + "src": "640:14:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2766,10 +2832,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 4891, + "id": 7344, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "602:7:17", + "src": "640:7:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2779,20 +2845,20 @@ "visibility": "internal" } ], - "src": "601:16:17" + "src": "639:16:26" }, "payable": false, "returnParameters": { - "id": 4896, + "id": 7349, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4895, + "id": 7348, "name": "", "nodeType": "VariableDeclaration", - "scope": 4902, - "src": "638:4:17", + "scope": 7355, + "src": "676:4:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2800,10 +2866,10 @@ "typeString": "bool" }, "typeName": { - "id": 4894, + "id": 7347, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "638:4:17", + "src": "676:4:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2813,43 +2879,43 @@ "visibility": "internal" } ], - "src": "637:6:17" + "src": "675:6:26" }, - "scope": 4949, - "src": "583:100:17", + "scope": 7402, + "src": "621:100:26", "stateMutability": "view", - "superFunction": null, + "superFunction": 7037, "visibility": "public" }, { "body": { - "id": 4910, + "id": 7363, "nodeType": "Block", - "src": "746:35:17", + "src": "784:35:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 4908, + "id": 7361, "name": "symbolsList", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4820, - "src": "763:11:17", + "referencedDeclaration": 7273, + "src": "801:11:26", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "functionReturnParameters": 4907, - "id": 4909, + "functionReturnParameters": 7360, + "id": 7362, "nodeType": "Return", - "src": "756:18:17" + "src": "794:18:26" } ] }, "documentation": null, - "id": 4911, + "id": 7364, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2857,23 +2923,23 @@ "name": "getSymbolsList", "nodeType": "FunctionDefinition", "parameters": { - "id": 4903, + "id": 7356, "nodeType": "ParameterList", "parameters": [], - "src": "712:2:17" + "src": "750:2:26" }, "payable": false, "returnParameters": { - "id": 4907, + "id": 7360, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4906, + "id": 7359, "name": "", "nodeType": "VariableDeclaration", - "scope": 4911, - "src": "735:9:17", + "scope": 7364, + "src": "773:9:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2882,19 +2948,19 @@ }, "typeName": { "baseType": { - "id": 4904, + "id": 7357, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "735:7:17", + "src": "773:7:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 4905, + "id": 7358, "length": null, "nodeType": "ArrayTypeName", - "src": "735:9:17", + "src": "773:9:26", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -2904,19 +2970,19 @@ "visibility": "internal" } ], - "src": "734:11:17" + "src": "772:11:26" }, - "scope": 4949, - "src": "689:92:17", + "scope": 7402, + "src": "727:92:26", "stateMutability": "view", - "superFunction": null, + "superFunction": 7043, "visibility": "public" }, { "body": { - "id": 4947, + "id": 7400, "nodeType": "Block", - "src": "838:211:17", + "src": "876:211:26", "statements": [ { "expression": { @@ -2928,19 +2994,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4920, + "id": 7373, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 4917, + "id": 7370, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4913, - "src": "856:5:17", + "referencedDeclaration": 7366, + "src": "894:5:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2952,18 +3018,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4918, + "id": 7371, "name": "symbolsList", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4820, - "src": "864:11:17", + "referencedDeclaration": 7273, + "src": "902:11:26", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 4919, + "id": 7372, "isConstant": false, "isLValue": true, "isPure": false, @@ -2971,13 +3037,13 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "864:18:17", + "src": "902:18:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "856:26:17", + "src": "894:26:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2991,21 +3057,21 @@ "typeString": "bool" } ], - "id": 4916, + "id": 7369, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "848:7:17", + "referencedDeclaration": 10045, + "src": "886:7:26", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 4921, + "id": 7374, "isConstant": false, "isLValue": false, "isPure": false, @@ -3013,15 +3079,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "848:35:17", + "src": "886:35:26", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4922, + "id": 7375, "nodeType": "ExpressionStatement", - "src": "848:35:17" + "src": "886:35:26" }, { "condition": { @@ -3030,19 +3096,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4928, + "id": 7381, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 4923, + "id": 7376, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4913, - "src": "898:5:17", + "referencedDeclaration": 7366, + "src": "936:5:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3056,7 +3122,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4927, + "id": 7380, "isConstant": false, "isLValue": false, "isPure": false, @@ -3065,18 +3131,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4924, + "id": 7377, "name": "symbolsList", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4820, - "src": "907:11:17", + "referencedDeclaration": 7273, + "src": "945:11:26", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 4925, + "id": 7378, "isConstant": false, "isLValue": true, "isPure": false, @@ -3084,7 +3150,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "907:18:17", + "src": "945:18:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3095,14 +3161,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 4926, + "id": 7379, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "928:1:17", + "src": "966:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -3110,31 +3176,31 @@ }, "value": "1" }, - "src": "907:22:17", + "src": "945:22:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "898:31:17", + "src": "936:31:26", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 4941, + "id": 7394, "nodeType": "IfStatement", - "src": "894:118:17", + "src": "932:118:26", "trueBody": { - "id": 4940, + "id": 7393, "nodeType": "Block", - "src": "931:81:17", + "src": "969:81:26", "statements": [ { "expression": { "argumentTypes": null, - "id": 4938, + "id": 7391, "isConstant": false, "isLValue": false, "isPure": false, @@ -3143,26 +3209,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 4929, + "id": 7382, "name": "symbolsList", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4820, - "src": "945:11:17", + "referencedDeclaration": 7273, + "src": "983:11:26", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 4931, + "id": 7384, "indexExpression": { "argumentTypes": null, - "id": 4930, + "id": 7383, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4913, - "src": "957:5:17", + "referencedDeclaration": 7366, + "src": "995:5:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3173,7 +3239,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "945:18:17", + "src": "983:18:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3185,25 +3251,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 4932, + "id": 7385, "name": "symbolsList", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4820, - "src": "966:11:17", + "referencedDeclaration": 7273, + "src": "1004:11:26", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 4937, + "id": 7390, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4936, + "id": 7389, "isConstant": false, "isLValue": false, "isPure": false, @@ -3212,18 +3278,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4933, + "id": 7386, "name": "symbolsList", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4820, - "src": "978:11:17", + "referencedDeclaration": 7273, + "src": "1016:11:26", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 4934, + "id": 7387, "isConstant": false, "isLValue": true, "isPure": false, @@ -3231,7 +3297,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "978:18:17", + "src": "1016:18:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3242,14 +3308,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 4935, + "id": 7388, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "999:1:17", + "src": "1037:1:26", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -3257,7 +3323,7 @@ }, "value": "1" }, - "src": "978:22:17", + "src": "1016:22:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3268,21 +3334,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "966:35:17", + "src": "1004:35:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "945:56:17", + "src": "983:56:26", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 4939, + "id": 7392, "nodeType": "ExpressionStatement", - "src": "945:56:17" + "src": "983:56:26" } ] } @@ -3290,7 +3356,7 @@ { "expression": { "argumentTypes": null, - "id": 4945, + "id": 7398, "isConstant": false, "isLValue": false, "isPure": false, @@ -3298,23 +3364,23 @@ "nodeType": "UnaryOperation", "operator": "--", "prefix": false, - "src": "1022:20:17", + "src": "1060:20:26", "subExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4942, + "id": 7395, "name": "symbolsList", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4820, - "src": "1022:11:17", + "referencedDeclaration": 7273, + "src": "1060:11:26", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 4944, + "id": 7397, "isConstant": false, "isLValue": true, "isPure": false, @@ -3322,7 +3388,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1022:18:17", + "src": "1060:18:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3333,14 +3399,14 @@ "typeString": "uint256" } }, - "id": 4946, + "id": 7399, "nodeType": "ExpressionStatement", - "src": "1022:20:17" + "src": "1060:20:26" } ] }, "documentation": null, - "id": 4948, + "id": 7401, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -3348,16 +3414,16 @@ "name": "_removeSymbolByIndex", "nodeType": "FunctionDefinition", "parameters": { - "id": 4914, + "id": 7367, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4913, + "id": 7366, "name": "index", "nodeType": "VariableDeclaration", - "scope": 4948, - "src": "817:10:17", + "scope": 7401, + "src": "855:10:26", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3365,10 +3431,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4912, + "id": 7365, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "817:4:17", + "src": "855:4:26", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3378,27 +3444,27 @@ "visibility": "internal" } ], - "src": "816:12:17" + "src": "854:12:26" }, "payable": false, "returnParameters": { - "id": 4915, + "id": 7368, "nodeType": "ParameterList", "parameters": [], - "src": "838:0:17" + "src": "876:0:26" }, - "scope": 4949, - "src": "787:262:17", + "scope": 7402, + "src": "825:262:26", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" } ], - "scope": 4950, - "src": "26:1025:17" + "scope": 7403, + "src": "52:1037:26" } ], - "src": "0:1052:17" + "src": "0:1090:26" }, "compiler": { "name": "solc", @@ -3406,5 +3472,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-02T11:52:56.761Z" + "updatedAt": "2018-10-22T07:56:01.577Z" } \ No newline at end of file diff --git a/build/contracts/TokenExchanger.json b/build/contracts/TokenExchanger.json index e2239f98..fe3c9b0b 100644 --- a/build/contracts/TokenExchanger.json +++ b/build/contracts/TokenExchanger.json @@ -282,24 +282,24 @@ "type": "function" } ], - "bytecode": "0x6080604052600160025534801561001557600080fd5b506040516020806108d5833981016040525160005560018054600160a060020a0319163317905561088a8061004b6000396000f3006080604052600436106100a05763ffffffff60e060020a600035041663045d038981146100a5578063151f3734146100cb57806354fd4d5014610108578063715018a61461012f5780638da5cb5b14610144578063a073691214610159578063cf05039514610180578063cf0a7b4d146101a1578063e1f21c67146101c2578063e2601a5714610200578063f2fde38b14610221578063ff740c1d14610242575b600080fd5b3480156100b157600080fd5b506100c9600160a060020a0360043516602435610269565b005b3480156100d757600080fd5b506100ec600160a060020a0360043516610355565b60408051600160a060020a039092168252519081900360200190f35b34801561011457600080fd5b5061011d61038b565b60408051918252519081900360200190f35b34801561013b57600080fd5b506100c9610391565b34801561015057600080fd5b506100ec6103ff565b34801561016557600080fd5b506100c9600160a060020a036004358116906024351661040e565b34801561018c57600080fd5b506100ec600160a060020a03600435166104ee565b3480156101ad57600080fd5b506100ec600160a060020a0360043516610524565b3480156101ce57600080fd5b506101ec600160a060020a036004358116906024351660443561053f565b604080519115158252519081900360200190f35b34801561020c57600080fd5b506100ec600160a060020a03600435166105f0565b34801561022d57600080fd5b506100c9600160a060020a036004351661060b565b34801561024e57600080fd5b506101ec600160a060020a036004358116906024351661062e565b60025460009060011461027b57600080fd5b600280556000821161028c57600080fd5b600160a060020a03831615156102a157600080fd5b6102aa836104ee565b9050600160a060020a03811615156102c157600080fd5b6102dc600160a060020a03841633308563ffffffff61069016565b6102f6600160a060020a038216338463ffffffff61074116565b33600160a060020a031681600160a060020a031684600160a060020a03167f8f76119a2ce416e7cb071f59d5029dac674dfc46b4c245219902c862465d2037856040518082815260200191505060405180910390a45050600160025550565b6000600160a060020a038216151561036c57600080fd5b50600160a060020a039081166000908152600360205260409020541690565b60005481565b600154600160a060020a031633146103a857600080fd5b600154604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26001805473ffffffffffffffffffffffffffffffffffffffff19169055565b600154600160a060020a031681565b600154600160a060020a0316331461042557600080fd5b600160a060020a038216151561043a57600080fd5b600160a060020a038116151561044f57600080fd5b600160a060020a03828116908216141561046857600080fd5b610472828261062e565b1561047c57600080fd5b600160a060020a03918216600081815260036020908152604080832080549690951673ffffffffffffffffffffffffffffffffffffffff19968716811790955584835260048252808320805490961684179095559181526005825283812092815291905220805460ff19166001179055565b6000600160a060020a038216151561050557600080fd5b50600160a060020a039081166000908152600460205260409020541690565b600460205260009081526040902054600160a060020a031681565b600154600090600160a060020a0316331461055957600080fd5b83600160a060020a031663095ea7b384846040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b1580156105bc57600080fd5b505af11580156105d0573d6000803e3d6000fd5b505050506040513d60208110156105e657600080fd5b5051949350505050565b600360205260009081526040902054600160a060020a031681565b600154600160a060020a0316331461062257600080fd5b61062b816107e0565b50565b600160a060020a03808316600090815260056020908152604080832093851683529290529081205460ff16806106895750600160a060020a0380831660009081526005602090815260408083209387168352929052205460ff165b9392505050565b604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301528481166024830152604482018490529151918616916323b872dd916064808201926020929091908290030181600087803b15801561070457600080fd5b505af1158015610718573d6000803e3d6000fd5b505050506040513d602081101561072e57600080fd5b5051151561073b57600080fd5b50505050565b82600160a060020a031663a9059cbb83836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b1580156107a457600080fd5b505af11580156107b8573d6000803e3d6000fd5b505050506040513d60208110156107ce57600080fd5b505115156107db57600080fd5b505050565b600160a060020a03811615156107f557600080fd5b600154604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a7230582064e6c732dc0699573618d42ea0c9796db990b8f39dc3275cf9693ad7271575760029", - "deployedBytecode": "0x6080604052600436106100a05763ffffffff60e060020a600035041663045d038981146100a5578063151f3734146100cb57806354fd4d5014610108578063715018a61461012f5780638da5cb5b14610144578063a073691214610159578063cf05039514610180578063cf0a7b4d146101a1578063e1f21c67146101c2578063e2601a5714610200578063f2fde38b14610221578063ff740c1d14610242575b600080fd5b3480156100b157600080fd5b506100c9600160a060020a0360043516602435610269565b005b3480156100d757600080fd5b506100ec600160a060020a0360043516610355565b60408051600160a060020a039092168252519081900360200190f35b34801561011457600080fd5b5061011d61038b565b60408051918252519081900360200190f35b34801561013b57600080fd5b506100c9610391565b34801561015057600080fd5b506100ec6103ff565b34801561016557600080fd5b506100c9600160a060020a036004358116906024351661040e565b34801561018c57600080fd5b506100ec600160a060020a03600435166104ee565b3480156101ad57600080fd5b506100ec600160a060020a0360043516610524565b3480156101ce57600080fd5b506101ec600160a060020a036004358116906024351660443561053f565b604080519115158252519081900360200190f35b34801561020c57600080fd5b506100ec600160a060020a03600435166105f0565b34801561022d57600080fd5b506100c9600160a060020a036004351661060b565b34801561024e57600080fd5b506101ec600160a060020a036004358116906024351661062e565b60025460009060011461027b57600080fd5b600280556000821161028c57600080fd5b600160a060020a03831615156102a157600080fd5b6102aa836104ee565b9050600160a060020a03811615156102c157600080fd5b6102dc600160a060020a03841633308563ffffffff61069016565b6102f6600160a060020a038216338463ffffffff61074116565b33600160a060020a031681600160a060020a031684600160a060020a03167f8f76119a2ce416e7cb071f59d5029dac674dfc46b4c245219902c862465d2037856040518082815260200191505060405180910390a45050600160025550565b6000600160a060020a038216151561036c57600080fd5b50600160a060020a039081166000908152600360205260409020541690565b60005481565b600154600160a060020a031633146103a857600080fd5b600154604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26001805473ffffffffffffffffffffffffffffffffffffffff19169055565b600154600160a060020a031681565b600154600160a060020a0316331461042557600080fd5b600160a060020a038216151561043a57600080fd5b600160a060020a038116151561044f57600080fd5b600160a060020a03828116908216141561046857600080fd5b610472828261062e565b1561047c57600080fd5b600160a060020a03918216600081815260036020908152604080832080549690951673ffffffffffffffffffffffffffffffffffffffff19968716811790955584835260048252808320805490961684179095559181526005825283812092815291905220805460ff19166001179055565b6000600160a060020a038216151561050557600080fd5b50600160a060020a039081166000908152600460205260409020541690565b600460205260009081526040902054600160a060020a031681565b600154600090600160a060020a0316331461055957600080fd5b83600160a060020a031663095ea7b384846040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b1580156105bc57600080fd5b505af11580156105d0573d6000803e3d6000fd5b505050506040513d60208110156105e657600080fd5b5051949350505050565b600360205260009081526040902054600160a060020a031681565b600154600160a060020a0316331461062257600080fd5b61062b816107e0565b50565b600160a060020a03808316600090815260056020908152604080832093851683529290529081205460ff16806106895750600160a060020a0380831660009081526005602090815260408083209387168352929052205460ff165b9392505050565b604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301528481166024830152604482018490529151918616916323b872dd916064808201926020929091908290030181600087803b15801561070457600080fd5b505af1158015610718573d6000803e3d6000fd5b505050506040513d602081101561072e57600080fd5b5051151561073b57600080fd5b50505050565b82600160a060020a031663a9059cbb83836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b1580156107a457600080fd5b505af11580156107b8573d6000803e3d6000fd5b505050506040513d60208110156107ce57600080fd5b505115156107db57600080fd5b505050565b600160a060020a03811615156107f557600080fd5b600154604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a7230582064e6c732dc0699573618d42ea0c9796db990b8f39dc3275cf9693ad7271575760029", - "sourceMap": "381:2152:25:-;;;487:1:28;657:51;;806:56:25;8:9:-1;5:2;;;30:1;27;20:12;5:2;806:56:25;;;;;;;;;;;;;123:7:26;:18;567:5:31;:18;;-1:-1:-1;;;;;;567:18:31;575:10;567:18;;;381:2152:25;;;;;;", - "deployedSourceMap": "381:2152:25:-;;;;;;;;;-1:-1:-1;;;381:2152:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1918:613;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1918:613:25;-1:-1:-1;;;;;1918:613:25;;;;;;;;;1386:183;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1386:183:25;-1:-1:-1;;;;;1386:183:25;;;;;;;;;-1:-1:-1;;;;;1386:183:25;;;;;;;;;;;;;;53:19:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;53:19:26;;;;;;;;;;;;;;;;;;;;1001:111:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1001:111:31;;;;238:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:31;;;;868:364:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;868:364:25;-1:-1:-1;;;;;868:364:25;;;;;;;;;;1575:183;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1575:183:25;-1:-1:-1;;;;;1575:183:25;;;;;590:53;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;590:53:25;-1:-1:-1;;;;;590:53:25;;;;;1764:148;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1764:148:25;-1:-1:-1;;;;;1764:148:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;530:54;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;530:54:25;-1:-1:-1;;;;;530:54:25;;;;;1274:103:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1274:103:31;-1:-1:-1;;;;;1274:103:31;;;;;1238:142:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1238:142:25;-1:-1:-1;;;;;1238:142:25;;;;;;;;;;1918:613;1128:14:28;;2133:13:25;;487:1:28;1128:39;1120:48;;;;;;584:1;1174:40;;2015:1:25;2006:10;;1998:19;;;;;;-1:-1:-1;;;;;2035:23:25;;;;2027:32;;;;;;2149:27;2166:9;2149:16;:27::i;:::-;2133:43;-1:-1:-1;;;;;;2194:21:25;;;;2186:30;;;;;;2331:61;-1:-1:-1;;;;;2331:26:25;;2358:10;2378:4;2385:6;2331:61;:26;:61;:::i;:::-;2402:40;-1:-1:-1;;;;;2402:20:25;;2423:10;2435:6;2402:40;:20;:40;:::i;:::-;2513:10;-1:-1:-1;;;;;2458:66:25;2495:7;-1:-1:-1;;;;;2458:66:25;2475:9;-1:-1:-1;;;;;2458:66:25;;2505:6;2458:66;;;;;;;;;;;;;;;;;;-1:-1:-1;;487:1:28;1227:14;:38;-1:-1:-1;1918:613:25:o;1386:183::-;1448:20;-1:-1:-1;;;;;1488:19:25;;;;1480:28;;;;;;-1:-1:-1;;;;;;1535:27:25;;;;;;;:20;:27;;;;;;;;1386:183::o;53:19:26:-;;;;:::o;1001:111:31:-;719:5;;-1:-1:-1;;;;;719:5:31;705:10;:19;697:28;;;;;;1077:5;;1058:25;;-1:-1:-1;;;;;1077:5:31;;;;1058:25;;1077:5;;1058:25;1089:5;:18;;-1:-1:-1;;1089:18:31;;;1001:111::o;238:20::-;;;-1:-1:-1;;;;;238:20:31;;:::o;868:364:25:-;719:5:31;;-1:-1:-1;;;;;719:5:31;705:10;:19;697:28;;;;;;-1:-1:-1;;;;;960:19:25;;;;952:28;;;;;;-1:-1:-1;;;;;998:20:25;;;;990:29;;;;;;-1:-1:-1;;;;;1037:15:25;;;;;;;;1029:24;;;;;;1072:22;1080:5;1087:6;1072:7;:22::i;:::-;1071:23;1063:32;;;;;;-1:-1:-1;;;;;1106:27:25;;;;;;;:20;:27;;;;;;;;:36;;;;;;-1:-1:-1;;1106:36:25;;;;;;;;1152:28;;;:20;:28;;;;;:36;;;;;;;;;;1198:12;;;:5;:12;;;;;:20;;;;;;;:27;;-1:-1:-1;;1198:27:25;1106:36;1198:27;;;868:364::o;1575:183::-;1638:18;-1:-1:-1;;;;;1676:20:25;;;;1668:29;;;;;;-1:-1:-1;;;;;;1723:28:25;;;;;;;:20;:28;;;;;;;;1575:183::o;590:53::-;;;;;;;;;;;;-1:-1:-1;;;;;590:53:25;;:::o;1764:148::-;719:5:31;;1852:4:25;;-1:-1:-1;;;;;719:5:31;705:10;:19;697:28;;;;;;1875:5:25;-1:-1:-1;;;;;1875:13:25;;1889:7;1898:6;1875:30;;;;;-1:-1:-1;;;1875:30:25;;;;;;;-1:-1:-1;;;;;1875:30:25;-1:-1:-1;;;;;1875:30:25;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1875:30:25;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1875:30:25;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1875:30:25;;1764:148;-1:-1:-1;;;;1764:148:25:o;530:54::-;;;;;;;;;;;;-1:-1:-1;;;;;530:54:25;;:::o;1274:103:31:-;719:5;;-1:-1:-1;;;;;719:5:31;705:10;:19;697:28;;;;;;1343:29;1362:9;1343:18;:29::i;:::-;1274:103;:::o;1238:142:25:-;-1:-1:-1;;;;;1327:13:25;;;1304:4;1327:13;;;:5;:13;;;;;;;;:21;;;;;;;;;;;;;;;:46;;-1:-1:-1;;;;;;1352:13:25;;;;;;;:5;:13;;;;;;;;:21;;;;;;;;;;;;1327:46;1320:53;1238:142;-1:-1:-1;;;1238:142:25:o;521:178:35:-;654:39;;;;;;-1:-1:-1;;;;;654:39:35;;;;;;;;;;;;;;;;;;;;;;:19;;;;;;:39;;;;;;;;;;;;;;;-1:-1:-1;654:19:35;:39;;;5:2:-1;;;;30:1;27;20:12;5:2;654:39:35;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;654:39:35;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;654:39:35;646:48;;;;;;;;521:178;;;;:::o;368:149::-;483:6;-1:-1:-1;;;;;483:15:35;;499:3;504:6;483:28;;;;;-1:-1:-1;;;483:28:35;;;;;;;-1:-1:-1;;;;;483:28:35;-1:-1:-1;;;;;483:28:35;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;483:28:35;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;483:28:35;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;483:28:35;475:37;;;;;;;;368:149;;;:::o;1512:171:31:-;-1:-1:-1;;;;;1582:23:31;;;;1574:32;;;;;;1638:5;;1617:38;;-1:-1:-1;;;;;1617:38:31;;;;1638:5;;1617:38;;1638:5;;1617:38;1661:5;:17;;-1:-1:-1;;1661:17:31;-1:-1:-1;;;;;1661:17:31;;;;;;;;;;1512:171::o", + "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", "sourcePath": "/home/circleci/code/contracts/token/exchanger/TokenExchanger.sol", "ast": { "absolutePath": "/home/circleci/code/contracts/token/exchanger/TokenExchanger.sol", "exportedSymbols": { "TokenExchanger": [ - 6494 + 9055 ] }, - "id": 6495, + "id": 9056, "nodeType": "SourceUnit", "nodes": [ { - "id": 6224, + "id": 8785, "literals": [ "solidity", "^", @@ -307,82 +307,82 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:25" + "src": "0:24:36" }, { "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 6225, + "id": 8786, "nodeType": "ImportDirective", - "scope": 6495, - "sourceUnit": 6941, - "src": "26:63:25", + "scope": 9056, + "sourceUnit": 9689, + "src": "26:63:36", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 6226, + "id": 8787, "nodeType": "ImportDirective", - "scope": 6495, - "sourceUnit": 6855, - "src": "90:59:25", + "scope": 9056, + "sourceUnit": 9603, + "src": "90:59:36", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/SafeERC20.sol", "file": "openzeppelin-solidity/contracts/token/ERC20/SafeERC20.sol", - "id": 6227, + "id": 8788, "nodeType": "ImportDirective", - "scope": 6495, - "sourceUnit": 7112, - "src": "150:67:25", + "scope": 9056, + "sourceUnit": 9860, + "src": "150:67:36", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "openzeppelin-solidity/contracts/ReentrancyGuard.sol", "file": "openzeppelin-solidity/contracts/ReentrancyGuard.sol", - "id": 6228, + "id": 8789, "nodeType": "ImportDirective", - "scope": 6495, - "sourceUnit": 6691, - "src": "218:61:25", + "scope": 9056, + "sourceUnit": 9332, + "src": "218:61:36", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/versioning/Versionable.sol", "file": "../../versioning/Versionable.sol", - "id": 6229, + "id": 8790, "nodeType": "ImportDirective", - "scope": 6495, - "sourceUnit": 6510, - "src": "280:42:25", + "scope": 9056, + "sourceUnit": 9071, + "src": "280:42:36", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/token/WToken.sol", "file": "../WToken.sol", - "id": 6230, + "id": 8791, "nodeType": "ImportDirective", - "scope": 6495, - "sourceUnit": 5926, - "src": "323:23:25", + "scope": 9056, + "sourceUnit": 8487, + "src": "323:23:36", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/token/exchanger/ITokenExchanger.sol", "file": "./ITokenExchanger.sol", - "id": 6231, + "id": 8792, "nodeType": "ImportDirective", - "scope": 6495, - "sourceUnit": 6188, - "src": "347:31:25", + "scope": 9056, + "sourceUnit": 8749, + "src": "347:31:36", "symbolAliases": [], "unitAlias": "" }, @@ -392,120 +392,120 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 6232, + "id": 8793, "name": "ITokenExchanger", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6187, - "src": "408:15:25", + "referencedDeclaration": 8748, + "src": "408:15:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$6187", + "typeIdentifier": "t_contract$_ITokenExchanger_$8748", "typeString": "contract ITokenExchanger" } }, - "id": 6233, + "id": 8794, "nodeType": "InheritanceSpecifier", - "src": "408:15:25" + "src": "408:15:36" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 6234, + "id": 8795, "name": "Versionable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6509, - "src": "425:11:25", + "referencedDeclaration": 9070, + "src": "425:11:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_Versionable_$6509", + "typeIdentifier": "t_contract$_Versionable_$9070", "typeString": "contract Versionable" } }, - "id": 6235, + "id": 8796, "nodeType": "InheritanceSpecifier", - "src": "425:11:25" + "src": "425:11:36" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 6236, + "id": 8797, "name": "Ownable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6940, - "src": "438:7:25", + "referencedDeclaration": 9688, + "src": "438:7:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$6940", + "typeIdentifier": "t_contract$_Ownable_$9688", "typeString": "contract Ownable" } }, - "id": 6237, + "id": 8798, "nodeType": "InheritanceSpecifier", - "src": "438:7:25" + "src": "438:7:36" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 6238, + "id": 8799, "name": "ReentrancyGuard", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6690, - "src": "447:15:25", + "referencedDeclaration": 9331, + "src": "447:15:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ReentrancyGuard_$6690", + "typeIdentifier": "t_contract$_ReentrancyGuard_$9331", "typeString": "contract ReentrancyGuard" } }, - "id": 6239, + "id": 8800, "nodeType": "InheritanceSpecifier", - "src": "447:15:25" + "src": "447:15:36" } ], "contractDependencies": [ - 6178, - 6187, - 6222, - 6509, - 6690, - 6940 + 8739, + 8748, + 8783, + 9070, + 9331, + 9688 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 6494, + "id": 9055, "linearizedBaseContracts": [ - 6494, - 6690, - 6940, - 6509, - 6187, - 6222, - 6178 + 9055, + 9331, + 9688, + 9070, + 8748, + 8783, + 8739 ], "name": "TokenExchanger", "nodeType": "ContractDefinition", "nodes": [ { - "id": 6242, + "id": 8803, "libraryName": { "contractScope": null, - "id": 6240, + "id": 8801, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6854, - "src": "475:8:25", + "referencedDeclaration": 9602, + "src": "475:8:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$6854", + "typeIdentifier": "t_contract$_SafeMath_$9602", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "469:24:25", + "src": "469:24:36", "typeName": { - "id": 6241, + "id": 8802, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "488:4:25", + "src": "488:4:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -513,74 +513,74 @@ } }, { - "id": 6245, + "id": 8806, "libraryName": { "contractScope": null, - "id": 6243, + "id": 8804, "name": "SafeERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7111, - "src": "504:9:25", + "referencedDeclaration": 9859, + "src": "504:9:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeERC20_$7111", + "typeIdentifier": "t_contract$_SafeERC20_$9859", "typeString": "library SafeERC20" } }, "nodeType": "UsingForDirective", - "src": "498:26:25", + "src": "498:26:36", "typeName": { "contractScope": null, - "id": 6244, + "id": 8805, "name": "ERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7017, - "src": "518:5:25", + "referencedDeclaration": 9765, + "src": "518:5:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } } }, { "constant": false, - "id": 6249, + "id": 8810, "name": "listingTokenToWToken", "nodeType": "VariableDeclaration", - "scope": 6494, - "src": "530:54:25", + "scope": 9055, + "src": "530:54:36", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_contract$_WToken_$5925_$", + "typeIdentifier": "t_mapping$_t_address_$_t_contract$_WToken_$8486_$", "typeString": "mapping(address => contract WToken)" }, "typeName": { - "id": 6248, + "id": 8809, "keyType": { - "id": 6246, + "id": 8807, "name": "address", "nodeType": "ElementaryTypeName", - "src": "538:7:25", + "src": "538:7:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "530:26:25", + "src": "530:26:36", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_contract$_WToken_$5925_$", + "typeIdentifier": "t_mapping$_t_address_$_t_contract$_WToken_$8486_$", "typeString": "mapping(address => contract WToken)" }, "valueType": { "contractScope": null, - "id": 6247, + "id": 8808, "name": "WToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5925, - "src": "549:6:25", + "referencedDeclaration": 8486, + "src": "549:6:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } } @@ -590,44 +590,44 @@ }, { "constant": false, - "id": 6253, + "id": 8814, "name": "listingWTokenToToken", "nodeType": "VariableDeclaration", - "scope": 6494, - "src": "590:53:25", + "scope": 9055, + "src": "590:53:36", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_contract$_ERC20_$7017_$", + "typeIdentifier": "t_mapping$_t_address_$_t_contract$_ERC20_$9765_$", "typeString": "mapping(address => contract ERC20)" }, "typeName": { - "id": 6252, + "id": 8813, "keyType": { - "id": 6250, + "id": 8811, "name": "address", "nodeType": "ElementaryTypeName", - "src": "598:7:25", + "src": "598:7:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "590:25:25", + "src": "590:25:36", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_contract$_ERC20_$7017_$", + "typeIdentifier": "t_mapping$_t_address_$_t_contract$_ERC20_$9765_$", "typeString": "mapping(address => contract ERC20)" }, "valueType": { "contractScope": null, - "id": 6251, + "id": 8812, "name": "ERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7017, - "src": "609:5:25", + "referencedDeclaration": 9765, + "src": "609:5:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } } @@ -637,11 +637,11 @@ }, { "constant": false, - "id": 6259, + "id": 8820, "name": "pairs", "nodeType": "VariableDeclaration", - "scope": 6494, - "src": "649:50:25", + "scope": 9055, + "src": "649:50:36", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -649,46 +649,46 @@ "typeString": "mapping(address => mapping(address => bool))" }, "typeName": { - "id": 6258, + "id": 8819, "keyType": { - "id": 6254, + "id": 8815, "name": "address", "nodeType": "ElementaryTypeName", - "src": "657:7:25", + "src": "657:7:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "649:44:25", + "src": "649:44:36", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(address => mapping(address => bool))" }, "valueType": { - "id": 6257, + "id": 8818, "keyType": { - "id": 6255, + "id": 8816, "name": "address", "nodeType": "ElementaryTypeName", - "src": "676:7:25", + "src": "676:7:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "668:24:25", + "src": "668:24:36", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { - "id": 6256, + "id": 8817, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "687:4:25", + "src": "687:4:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -702,21 +702,21 @@ { "anonymous": false, "documentation": null, - "id": 6269, + "id": 8830, "name": "Exchange", "nodeType": "EventDefinition", "parameters": { - "id": 6268, + "id": 8829, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6261, + "id": 8822, "indexed": true, "name": "from", "nodeType": "VariableDeclaration", - "scope": 6269, - "src": "721:20:25", + "scope": 8830, + "src": "721:20:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -724,10 +724,10 @@ "typeString": "address" }, "typeName": { - "id": 6260, + "id": 8821, "name": "address", "nodeType": "ElementaryTypeName", - "src": "721:7:25", + "src": "721:7:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -738,12 +738,12 @@ }, { "constant": false, - "id": 6263, + "id": 8824, "indexed": true, "name": "to", "nodeType": "VariableDeclaration", - "scope": 6269, - "src": "743:18:25", + "scope": 8830, + "src": "743:18:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -751,10 +751,10 @@ "typeString": "address" }, "typeName": { - "id": 6262, + "id": 8823, "name": "address", "nodeType": "ElementaryTypeName", - "src": "743:7:25", + "src": "743:7:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -765,12 +765,12 @@ }, { "constant": false, - "id": 6265, + "id": 8826, "indexed": false, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 6269, - "src": "763:11:25", + "scope": 8830, + "src": "763:11:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -778,10 +778,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6264, + "id": 8825, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "763:4:25", + "src": "763:4:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -792,12 +792,12 @@ }, { "constant": false, - "id": 6267, + "id": 8828, "indexed": true, "name": "sender", "nodeType": "VariableDeclaration", - "scope": 6269, - "src": "776:22:25", + "scope": 8830, + "src": "776:22:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -805,10 +805,10 @@ "typeString": "address" }, "typeName": { - "id": 6266, + "id": 8827, "name": "address", "nodeType": "ElementaryTypeName", - "src": "776:7:25", + "src": "776:7:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -818,19 +818,19 @@ "visibility": "internal" } ], - "src": "720:79:25" + "src": "720:79:36" }, - "src": "706:94:25" + "src": "706:94:36" }, { "body": { - "id": 6277, + "id": 8838, "nodeType": "Block", - "src": "860:2:25", + "src": "860:2:36", "statements": [] }, "documentation": null, - "id": 6278, + "id": 8839, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -839,49 +839,49 @@ "arguments": [ { "argumentTypes": null, - "id": 6274, + "id": 8835, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6271, - "src": "844:7:25", + "referencedDeclaration": 8832, + "src": "844:7:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 6275, + "id": 8836, "modifierName": { "argumentTypes": null, - "id": 6273, + "id": 8834, "name": "Versionable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6509, - "src": "832:11:25", + "referencedDeclaration": 9070, + "src": "832:11:36", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Versionable_$6509_$", + "typeIdentifier": "t_type$_t_contract$_Versionable_$9070_$", "typeString": "type(contract Versionable)" } }, "nodeType": "ModifierInvocation", - "src": "832:20:25" + "src": "832:20:36" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 6272, + "id": 8833, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6271, + "id": 8832, "name": "version", "nodeType": "VariableDeclaration", - "scope": 6278, - "src": "818:12:25", + "scope": 8839, + "src": "818:12:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -889,10 +889,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6270, + "id": 8831, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "818:4:25", + "src": "818:4:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -902,26 +902,26 @@ "visibility": "internal" } ], - "src": "817:14:25" + "src": "817:14:36" }, "payable": false, "returnParameters": { - "id": 6276, + "id": 8837, "nodeType": "ParameterList", "parameters": [], - "src": "860:0:25" + "src": "860:0:36" }, - "scope": 6494, - "src": "806:56:25", + "scope": 9055, + "src": "806:56:36", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 6337, + "id": 8898, "nodeType": "Block", - "src": "942:290:25", + "src": "942:290:36", "statements": [ { "expression": { @@ -933,21 +933,21 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 6292, + "id": 8853, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6288, + "id": 8849, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6280, - "src": "960:5:25", + "referencedDeclaration": 8841, + "src": "960:5:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, @@ -959,14 +959,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 6290, + "id": 8851, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "977:1:25", + "src": "977:1:36", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -982,20 +982,20 @@ "typeString": "int_const 0" } ], - "id": 6289, + "id": 8850, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "969:7:25", + "src": "969:7:36", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 6291, + "id": 8852, "isConstant": false, "isLValue": false, "isPure": true, @@ -1003,13 +1003,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "969:10:25", + "src": "969:10:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "960:19:25", + "src": "960:19:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1023,21 +1023,21 @@ "typeString": "bool" } ], - "id": 6287, + "id": 8848, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "952:7:25", + "referencedDeclaration": 10045, + "src": "952:7:36", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 6293, + "id": 8854, "isConstant": false, "isLValue": false, "isPure": false, @@ -1045,15 +1045,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "952:28:25", + "src": "952:28:36", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6294, + "id": 8855, "nodeType": "ExpressionStatement", - "src": "952:28:25" + "src": "952:28:36" }, { "expression": { @@ -1065,21 +1065,21 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 6300, + "id": 8861, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6296, + "id": 8857, "name": "wToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6282, - "src": "998:6:25", + "referencedDeclaration": 8843, + "src": "998:6:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, @@ -1091,14 +1091,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 6298, + "id": 8859, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1016:1:25", + "src": "1016:1:36", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1114,20 +1114,20 @@ "typeString": "int_const 0" } ], - "id": 6297, + "id": 8858, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1008:7:25", + "src": "1008:7:36", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 6299, + "id": 8860, "isConstant": false, "isLValue": false, "isPure": true, @@ -1135,13 +1135,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1008:10:25", + "src": "1008:10:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "998:20:25", + "src": "998:20:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1155,21 +1155,21 @@ "typeString": "bool" } ], - "id": 6295, + "id": 8856, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "990:7:25", + "referencedDeclaration": 10045, + "src": "990:7:36", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 6301, + "id": 8862, "isConstant": false, "isLValue": false, "isPure": false, @@ -1177,15 +1177,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "990:29:25", + "src": "990:29:36", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6302, + "id": 8863, "nodeType": "ExpressionStatement", - "src": "990:29:25" + "src": "990:29:36" }, { "expression": { @@ -1194,24 +1194,24 @@ { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" }, - "id": 6306, + "id": 8867, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6304, + "id": 8865, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6280, - "src": "1037:5:25", + "referencedDeclaration": 8841, + "src": "1037:5:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, @@ -1219,18 +1219,18 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 6305, + "id": 8866, "name": "wToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6282, - "src": "1046:6:25", + "referencedDeclaration": 8843, + "src": "1046:6:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, - "src": "1037:15:25", + "src": "1037:15:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1244,21 +1244,21 @@ "typeString": "bool" } ], - "id": 6303, + "id": 8864, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "1029:7:25", + "referencedDeclaration": 10045, + "src": "1029:7:36", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 6307, + "id": 8868, "isConstant": false, "isLValue": false, "isPure": false, @@ -1266,15 +1266,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1029:24:25", + "src": "1029:24:36", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6308, + "id": 8869, "nodeType": "ExpressionStatement", - "src": "1029:24:25" + "src": "1029:24:36" }, { "expression": { @@ -1282,7 +1282,7 @@ "arguments": [ { "argumentTypes": null, - "id": 6314, + "id": 8875, "isConstant": false, "isLValue": false, "isPure": false, @@ -1290,33 +1290,33 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "1071:23:25", + "src": "1071:23:36", "subExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 6311, + "id": 8872, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6280, - "src": "1080:5:25", + "referencedDeclaration": 8841, + "src": "1080:5:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, { "argumentTypes": null, - "id": 6312, + "id": 8873, "name": "wToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6282, - "src": "1087:6:25", + "referencedDeclaration": 8843, + "src": "1087:6:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } } @@ -1324,28 +1324,28 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" }, { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } ], - "id": 6310, + "id": 8871, "name": "hasPair", "nodeType": "Identifier", "overloadedDeclarations": [ - 6360 + 8921 ], - "referencedDeclaration": 6360, - "src": "1072:7:25", + "referencedDeclaration": 8921, + "src": "1072:7:36", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_ERC20_$7017_$_t_contract$_ERC20_$7017_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_view$_t_contract$_ERC20_$9765_$_t_contract$_ERC20_$9765_$returns$_t_bool_$", "typeString": "function (contract ERC20,contract ERC20) view returns (bool)" } }, - "id": 6313, + "id": 8874, "isConstant": false, "isLValue": false, "isPure": false, @@ -1353,7 +1353,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1072:22:25", + "src": "1072:22:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1372,21 +1372,21 @@ "typeString": "bool" } ], - "id": 6309, + "id": 8870, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "1063:7:25", + "referencedDeclaration": 10045, + "src": "1063:7:36", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 6315, + "id": 8876, "isConstant": false, "isLValue": false, "isPure": false, @@ -1394,20 +1394,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1063:32:25", + "src": "1063:32:36", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6316, + "id": 8877, "nodeType": "ExpressionStatement", - "src": "1063:32:25" + "src": "1063:32:36" }, { "expression": { "argumentTypes": null, - "id": 6321, + "id": 8882, "isConstant": false, "isLValue": false, "isPure": false, @@ -1416,28 +1416,28 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 6317, + "id": 8878, "name": "listingTokenToWToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6249, - "src": "1106:20:25", + "referencedDeclaration": 8810, + "src": "1106:20:36", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_contract$_WToken_$5925_$", + "typeIdentifier": "t_mapping$_t_address_$_t_contract$_WToken_$8486_$", "typeString": "mapping(address => contract WToken)" } }, - "id": 6319, + "id": 8880, "indexExpression": { "argumentTypes": null, - "id": 6318, + "id": 8879, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6280, - "src": "1127:5:25", + "referencedDeclaration": 8841, + "src": "1127:5:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, @@ -1446,9 +1446,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1106:27:25", + "src": "1106:27:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, @@ -1456,31 +1456,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 6320, + "id": 8881, "name": "wToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6282, - "src": "1136:6:25", + "referencedDeclaration": 8843, + "src": "1136:6:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, - "src": "1106:36:25", + "src": "1106:36:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, - "id": 6322, + "id": 8883, "nodeType": "ExpressionStatement", - "src": "1106:36:25" + "src": "1106:36:36" }, { "expression": { "argumentTypes": null, - "id": 6327, + "id": 8888, "isConstant": false, "isLValue": false, "isPure": false, @@ -1489,28 +1489,28 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 6323, + "id": 8884, "name": "listingWTokenToToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6253, - "src": "1152:20:25", + "referencedDeclaration": 8814, + "src": "1152:20:36", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_contract$_ERC20_$7017_$", + "typeIdentifier": "t_mapping$_t_address_$_t_contract$_ERC20_$9765_$", "typeString": "mapping(address => contract ERC20)" } }, - "id": 6325, + "id": 8886, "indexExpression": { "argumentTypes": null, - "id": 6324, + "id": 8885, "name": "wToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6282, - "src": "1173:6:25", + "referencedDeclaration": 8843, + "src": "1173:6:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, @@ -1519,9 +1519,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1152:28:25", + "src": "1152:28:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, @@ -1529,31 +1529,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 6326, + "id": 8887, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6280, - "src": "1183:5:25", + "referencedDeclaration": 8841, + "src": "1183:5:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, - "src": "1152:36:25", + "src": "1152:36:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, - "id": 6328, + "id": 8889, "nodeType": "ExpressionStatement", - "src": "1152:36:25" + "src": "1152:36:36" }, { "expression": { "argumentTypes": null, - "id": 6335, + "id": 8896, "isConstant": false, "isLValue": false, "isPure": false, @@ -1564,28 +1564,28 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 6329, + "id": 8890, "name": "pairs", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6259, - "src": "1198:5:25", + "referencedDeclaration": 8820, + "src": "1198:5:36", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(address => mapping(address => bool))" } }, - "id": 6332, + "id": 8893, "indexExpression": { "argumentTypes": null, - "id": 6330, + "id": 8891, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6280, - "src": "1204:5:25", + "referencedDeclaration": 8841, + "src": "1204:5:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, @@ -1594,23 +1594,23 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1198:12:25", + "src": "1198:12:36", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 6333, + "id": 8894, "indexExpression": { "argumentTypes": null, - "id": 6331, + "id": 8892, "name": "wToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6282, - "src": "1211:6:25", + "referencedDeclaration": 8843, + "src": "1211:6:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, @@ -1619,7 +1619,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1198:20:25", + "src": "1198:20:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1630,14 +1630,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 6334, + "id": 8895, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1221:4:25", + "src": "1221:4:36", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -1645,72 +1645,72 @@ }, "value": "true" }, - "src": "1198:27:25", + "src": "1198:27:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 6336, + "id": 8897, "nodeType": "ExpressionStatement", - "src": "1198:27:25" + "src": "1198:27:36" } ] }, "documentation": null, - "id": 6338, + "id": 8899, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 6285, + "id": 8846, "modifierName": { "argumentTypes": null, - "id": 6284, + "id": 8845, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6888, - "src": "932:9:25", + "referencedDeclaration": 9636, + "src": "932:9:36", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "932:9:25" + "src": "932:9:36" } ], "name": "addTokenToListing", "nodeType": "FunctionDefinition", "parameters": { - "id": 6283, + "id": 8844, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6280, + "id": 8841, "name": "token", "nodeType": "VariableDeclaration", - "scope": 6338, - "src": "895:11:25", + "scope": 8899, + "src": "895:11:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" }, "typeName": { "contractScope": null, - "id": 6279, + "id": 8840, "name": "ERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7017, - "src": "895:5:25", + "referencedDeclaration": 9765, + "src": "895:5:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, @@ -1719,26 +1719,26 @@ }, { "constant": false, - "id": 6282, + "id": 8843, "name": "wToken", "nodeType": "VariableDeclaration", - "scope": 6338, - "src": "908:13:25", + "scope": 8899, + "src": "908:13:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" }, "typeName": { "contractScope": null, - "id": 6281, + "id": 8842, "name": "WToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5925, - "src": "908:6:25", + "referencedDeclaration": 8486, + "src": "908:6:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, @@ -1746,26 +1746,26 @@ "visibility": "internal" } ], - "src": "894:28:25" + "src": "894:28:36" }, "payable": false, "returnParameters": { - "id": 6286, + "id": 8847, "nodeType": "ParameterList", "parameters": [], - "src": "942:0:25" + "src": "942:0:36" }, - "scope": 6494, - "src": "868:364:25", + "scope": 9055, + "src": "868:364:36", "stateMutability": "nonpayable", - "superFunction": 6198, + "superFunction": 8759, "visibility": "external" }, { "body": { - "id": 6359, + "id": 8920, "nodeType": "Block", - "src": "1310:70:25", + "src": "1310:70:36", "statements": [ { "expression": { @@ -1774,7 +1774,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 6357, + "id": 8918, "isConstant": false, "isLValue": false, "isPure": false, @@ -1785,28 +1785,28 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 6347, + "id": 8908, "name": "pairs", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6259, - "src": "1327:5:25", + "referencedDeclaration": 8820, + "src": "1327:5:36", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(address => mapping(address => bool))" } }, - "id": 6349, + "id": 8910, "indexExpression": { "argumentTypes": null, - "id": 6348, + "id": 8909, "name": "token1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6340, - "src": "1333:6:25", + "referencedDeclaration": 8901, + "src": "1333:6:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, @@ -1815,23 +1815,23 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1327:13:25", + "src": "1327:13:36", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 6351, + "id": 8912, "indexExpression": { "argumentTypes": null, - "id": 6350, + "id": 8911, "name": "token2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6342, - "src": "1341:6:25", + "referencedDeclaration": 8903, + "src": "1341:6:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, @@ -1840,7 +1840,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1327:21:25", + "src": "1327:21:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1854,28 +1854,28 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 6352, + "id": 8913, "name": "pairs", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6259, - "src": "1352:5:25", + "referencedDeclaration": 8820, + "src": "1352:5:36", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(address => mapping(address => bool))" } }, - "id": 6354, + "id": 8915, "indexExpression": { "argumentTypes": null, - "id": 6353, + "id": 8914, "name": "token2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6342, - "src": "1358:6:25", + "referencedDeclaration": 8903, + "src": "1358:6:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, @@ -1884,23 +1884,23 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1352:13:25", + "src": "1352:13:36", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 6356, + "id": 8917, "indexExpression": { "argumentTypes": null, - "id": 6355, + "id": 8916, "name": "token1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6340, - "src": "1366:6:25", + "referencedDeclaration": 8901, + "src": "1366:6:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, @@ -1909,27 +1909,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1352:21:25", + "src": "1352:21:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "1327:46:25", + "src": "1327:46:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 6346, - "id": 6358, + "functionReturnParameters": 8907, + "id": 8919, "nodeType": "Return", - "src": "1320:53:25" + "src": "1320:53:36" } ] }, "documentation": null, - "id": 6360, + "id": 8921, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1937,31 +1937,31 @@ "name": "hasPair", "nodeType": "FunctionDefinition", "parameters": { - "id": 6343, + "id": 8904, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6340, + "id": 8901, "name": "token1", "nodeType": "VariableDeclaration", - "scope": 6360, - "src": "1255:12:25", + "scope": 8921, + "src": "1255:12:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" }, "typeName": { "contractScope": null, - "id": 6339, + "id": 8900, "name": "ERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7017, - "src": "1255:5:25", + "referencedDeclaration": 9765, + "src": "1255:5:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, @@ -1970,26 +1970,26 @@ }, { "constant": false, - "id": 6342, + "id": 8903, "name": "token2", "nodeType": "VariableDeclaration", - "scope": 6360, - "src": "1269:12:25", + "scope": 8921, + "src": "1269:12:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" }, "typeName": { "contractScope": null, - "id": 6341, + "id": 8902, "name": "ERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7017, - "src": "1269:5:25", + "referencedDeclaration": 9765, + "src": "1269:5:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, @@ -1997,20 +1997,20 @@ "visibility": "internal" } ], - "src": "1254:28:25" + "src": "1254:28:36" }, "payable": false, "returnParameters": { - "id": 6346, + "id": 8907, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6345, + "id": 8906, "name": "", "nodeType": "VariableDeclaration", - "scope": 6360, - "src": "1304:4:25", + "scope": 8921, + "src": "1304:4:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2018,10 +2018,10 @@ "typeString": "bool" }, "typeName": { - "id": 6344, + "id": 8905, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1304:4:25", + "src": "1304:4:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2031,19 +2031,19 @@ "visibility": "internal" } ], - "src": "1303:6:25" + "src": "1303:6:36" }, - "scope": 6494, - "src": "1238:142:25", + "scope": 9055, + "src": "1238:142:36", "stateMutability": "view", - "superFunction": 6207, + "superFunction": 8768, "visibility": "public" }, { "body": { - "id": 6381, + "id": 8942, "nodeType": "Block", - "src": "1470:99:25", + "src": "1470:99:36", "statements": [ { "expression": { @@ -2055,19 +2055,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 6372, + "id": 8933, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6368, + "id": 8929, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6362, - "src": "1488:5:25", + "referencedDeclaration": 8923, + "src": "1488:5:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2081,14 +2081,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 6370, + "id": 8931, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1505:1:25", + "src": "1505:1:36", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2104,20 +2104,20 @@ "typeString": "int_const 0" } ], - "id": 6369, + "id": 8930, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1497:7:25", + "src": "1497:7:36", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 6371, + "id": 8932, "isConstant": false, "isLValue": false, "isPure": true, @@ -2125,13 +2125,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1497:10:25", + "src": "1497:10:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1488:19:25", + "src": "1488:19:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2145,21 +2145,21 @@ "typeString": "bool" } ], - "id": 6367, + "id": 8928, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "1480:7:25", + "referencedDeclaration": 10045, + "src": "1480:7:36", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 6373, + "id": 8934, "isConstant": false, "isLValue": false, "isPure": false, @@ -2167,34 +2167,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1480:28:25", + "src": "1480:28:36", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6374, + "id": 8935, "nodeType": "ExpressionStatement", - "src": "1480:28:25" + "src": "1480:28:36" }, { "expression": { "argumentTypes": null, - "id": 6379, + "id": 8940, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 6375, + "id": 8936, "name": "wTokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6365, - "src": "1519:13:25", + "referencedDeclaration": 8926, + "src": "1519:13:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, @@ -2204,26 +2204,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 6376, + "id": 8937, "name": "listingTokenToWToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6249, - "src": "1535:20:25", + "referencedDeclaration": 8810, + "src": "1535:20:36", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_contract$_WToken_$5925_$", + "typeIdentifier": "t_mapping$_t_address_$_t_contract$_WToken_$8486_$", "typeString": "mapping(address => contract WToken)" } }, - "id": 6378, + "id": 8939, "indexExpression": { "argumentTypes": null, - "id": 6377, + "id": 8938, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6362, - "src": "1556:5:25", + "referencedDeclaration": 8923, + "src": "1556:5:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2234,26 +2234,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1535:27:25", + "src": "1535:27:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, - "src": "1519:43:25", + "src": "1519:43:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, - "id": 6380, + "id": 8941, "nodeType": "ExpressionStatement", - "src": "1519:43:25" + "src": "1519:43:36" } ] }, "documentation": null, - "id": 6382, + "id": 8943, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2261,16 +2261,16 @@ "name": "getWTokenByToken", "nodeType": "FunctionDefinition", "parameters": { - "id": 6363, + "id": 8924, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6362, + "id": 8923, "name": "token", "nodeType": "VariableDeclaration", - "scope": 6382, - "src": "1412:13:25", + "scope": 8943, + "src": "1412:13:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2278,10 +2278,10 @@ "typeString": "address" }, "typeName": { - "id": 6361, + "id": 8922, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1412:7:25", + "src": "1412:7:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2291,35 +2291,35 @@ "visibility": "internal" } ], - "src": "1411:15:25" + "src": "1411:15:36" }, "payable": false, "returnParameters": { - "id": 6366, + "id": 8927, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6365, + "id": 8926, "name": "wTokenAddress", "nodeType": "VariableDeclaration", - "scope": 6382, - "src": "1448:20:25", + "scope": 8943, + "src": "1448:20:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" }, "typeName": { "contractScope": null, - "id": 6364, + "id": 8925, "name": "WToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5925, - "src": "1448:6:25", + "referencedDeclaration": 8486, + "src": "1448:6:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, @@ -2327,19 +2327,19 @@ "visibility": "internal" } ], - "src": "1447:22:25" + "src": "1447:22:36" }, - "scope": 6494, - "src": "1386:183:25", + "scope": 9055, + "src": "1386:183:36", "stateMutability": "view", - "superFunction": 6214, + "superFunction": 8775, "visibility": "public" }, { "body": { - "id": 6403, + "id": 8964, "nodeType": "Block", - "src": "1658:100:25", + "src": "1658:100:36", "statements": [ { "expression": { @@ -2351,19 +2351,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 6394, + "id": 8955, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6390, + "id": 8951, "name": "wToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6384, - "src": "1676:6:25", + "referencedDeclaration": 8945, + "src": "1676:6:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2377,14 +2377,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 6392, + "id": 8953, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1694:1:25", + "src": "1694:1:36", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2400,20 +2400,20 @@ "typeString": "int_const 0" } ], - "id": 6391, + "id": 8952, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1686:7:25", + "src": "1686:7:36", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 6393, + "id": 8954, "isConstant": false, "isLValue": false, "isPure": true, @@ -2421,13 +2421,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1686:10:25", + "src": "1686:10:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1676:20:25", + "src": "1676:20:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2441,21 +2441,21 @@ "typeString": "bool" } ], - "id": 6389, + "id": 8950, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "1668:7:25", + "referencedDeclaration": 10045, + "src": "1668:7:36", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 6395, + "id": 8956, "isConstant": false, "isLValue": false, "isPure": false, @@ -2463,34 +2463,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1668:29:25", + "src": "1668:29:36", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6396, + "id": 8957, "nodeType": "ExpressionStatement", - "src": "1668:29:25" + "src": "1668:29:36" }, { "expression": { "argumentTypes": null, - "id": 6401, + "id": 8962, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 6397, + "id": 8958, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6387, - "src": "1708:12:25", + "referencedDeclaration": 8948, + "src": "1708:12:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, @@ -2500,26 +2500,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 6398, + "id": 8959, "name": "listingWTokenToToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6253, - "src": "1723:20:25", + "referencedDeclaration": 8814, + "src": "1723:20:36", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_contract$_ERC20_$7017_$", + "typeIdentifier": "t_mapping$_t_address_$_t_contract$_ERC20_$9765_$", "typeString": "mapping(address => contract ERC20)" } }, - "id": 6400, + "id": 8961, "indexExpression": { "argumentTypes": null, - "id": 6399, + "id": 8960, "name": "wToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6384, - "src": "1744:6:25", + "referencedDeclaration": 8945, + "src": "1744:6:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2530,26 +2530,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1723:28:25", + "src": "1723:28:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, - "src": "1708:43:25", + "src": "1708:43:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, - "id": 6402, + "id": 8963, "nodeType": "ExpressionStatement", - "src": "1708:43:25" + "src": "1708:43:36" } ] }, "documentation": null, - "id": 6404, + "id": 8965, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2557,16 +2557,16 @@ "name": "getTokenByWToken", "nodeType": "FunctionDefinition", "parameters": { - "id": 6385, + "id": 8946, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6384, + "id": 8945, "name": "wToken", "nodeType": "VariableDeclaration", - "scope": 6404, - "src": "1601:14:25", + "scope": 8965, + "src": "1601:14:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2574,10 +2574,10 @@ "typeString": "address" }, "typeName": { - "id": 6383, + "id": 8944, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1601:7:25", + "src": "1601:7:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2587,35 +2587,35 @@ "visibility": "internal" } ], - "src": "1600:16:25" + "src": "1600:16:36" }, "payable": false, "returnParameters": { - "id": 6388, + "id": 8949, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6387, + "id": 8948, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 6404, - "src": "1638:18:25", + "scope": 8965, + "src": "1638:18:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" }, "typeName": { "contractScope": null, - "id": 6386, + "id": 8947, "name": "ERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7017, - "src": "1638:5:25", + "referencedDeclaration": 9765, + "src": "1638:5:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, @@ -2623,19 +2623,19 @@ "visibility": "internal" } ], - "src": "1637:20:25" + "src": "1637:20:36" }, - "scope": 6494, - "src": "1575:183:25", + "scope": 9055, + "src": "1575:183:36", "stateMutability": "view", - "superFunction": 6221, + "superFunction": 8782, "visibility": "public" }, { "body": { - "id": 6423, + "id": 8984, "nodeType": "Block", - "src": "1858:54:25", + "src": "1858:54:36", "statements": [ { "expression": { @@ -2643,12 +2643,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6419, + "id": 8980, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6408, - "src": "1889:7:25", + "referencedDeclaration": 8969, + "src": "1889:7:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2656,12 +2656,12 @@ }, { "argumentTypes": null, - "id": 6420, + "id": 8981, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6410, - "src": "1898:6:25", + "referencedDeclaration": 8971, + "src": "1898:6:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2681,32 +2681,32 @@ ], "expression": { "argumentTypes": null, - "id": 6417, + "id": 8978, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6406, - "src": "1875:5:25", + "referencedDeclaration": 8967, + "src": "1875:5:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, - "id": 6418, + "id": 8979, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "approve", "nodeType": "MemberAccess", - "referencedDeclaration": 7008, - "src": "1875:13:25", + "referencedDeclaration": 9756, + "src": "1875:13:36", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 6421, + "id": 8982, "isConstant": false, "isLValue": false, "isPure": false, @@ -2714,73 +2714,73 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1875:30:25", + "src": "1875:30:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 6416, - "id": 6422, + "functionReturnParameters": 8977, + "id": 8983, "nodeType": "Return", - "src": "1868:37:25" + "src": "1868:37:36" } ] }, "documentation": null, - "id": 6424, + "id": 8985, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 6413, + "id": 8974, "modifierName": { "argumentTypes": null, - "id": 6412, + "id": 8973, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6888, - "src": "1833:9:25", + "referencedDeclaration": 9636, + "src": "1833:9:36", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1833:9:25" + "src": "1833:9:36" } ], "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 6411, + "id": 8972, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6406, + "id": 8967, "name": "token", "nodeType": "VariableDeclaration", - "scope": 6424, - "src": "1781:11:25", + "scope": 8985, + "src": "1781:11:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" }, "typeName": { "contractScope": null, - "id": 6405, + "id": 8966, "name": "ERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7017, - "src": "1781:5:25", + "referencedDeclaration": 9765, + "src": "1781:5:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, @@ -2789,11 +2789,11 @@ }, { "constant": false, - "id": 6408, + "id": 8969, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 6424, - "src": "1794:15:25", + "scope": 8985, + "src": "1794:15:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2801,10 +2801,10 @@ "typeString": "address" }, "typeName": { - "id": 6407, + "id": 8968, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1794:7:25", + "src": "1794:7:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2815,11 +2815,11 @@ }, { "constant": false, - "id": 6410, + "id": 8971, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 6424, - "src": "1811:11:25", + "scope": 8985, + "src": "1811:11:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2827,10 +2827,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6409, + "id": 8970, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1811:4:25", + "src": "1811:4:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2840,20 +2840,20 @@ "visibility": "internal" } ], - "src": "1780:43:25" + "src": "1780:43:36" }, "payable": false, "returnParameters": { - "id": 6416, + "id": 8977, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6415, + "id": 8976, "name": "", "nodeType": "VariableDeclaration", - "scope": 6424, - "src": "1852:4:25", + "scope": 8985, + "src": "1852:4:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2861,10 +2861,10 @@ "typeString": "bool" }, "typeName": { - "id": 6414, + "id": 8975, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1852:4:25", + "src": "1852:4:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2874,19 +2874,19 @@ "visibility": "internal" } ], - "src": "1851:6:25" + "src": "1851:6:36" }, - "scope": 6494, - "src": "1764:148:25", + "scope": 9055, + "src": "1764:148:36", "stateMutability": "nonpayable", - "superFunction": 6170, + "superFunction": 8731, "visibility": "external" }, { "body": { - "id": 6492, + "id": 9053, "nodeType": "Block", - "src": "1988:543:25", + "src": "1988:543:36", "statements": [ { "expression": { @@ -2898,19 +2898,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6436, + "id": 8997, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6434, + "id": 8995, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6428, - "src": "2006:6:25", + "referencedDeclaration": 8989, + "src": "2006:6:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2921,14 +2921,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 6435, + "id": 8996, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2015:1:25", + "src": "2015:1:36", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2936,7 +2936,7 @@ }, "value": "0" }, - "src": "2006:10:25", + "src": "2006:10:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2950,21 +2950,21 @@ "typeString": "bool" } ], - "id": 6433, + "id": 8994, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "1998:7:25", + "referencedDeclaration": 10045, + "src": "1998:7:36", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 6437, + "id": 8998, "isConstant": false, "isLValue": false, "isPure": false, @@ -2972,15 +2972,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1998:19:25", + "src": "1998:19:36", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6438, + "id": 8999, "nodeType": "ExpressionStatement", - "src": "1998:19:25" + "src": "1998:19:36" }, { "expression": { @@ -2992,21 +2992,21 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 6444, + "id": 9005, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6440, + "id": 9001, "name": "fromToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6426, - "src": "2035:9:25", + "referencedDeclaration": 8987, + "src": "2035:9:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, @@ -3018,14 +3018,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 6442, + "id": 9003, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2056:1:25", + "src": "2056:1:36", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3041,20 +3041,20 @@ "typeString": "int_const 0" } ], - "id": 6441, + "id": 9002, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2048:7:25", + "src": "2048:7:36", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 6443, + "id": 9004, "isConstant": false, "isLValue": false, "isPure": true, @@ -3062,13 +3062,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2048:10:25", + "src": "2048:10:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2035:23:25", + "src": "2035:23:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3082,21 +3082,21 @@ "typeString": "bool" } ], - "id": 6439, + "id": 9000, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "2027:7:25", + "referencedDeclaration": 10045, + "src": "2027:7:36", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 6445, + "id": 9006, "isConstant": false, "isLValue": false, "isPure": false, @@ -3104,43 +3104,43 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2027:32:25", + "src": "2027:32:36", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6446, + "id": 9007, "nodeType": "ExpressionStatement", - "src": "2027:32:25" + "src": "2027:32:36" }, { "assignments": [ - 6448 + 9009 ], "declarations": [ { "constant": false, - "id": 6448, + "id": 9009, "name": "toToken", "nodeType": "VariableDeclaration", - "scope": 6493, - "src": "2133:13:25", + "scope": 9054, + "src": "2133:13:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" }, "typeName": { "contractScope": null, - "id": 6447, + "id": 9008, "name": "ERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7017, - "src": "2133:5:25", + "referencedDeclaration": 9765, + "src": "2133:5:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, @@ -3148,20 +3148,20 @@ "visibility": "internal" } ], - "id": 6452, + "id": 9013, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 6450, + "id": 9011, "name": "fromToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6426, - "src": "2166:9:25", + "referencedDeclaration": 8987, + "src": "2166:9:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } } @@ -3169,24 +3169,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } ], - "id": 6449, + "id": 9010, "name": "getTokenByWToken", "nodeType": "Identifier", "overloadedDeclarations": [ - 6404 + 8965 ], - "referencedDeclaration": 6404, - "src": "2149:16:25", + "referencedDeclaration": 8965, + "src": "2149:16:36", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_contract$_ERC20_$7017_$", + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_contract$_ERC20_$9765_$", "typeString": "function (address) view returns (contract ERC20)" } }, - "id": 6451, + "id": 9012, "isConstant": false, "isLValue": false, "isPure": false, @@ -3194,14 +3194,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2149:27:25", + "src": "2149:27:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, "nodeType": "VariableDeclarationStatement", - "src": "2133:43:25" + "src": "2133:43:36" }, { "expression": { @@ -3213,21 +3213,21 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 6458, + "id": 9019, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6454, + "id": 9015, "name": "toToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6448, - "src": "2194:7:25", + "referencedDeclaration": 9009, + "src": "2194:7:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, @@ -3239,14 +3239,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 6456, + "id": 9017, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2213:1:25", + "src": "2213:1:36", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3262,20 +3262,20 @@ "typeString": "int_const 0" } ], - "id": 6455, + "id": 9016, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2205:7:25", + "src": "2205:7:36", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 6457, + "id": 9018, "isConstant": false, "isLValue": false, "isPure": true, @@ -3283,13 +3283,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2205:10:25", + "src": "2205:10:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2194:21:25", + "src": "2194:21:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3303,21 +3303,21 @@ "typeString": "bool" } ], - "id": 6453, + "id": 9014, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "2186:7:25", + "referencedDeclaration": 10045, + "src": "2186:7:36", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 6459, + "id": 9020, "isConstant": false, "isLValue": false, "isPure": false, @@ -3325,15 +3325,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2186:30:25", + "src": "2186:30:36", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6460, + "id": 9021, "nodeType": "ExpressionStatement", - "src": "2186:30:25" + "src": "2186:30:36" }, { "expression": { @@ -3343,18 +3343,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 6464, + "id": 9025, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "2358:3:25", + "referencedDeclaration": 10042, + "src": "2358:3:36", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 6465, + "id": 9026, "isConstant": false, "isLValue": false, "isPure": false, @@ -3362,7 +3362,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2358:10:25", + "src": "2358:10:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3373,14 +3373,14 @@ "arguments": [ { "argumentTypes": null, - "id": 6467, + "id": 9028, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7377, - "src": "2378:4:25", + "referencedDeclaration": 10151, + "src": "2378:4:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_TokenExchanger_$6494", + "typeIdentifier": "t_contract$_TokenExchanger_$9055", "typeString": "contract TokenExchanger" } } @@ -3388,24 +3388,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_TokenExchanger_$6494", + "typeIdentifier": "t_contract$_TokenExchanger_$9055", "typeString": "contract TokenExchanger" } ], - "id": 6466, + "id": 9027, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2370:7:25", + "src": "2370:7:36", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 6468, + "id": 9029, "isConstant": false, "isLValue": false, "isPure": false, @@ -3413,7 +3413,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2370:13:25", + "src": "2370:13:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3421,12 +3421,12 @@ }, { "argumentTypes": null, - "id": 6469, + "id": 9030, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6428, - "src": "2385:6:25", + "referencedDeclaration": 8989, + "src": "2385:6:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3450,32 +3450,32 @@ ], "expression": { "argumentTypes": null, - "id": 6461, + "id": 9022, "name": "fromToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6426, - "src": "2331:9:25", + "referencedDeclaration": 8987, + "src": "2331:9:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, - "id": 6463, + "id": 9024, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeTransferFrom", "nodeType": "MemberAccess", - "referencedDeclaration": 7092, - "src": "2331:26:25", + "referencedDeclaration": 9840, + "src": "2331:26:36", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_ERC20_$7017_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_ERC20_$7017_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_ERC20_$9765_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_ERC20_$9765_$", "typeString": "function (contract ERC20,address,address,uint256)" } }, - "id": 6470, + "id": 9031, "isConstant": false, "isLValue": false, "isPure": false, @@ -3483,15 +3483,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2331:61:25", + "src": "2331:61:36", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6471, + "id": 9032, "nodeType": "ExpressionStatement", - "src": "2331:61:25" + "src": "2331:61:36" }, { "expression": { @@ -3501,18 +3501,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 6475, + "id": 9036, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "2423:3:25", + "referencedDeclaration": 10042, + "src": "2423:3:36", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 6476, + "id": 9037, "isConstant": false, "isLValue": false, "isPure": false, @@ -3520,7 +3520,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2423:10:25", + "src": "2423:10:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3528,12 +3528,12 @@ }, { "argumentTypes": null, - "id": 6477, + "id": 9038, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6428, - "src": "2435:6:25", + "referencedDeclaration": 8989, + "src": "2435:6:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3553,32 +3553,32 @@ ], "expression": { "argumentTypes": null, - "id": 6472, + "id": 9033, "name": "toToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6448, - "src": "2402:7:25", + "referencedDeclaration": 9009, + "src": "2402:7:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, - "id": 6474, + "id": 9035, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeTransfer", "nodeType": "MemberAccess", - "referencedDeclaration": 7071, - "src": "2402:20:25", + "referencedDeclaration": 9819, + "src": "2402:20:36", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_ERC20Basic_$7049_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_ERC20Basic_$7049_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_ERC20Basic_$9797_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_ERC20Basic_$9797_$", "typeString": "function (contract ERC20Basic,address,uint256)" } }, - "id": 6478, + "id": 9039, "isConstant": false, "isLValue": false, "isPure": false, @@ -3586,15 +3586,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2402:40:25", + "src": "2402:40:36", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6479, + "id": 9040, "nodeType": "ExpressionStatement", - "src": "2402:40:25" + "src": "2402:40:36" }, { "eventCall": { @@ -3605,14 +3605,14 @@ "arguments": [ { "argumentTypes": null, - "id": 6482, + "id": 9043, "name": "fromToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6426, - "src": "2475:9:25", + "referencedDeclaration": 8987, + "src": "2475:9:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } } @@ -3620,24 +3620,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } ], - "id": 6481, + "id": 9042, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2467:7:25", + "src": "2467:7:36", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 6483, + "id": 9044, "isConstant": false, "isLValue": false, "isPure": false, @@ -3645,7 +3645,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2467:18:25", + "src": "2467:18:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3656,14 +3656,14 @@ "arguments": [ { "argumentTypes": null, - "id": 6485, + "id": 9046, "name": "toToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6448, - "src": "2495:7:25", + "referencedDeclaration": 9009, + "src": "2495:7:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } } @@ -3671,24 +3671,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } ], - "id": 6484, + "id": 9045, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2487:7:25", + "src": "2487:7:36", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 6486, + "id": 9047, "isConstant": false, "isLValue": false, "isPure": false, @@ -3696,7 +3696,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2487:16:25", + "src": "2487:16:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3704,12 +3704,12 @@ }, { "argumentTypes": null, - "id": 6487, + "id": 9048, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6428, - "src": "2505:6:25", + "referencedDeclaration": 8989, + "src": "2505:6:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3719,18 +3719,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 6488, + "id": 9049, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "2513:3:25", + "referencedDeclaration": 10042, + "src": "2513:3:36", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 6489, + "id": 9050, "isConstant": false, "isLValue": false, "isPure": false, @@ -3738,7 +3738,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2513:10:25", + "src": "2513:10:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3764,18 +3764,18 @@ "typeString": "address" } ], - "id": 6480, + "id": 9041, "name": "Exchange", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6269, - "src": "2458:8:25", + "referencedDeclaration": 8830, + "src": "2458:8:36", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_address_$returns$__$", "typeString": "function (address,address,uint256,address)" } }, - "id": 6490, + "id": 9051, "isConstant": false, "isLValue": false, "isPure": false, @@ -3783,72 +3783,72 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2458:66:25", + "src": "2458:66:36", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6491, + "id": 9052, "nodeType": "EmitStatement", - "src": "2453:71:25" + "src": "2453:71:36" } ] }, "documentation": null, - "id": 6493, + "id": 9054, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 6431, + "id": 8992, "modifierName": { "argumentTypes": null, - "id": 6430, + "id": 8991, "name": "nonReentrant", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6689, - "src": "1975:12:25", + "referencedDeclaration": 9330, + "src": "1975:12:36", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1975:12:25" + "src": "1975:12:36" } ], "name": "exchange", "nodeType": "FunctionDefinition", "parameters": { - "id": 6429, + "id": 8990, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6426, + "id": 8987, "name": "fromToken", "nodeType": "VariableDeclaration", - "scope": 6493, - "src": "1936:15:25", + "scope": 9054, + "src": "1936:15:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" }, "typeName": { "contractScope": null, - "id": 6425, + "id": 8986, "name": "ERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7017, - "src": "1936:5:25", + "referencedDeclaration": 9765, + "src": "1936:5:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, @@ -3857,11 +3857,11 @@ }, { "constant": false, - "id": 6428, + "id": 8989, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 6493, - "src": "1953:11:25", + "scope": 9054, + "src": "1953:11:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3869,10 +3869,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6427, + "id": 8988, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1953:4:25", + "src": "1953:4:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3882,40 +3882,40 @@ "visibility": "internal" } ], - "src": "1935:30:25" + "src": "1935:30:36" }, "payable": false, "returnParameters": { - "id": 6432, + "id": 8993, "nodeType": "ParameterList", "parameters": [], - "src": "1988:0:25" + "src": "1988:0:36" }, - "scope": 6494, - "src": "1918:613:25", + "scope": 9055, + "src": "1918:613:36", "stateMutability": "nonpayable", - "superFunction": 6177, + "superFunction": 8738, "visibility": "external" } ], - "scope": 6495, - "src": "381:2152:25" + "scope": 9056, + "src": "381:2152:36" } ], - "src": "0:2534:25" + "src": "0:2534:36" }, "legacyAST": { "absolutePath": "/home/circleci/code/contracts/token/exchanger/TokenExchanger.sol", "exportedSymbols": { "TokenExchanger": [ - 6494 + 9055 ] }, - "id": 6495, + "id": 9056, "nodeType": "SourceUnit", "nodes": [ { - "id": 6224, + "id": 8785, "literals": [ "solidity", "^", @@ -3923,82 +3923,82 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:25" + "src": "0:24:36" }, { "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 6225, + "id": 8786, "nodeType": "ImportDirective", - "scope": 6495, - "sourceUnit": 6941, - "src": "26:63:25", + "scope": 9056, + "sourceUnit": 9689, + "src": "26:63:36", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 6226, + "id": 8787, "nodeType": "ImportDirective", - "scope": 6495, - "sourceUnit": 6855, - "src": "90:59:25", + "scope": 9056, + "sourceUnit": 9603, + "src": "90:59:36", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/SafeERC20.sol", "file": "openzeppelin-solidity/contracts/token/ERC20/SafeERC20.sol", - "id": 6227, + "id": 8788, "nodeType": "ImportDirective", - "scope": 6495, - "sourceUnit": 7112, - "src": "150:67:25", + "scope": 9056, + "sourceUnit": 9860, + "src": "150:67:36", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "openzeppelin-solidity/contracts/ReentrancyGuard.sol", "file": "openzeppelin-solidity/contracts/ReentrancyGuard.sol", - "id": 6228, + "id": 8789, "nodeType": "ImportDirective", - "scope": 6495, - "sourceUnit": 6691, - "src": "218:61:25", + "scope": 9056, + "sourceUnit": 9332, + "src": "218:61:36", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/versioning/Versionable.sol", "file": "../../versioning/Versionable.sol", - "id": 6229, + "id": 8790, "nodeType": "ImportDirective", - "scope": 6495, - "sourceUnit": 6510, - "src": "280:42:25", + "scope": 9056, + "sourceUnit": 9071, + "src": "280:42:36", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/token/WToken.sol", "file": "../WToken.sol", - "id": 6230, + "id": 8791, "nodeType": "ImportDirective", - "scope": 6495, - "sourceUnit": 5926, - "src": "323:23:25", + "scope": 9056, + "sourceUnit": 8487, + "src": "323:23:36", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/token/exchanger/ITokenExchanger.sol", "file": "./ITokenExchanger.sol", - "id": 6231, + "id": 8792, "nodeType": "ImportDirective", - "scope": 6495, - "sourceUnit": 6188, - "src": "347:31:25", + "scope": 9056, + "sourceUnit": 8749, + "src": "347:31:36", "symbolAliases": [], "unitAlias": "" }, @@ -4008,120 +4008,120 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 6232, + "id": 8793, "name": "ITokenExchanger", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6187, - "src": "408:15:25", + "referencedDeclaration": 8748, + "src": "408:15:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$6187", + "typeIdentifier": "t_contract$_ITokenExchanger_$8748", "typeString": "contract ITokenExchanger" } }, - "id": 6233, + "id": 8794, "nodeType": "InheritanceSpecifier", - "src": "408:15:25" + "src": "408:15:36" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 6234, + "id": 8795, "name": "Versionable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6509, - "src": "425:11:25", + "referencedDeclaration": 9070, + "src": "425:11:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_Versionable_$6509", + "typeIdentifier": "t_contract$_Versionable_$9070", "typeString": "contract Versionable" } }, - "id": 6235, + "id": 8796, "nodeType": "InheritanceSpecifier", - "src": "425:11:25" + "src": "425:11:36" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 6236, + "id": 8797, "name": "Ownable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6940, - "src": "438:7:25", + "referencedDeclaration": 9688, + "src": "438:7:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$6940", + "typeIdentifier": "t_contract$_Ownable_$9688", "typeString": "contract Ownable" } }, - "id": 6237, + "id": 8798, "nodeType": "InheritanceSpecifier", - "src": "438:7:25" + "src": "438:7:36" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 6238, + "id": 8799, "name": "ReentrancyGuard", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6690, - "src": "447:15:25", + "referencedDeclaration": 9331, + "src": "447:15:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ReentrancyGuard_$6690", + "typeIdentifier": "t_contract$_ReentrancyGuard_$9331", "typeString": "contract ReentrancyGuard" } }, - "id": 6239, + "id": 8800, "nodeType": "InheritanceSpecifier", - "src": "447:15:25" + "src": "447:15:36" } ], "contractDependencies": [ - 6178, - 6187, - 6222, - 6509, - 6690, - 6940 + 8739, + 8748, + 8783, + 9070, + 9331, + 9688 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 6494, + "id": 9055, "linearizedBaseContracts": [ - 6494, - 6690, - 6940, - 6509, - 6187, - 6222, - 6178 + 9055, + 9331, + 9688, + 9070, + 8748, + 8783, + 8739 ], "name": "TokenExchanger", "nodeType": "ContractDefinition", "nodes": [ { - "id": 6242, + "id": 8803, "libraryName": { "contractScope": null, - "id": 6240, + "id": 8801, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6854, - "src": "475:8:25", + "referencedDeclaration": 9602, + "src": "475:8:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$6854", + "typeIdentifier": "t_contract$_SafeMath_$9602", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "469:24:25", + "src": "469:24:36", "typeName": { - "id": 6241, + "id": 8802, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "488:4:25", + "src": "488:4:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4129,74 +4129,74 @@ } }, { - "id": 6245, + "id": 8806, "libraryName": { "contractScope": null, - "id": 6243, + "id": 8804, "name": "SafeERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7111, - "src": "504:9:25", + "referencedDeclaration": 9859, + "src": "504:9:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeERC20_$7111", + "typeIdentifier": "t_contract$_SafeERC20_$9859", "typeString": "library SafeERC20" } }, "nodeType": "UsingForDirective", - "src": "498:26:25", + "src": "498:26:36", "typeName": { "contractScope": null, - "id": 6244, + "id": 8805, "name": "ERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7017, - "src": "518:5:25", + "referencedDeclaration": 9765, + "src": "518:5:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } } }, { "constant": false, - "id": 6249, + "id": 8810, "name": "listingTokenToWToken", "nodeType": "VariableDeclaration", - "scope": 6494, - "src": "530:54:25", + "scope": 9055, + "src": "530:54:36", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_contract$_WToken_$5925_$", + "typeIdentifier": "t_mapping$_t_address_$_t_contract$_WToken_$8486_$", "typeString": "mapping(address => contract WToken)" }, "typeName": { - "id": 6248, + "id": 8809, "keyType": { - "id": 6246, + "id": 8807, "name": "address", "nodeType": "ElementaryTypeName", - "src": "538:7:25", + "src": "538:7:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "530:26:25", + "src": "530:26:36", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_contract$_WToken_$5925_$", + "typeIdentifier": "t_mapping$_t_address_$_t_contract$_WToken_$8486_$", "typeString": "mapping(address => contract WToken)" }, "valueType": { "contractScope": null, - "id": 6247, + "id": 8808, "name": "WToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5925, - "src": "549:6:25", + "referencedDeclaration": 8486, + "src": "549:6:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } } @@ -4206,44 +4206,44 @@ }, { "constant": false, - "id": 6253, + "id": 8814, "name": "listingWTokenToToken", "nodeType": "VariableDeclaration", - "scope": 6494, - "src": "590:53:25", + "scope": 9055, + "src": "590:53:36", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_contract$_ERC20_$7017_$", + "typeIdentifier": "t_mapping$_t_address_$_t_contract$_ERC20_$9765_$", "typeString": "mapping(address => contract ERC20)" }, "typeName": { - "id": 6252, + "id": 8813, "keyType": { - "id": 6250, + "id": 8811, "name": "address", "nodeType": "ElementaryTypeName", - "src": "598:7:25", + "src": "598:7:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "590:25:25", + "src": "590:25:36", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_contract$_ERC20_$7017_$", + "typeIdentifier": "t_mapping$_t_address_$_t_contract$_ERC20_$9765_$", "typeString": "mapping(address => contract ERC20)" }, "valueType": { "contractScope": null, - "id": 6251, + "id": 8812, "name": "ERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7017, - "src": "609:5:25", + "referencedDeclaration": 9765, + "src": "609:5:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } } @@ -4253,11 +4253,11 @@ }, { "constant": false, - "id": 6259, + "id": 8820, "name": "pairs", "nodeType": "VariableDeclaration", - "scope": 6494, - "src": "649:50:25", + "scope": 9055, + "src": "649:50:36", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -4265,46 +4265,46 @@ "typeString": "mapping(address => mapping(address => bool))" }, "typeName": { - "id": 6258, + "id": 8819, "keyType": { - "id": 6254, + "id": 8815, "name": "address", "nodeType": "ElementaryTypeName", - "src": "657:7:25", + "src": "657:7:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "649:44:25", + "src": "649:44:36", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(address => mapping(address => bool))" }, "valueType": { - "id": 6257, + "id": 8818, "keyType": { - "id": 6255, + "id": 8816, "name": "address", "nodeType": "ElementaryTypeName", - "src": "676:7:25", + "src": "676:7:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "668:24:25", + "src": "668:24:36", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { - "id": 6256, + "id": 8817, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "687:4:25", + "src": "687:4:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4318,21 +4318,21 @@ { "anonymous": false, "documentation": null, - "id": 6269, + "id": 8830, "name": "Exchange", "nodeType": "EventDefinition", "parameters": { - "id": 6268, + "id": 8829, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6261, + "id": 8822, "indexed": true, "name": "from", "nodeType": "VariableDeclaration", - "scope": 6269, - "src": "721:20:25", + "scope": 8830, + "src": "721:20:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4340,10 +4340,10 @@ "typeString": "address" }, "typeName": { - "id": 6260, + "id": 8821, "name": "address", "nodeType": "ElementaryTypeName", - "src": "721:7:25", + "src": "721:7:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4354,12 +4354,12 @@ }, { "constant": false, - "id": 6263, + "id": 8824, "indexed": true, "name": "to", "nodeType": "VariableDeclaration", - "scope": 6269, - "src": "743:18:25", + "scope": 8830, + "src": "743:18:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4367,10 +4367,10 @@ "typeString": "address" }, "typeName": { - "id": 6262, + "id": 8823, "name": "address", "nodeType": "ElementaryTypeName", - "src": "743:7:25", + "src": "743:7:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4381,12 +4381,12 @@ }, { "constant": false, - "id": 6265, + "id": 8826, "indexed": false, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 6269, - "src": "763:11:25", + "scope": 8830, + "src": "763:11:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4394,10 +4394,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6264, + "id": 8825, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "763:4:25", + "src": "763:4:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4408,12 +4408,12 @@ }, { "constant": false, - "id": 6267, + "id": 8828, "indexed": true, "name": "sender", "nodeType": "VariableDeclaration", - "scope": 6269, - "src": "776:22:25", + "scope": 8830, + "src": "776:22:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4421,10 +4421,10 @@ "typeString": "address" }, "typeName": { - "id": 6266, + "id": 8827, "name": "address", "nodeType": "ElementaryTypeName", - "src": "776:7:25", + "src": "776:7:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4434,19 +4434,19 @@ "visibility": "internal" } ], - "src": "720:79:25" + "src": "720:79:36" }, - "src": "706:94:25" + "src": "706:94:36" }, { "body": { - "id": 6277, + "id": 8838, "nodeType": "Block", - "src": "860:2:25", + "src": "860:2:36", "statements": [] }, "documentation": null, - "id": 6278, + "id": 8839, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -4455,49 +4455,49 @@ "arguments": [ { "argumentTypes": null, - "id": 6274, + "id": 8835, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6271, - "src": "844:7:25", + "referencedDeclaration": 8832, + "src": "844:7:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 6275, + "id": 8836, "modifierName": { "argumentTypes": null, - "id": 6273, + "id": 8834, "name": "Versionable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6509, - "src": "832:11:25", + "referencedDeclaration": 9070, + "src": "832:11:36", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Versionable_$6509_$", + "typeIdentifier": "t_type$_t_contract$_Versionable_$9070_$", "typeString": "type(contract Versionable)" } }, "nodeType": "ModifierInvocation", - "src": "832:20:25" + "src": "832:20:36" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 6272, + "id": 8833, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6271, + "id": 8832, "name": "version", "nodeType": "VariableDeclaration", - "scope": 6278, - "src": "818:12:25", + "scope": 8839, + "src": "818:12:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4505,10 +4505,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6270, + "id": 8831, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "818:4:25", + "src": "818:4:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4518,26 +4518,26 @@ "visibility": "internal" } ], - "src": "817:14:25" + "src": "817:14:36" }, "payable": false, "returnParameters": { - "id": 6276, + "id": 8837, "nodeType": "ParameterList", "parameters": [], - "src": "860:0:25" + "src": "860:0:36" }, - "scope": 6494, - "src": "806:56:25", + "scope": 9055, + "src": "806:56:36", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 6337, + "id": 8898, "nodeType": "Block", - "src": "942:290:25", + "src": "942:290:36", "statements": [ { "expression": { @@ -4549,21 +4549,21 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 6292, + "id": 8853, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6288, + "id": 8849, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6280, - "src": "960:5:25", + "referencedDeclaration": 8841, + "src": "960:5:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, @@ -4575,14 +4575,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 6290, + "id": 8851, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "977:1:25", + "src": "977:1:36", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4598,20 +4598,20 @@ "typeString": "int_const 0" } ], - "id": 6289, + "id": 8850, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "969:7:25", + "src": "969:7:36", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 6291, + "id": 8852, "isConstant": false, "isLValue": false, "isPure": true, @@ -4619,13 +4619,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "969:10:25", + "src": "969:10:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "960:19:25", + "src": "960:19:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4639,21 +4639,21 @@ "typeString": "bool" } ], - "id": 6287, + "id": 8848, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "952:7:25", + "referencedDeclaration": 10045, + "src": "952:7:36", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 6293, + "id": 8854, "isConstant": false, "isLValue": false, "isPure": false, @@ -4661,15 +4661,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "952:28:25", + "src": "952:28:36", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6294, + "id": 8855, "nodeType": "ExpressionStatement", - "src": "952:28:25" + "src": "952:28:36" }, { "expression": { @@ -4681,21 +4681,21 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 6300, + "id": 8861, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6296, + "id": 8857, "name": "wToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6282, - "src": "998:6:25", + "referencedDeclaration": 8843, + "src": "998:6:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, @@ -4707,14 +4707,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 6298, + "id": 8859, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1016:1:25", + "src": "1016:1:36", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4730,20 +4730,20 @@ "typeString": "int_const 0" } ], - "id": 6297, + "id": 8858, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1008:7:25", + "src": "1008:7:36", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 6299, + "id": 8860, "isConstant": false, "isLValue": false, "isPure": true, @@ -4751,13 +4751,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1008:10:25", + "src": "1008:10:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "998:20:25", + "src": "998:20:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4771,21 +4771,21 @@ "typeString": "bool" } ], - "id": 6295, + "id": 8856, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "990:7:25", + "referencedDeclaration": 10045, + "src": "990:7:36", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 6301, + "id": 8862, "isConstant": false, "isLValue": false, "isPure": false, @@ -4793,15 +4793,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "990:29:25", + "src": "990:29:36", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6302, + "id": 8863, "nodeType": "ExpressionStatement", - "src": "990:29:25" + "src": "990:29:36" }, { "expression": { @@ -4810,24 +4810,24 @@ { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" }, - "id": 6306, + "id": 8867, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6304, + "id": 8865, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6280, - "src": "1037:5:25", + "referencedDeclaration": 8841, + "src": "1037:5:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, @@ -4835,18 +4835,18 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 6305, + "id": 8866, "name": "wToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6282, - "src": "1046:6:25", + "referencedDeclaration": 8843, + "src": "1046:6:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, - "src": "1037:15:25", + "src": "1037:15:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4860,21 +4860,21 @@ "typeString": "bool" } ], - "id": 6303, + "id": 8864, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "1029:7:25", + "referencedDeclaration": 10045, + "src": "1029:7:36", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 6307, + "id": 8868, "isConstant": false, "isLValue": false, "isPure": false, @@ -4882,15 +4882,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1029:24:25", + "src": "1029:24:36", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6308, + "id": 8869, "nodeType": "ExpressionStatement", - "src": "1029:24:25" + "src": "1029:24:36" }, { "expression": { @@ -4898,7 +4898,7 @@ "arguments": [ { "argumentTypes": null, - "id": 6314, + "id": 8875, "isConstant": false, "isLValue": false, "isPure": false, @@ -4906,33 +4906,33 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "1071:23:25", + "src": "1071:23:36", "subExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 6311, + "id": 8872, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6280, - "src": "1080:5:25", + "referencedDeclaration": 8841, + "src": "1080:5:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, { "argumentTypes": null, - "id": 6312, + "id": 8873, "name": "wToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6282, - "src": "1087:6:25", + "referencedDeclaration": 8843, + "src": "1087:6:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } } @@ -4940,28 +4940,28 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" }, { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } ], - "id": 6310, + "id": 8871, "name": "hasPair", "nodeType": "Identifier", "overloadedDeclarations": [ - 6360 + 8921 ], - "referencedDeclaration": 6360, - "src": "1072:7:25", + "referencedDeclaration": 8921, + "src": "1072:7:36", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_contract$_ERC20_$7017_$_t_contract$_ERC20_$7017_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_view$_t_contract$_ERC20_$9765_$_t_contract$_ERC20_$9765_$returns$_t_bool_$", "typeString": "function (contract ERC20,contract ERC20) view returns (bool)" } }, - "id": 6313, + "id": 8874, "isConstant": false, "isLValue": false, "isPure": false, @@ -4969,7 +4969,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1072:22:25", + "src": "1072:22:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4988,21 +4988,21 @@ "typeString": "bool" } ], - "id": 6309, + "id": 8870, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "1063:7:25", + "referencedDeclaration": 10045, + "src": "1063:7:36", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 6315, + "id": 8876, "isConstant": false, "isLValue": false, "isPure": false, @@ -5010,20 +5010,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1063:32:25", + "src": "1063:32:36", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6316, + "id": 8877, "nodeType": "ExpressionStatement", - "src": "1063:32:25" + "src": "1063:32:36" }, { "expression": { "argumentTypes": null, - "id": 6321, + "id": 8882, "isConstant": false, "isLValue": false, "isPure": false, @@ -5032,28 +5032,28 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 6317, + "id": 8878, "name": "listingTokenToWToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6249, - "src": "1106:20:25", + "referencedDeclaration": 8810, + "src": "1106:20:36", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_contract$_WToken_$5925_$", + "typeIdentifier": "t_mapping$_t_address_$_t_contract$_WToken_$8486_$", "typeString": "mapping(address => contract WToken)" } }, - "id": 6319, + "id": 8880, "indexExpression": { "argumentTypes": null, - "id": 6318, + "id": 8879, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6280, - "src": "1127:5:25", + "referencedDeclaration": 8841, + "src": "1127:5:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, @@ -5062,9 +5062,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1106:27:25", + "src": "1106:27:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, @@ -5072,31 +5072,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 6320, + "id": 8881, "name": "wToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6282, - "src": "1136:6:25", + "referencedDeclaration": 8843, + "src": "1136:6:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, - "src": "1106:36:25", + "src": "1106:36:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, - "id": 6322, + "id": 8883, "nodeType": "ExpressionStatement", - "src": "1106:36:25" + "src": "1106:36:36" }, { "expression": { "argumentTypes": null, - "id": 6327, + "id": 8888, "isConstant": false, "isLValue": false, "isPure": false, @@ -5105,28 +5105,28 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 6323, + "id": 8884, "name": "listingWTokenToToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6253, - "src": "1152:20:25", + "referencedDeclaration": 8814, + "src": "1152:20:36", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_contract$_ERC20_$7017_$", + "typeIdentifier": "t_mapping$_t_address_$_t_contract$_ERC20_$9765_$", "typeString": "mapping(address => contract ERC20)" } }, - "id": 6325, + "id": 8886, "indexExpression": { "argumentTypes": null, - "id": 6324, + "id": 8885, "name": "wToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6282, - "src": "1173:6:25", + "referencedDeclaration": 8843, + "src": "1173:6:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, @@ -5135,9 +5135,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1152:28:25", + "src": "1152:28:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, @@ -5145,31 +5145,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 6326, + "id": 8887, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6280, - "src": "1183:5:25", + "referencedDeclaration": 8841, + "src": "1183:5:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, - "src": "1152:36:25", + "src": "1152:36:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, - "id": 6328, + "id": 8889, "nodeType": "ExpressionStatement", - "src": "1152:36:25" + "src": "1152:36:36" }, { "expression": { "argumentTypes": null, - "id": 6335, + "id": 8896, "isConstant": false, "isLValue": false, "isPure": false, @@ -5180,28 +5180,28 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 6329, + "id": 8890, "name": "pairs", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6259, - "src": "1198:5:25", + "referencedDeclaration": 8820, + "src": "1198:5:36", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(address => mapping(address => bool))" } }, - "id": 6332, + "id": 8893, "indexExpression": { "argumentTypes": null, - "id": 6330, + "id": 8891, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6280, - "src": "1204:5:25", + "referencedDeclaration": 8841, + "src": "1204:5:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, @@ -5210,23 +5210,23 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1198:12:25", + "src": "1198:12:36", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 6333, + "id": 8894, "indexExpression": { "argumentTypes": null, - "id": 6331, + "id": 8892, "name": "wToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6282, - "src": "1211:6:25", + "referencedDeclaration": 8843, + "src": "1211:6:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, @@ -5235,7 +5235,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1198:20:25", + "src": "1198:20:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5246,14 +5246,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 6334, + "id": 8895, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1221:4:25", + "src": "1221:4:36", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -5261,72 +5261,72 @@ }, "value": "true" }, - "src": "1198:27:25", + "src": "1198:27:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 6336, + "id": 8897, "nodeType": "ExpressionStatement", - "src": "1198:27:25" + "src": "1198:27:36" } ] }, "documentation": null, - "id": 6338, + "id": 8899, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 6285, + "id": 8846, "modifierName": { "argumentTypes": null, - "id": 6284, + "id": 8845, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6888, - "src": "932:9:25", + "referencedDeclaration": 9636, + "src": "932:9:36", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "932:9:25" + "src": "932:9:36" } ], "name": "addTokenToListing", "nodeType": "FunctionDefinition", "parameters": { - "id": 6283, + "id": 8844, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6280, + "id": 8841, "name": "token", "nodeType": "VariableDeclaration", - "scope": 6338, - "src": "895:11:25", + "scope": 8899, + "src": "895:11:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" }, "typeName": { "contractScope": null, - "id": 6279, + "id": 8840, "name": "ERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7017, - "src": "895:5:25", + "referencedDeclaration": 9765, + "src": "895:5:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, @@ -5335,26 +5335,26 @@ }, { "constant": false, - "id": 6282, + "id": 8843, "name": "wToken", "nodeType": "VariableDeclaration", - "scope": 6338, - "src": "908:13:25", + "scope": 8899, + "src": "908:13:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" }, "typeName": { "contractScope": null, - "id": 6281, + "id": 8842, "name": "WToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5925, - "src": "908:6:25", + "referencedDeclaration": 8486, + "src": "908:6:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, @@ -5362,26 +5362,26 @@ "visibility": "internal" } ], - "src": "894:28:25" + "src": "894:28:36" }, "payable": false, "returnParameters": { - "id": 6286, + "id": 8847, "nodeType": "ParameterList", "parameters": [], - "src": "942:0:25" + "src": "942:0:36" }, - "scope": 6494, - "src": "868:364:25", + "scope": 9055, + "src": "868:364:36", "stateMutability": "nonpayable", - "superFunction": 6198, + "superFunction": 8759, "visibility": "external" }, { "body": { - "id": 6359, + "id": 8920, "nodeType": "Block", - "src": "1310:70:25", + "src": "1310:70:36", "statements": [ { "expression": { @@ -5390,7 +5390,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 6357, + "id": 8918, "isConstant": false, "isLValue": false, "isPure": false, @@ -5401,28 +5401,28 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 6347, + "id": 8908, "name": "pairs", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6259, - "src": "1327:5:25", + "referencedDeclaration": 8820, + "src": "1327:5:36", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(address => mapping(address => bool))" } }, - "id": 6349, + "id": 8910, "indexExpression": { "argumentTypes": null, - "id": 6348, + "id": 8909, "name": "token1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6340, - "src": "1333:6:25", + "referencedDeclaration": 8901, + "src": "1333:6:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, @@ -5431,23 +5431,23 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1327:13:25", + "src": "1327:13:36", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 6351, + "id": 8912, "indexExpression": { "argumentTypes": null, - "id": 6350, + "id": 8911, "name": "token2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6342, - "src": "1341:6:25", + "referencedDeclaration": 8903, + "src": "1341:6:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, @@ -5456,7 +5456,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1327:21:25", + "src": "1327:21:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5470,28 +5470,28 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 6352, + "id": 8913, "name": "pairs", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6259, - "src": "1352:5:25", + "referencedDeclaration": 8820, + "src": "1352:5:36", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(address => mapping(address => bool))" } }, - "id": 6354, + "id": 8915, "indexExpression": { "argumentTypes": null, - "id": 6353, + "id": 8914, "name": "token2", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6342, - "src": "1358:6:25", + "referencedDeclaration": 8903, + "src": "1358:6:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, @@ -5500,23 +5500,23 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1352:13:25", + "src": "1352:13:36", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 6356, + "id": 8917, "indexExpression": { "argumentTypes": null, - "id": 6355, + "id": 8916, "name": "token1", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6340, - "src": "1366:6:25", + "referencedDeclaration": 8901, + "src": "1366:6:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, @@ -5525,27 +5525,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1352:21:25", + "src": "1352:21:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "1327:46:25", + "src": "1327:46:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 6346, - "id": 6358, + "functionReturnParameters": 8907, + "id": 8919, "nodeType": "Return", - "src": "1320:53:25" + "src": "1320:53:36" } ] }, "documentation": null, - "id": 6360, + "id": 8921, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -5553,31 +5553,31 @@ "name": "hasPair", "nodeType": "FunctionDefinition", "parameters": { - "id": 6343, + "id": 8904, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6340, + "id": 8901, "name": "token1", "nodeType": "VariableDeclaration", - "scope": 6360, - "src": "1255:12:25", + "scope": 8921, + "src": "1255:12:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" }, "typeName": { "contractScope": null, - "id": 6339, + "id": 8900, "name": "ERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7017, - "src": "1255:5:25", + "referencedDeclaration": 9765, + "src": "1255:5:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, @@ -5586,26 +5586,26 @@ }, { "constant": false, - "id": 6342, + "id": 8903, "name": "token2", "nodeType": "VariableDeclaration", - "scope": 6360, - "src": "1269:12:25", + "scope": 8921, + "src": "1269:12:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" }, "typeName": { "contractScope": null, - "id": 6341, + "id": 8902, "name": "ERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7017, - "src": "1269:5:25", + "referencedDeclaration": 9765, + "src": "1269:5:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, @@ -5613,20 +5613,20 @@ "visibility": "internal" } ], - "src": "1254:28:25" + "src": "1254:28:36" }, "payable": false, "returnParameters": { - "id": 6346, + "id": 8907, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6345, + "id": 8906, "name": "", "nodeType": "VariableDeclaration", - "scope": 6360, - "src": "1304:4:25", + "scope": 8921, + "src": "1304:4:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5634,10 +5634,10 @@ "typeString": "bool" }, "typeName": { - "id": 6344, + "id": 8905, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1304:4:25", + "src": "1304:4:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5647,19 +5647,19 @@ "visibility": "internal" } ], - "src": "1303:6:25" + "src": "1303:6:36" }, - "scope": 6494, - "src": "1238:142:25", + "scope": 9055, + "src": "1238:142:36", "stateMutability": "view", - "superFunction": 6207, + "superFunction": 8768, "visibility": "public" }, { "body": { - "id": 6381, + "id": 8942, "nodeType": "Block", - "src": "1470:99:25", + "src": "1470:99:36", "statements": [ { "expression": { @@ -5671,19 +5671,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 6372, + "id": 8933, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6368, + "id": 8929, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6362, - "src": "1488:5:25", + "referencedDeclaration": 8923, + "src": "1488:5:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5697,14 +5697,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 6370, + "id": 8931, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1505:1:25", + "src": "1505:1:36", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5720,20 +5720,20 @@ "typeString": "int_const 0" } ], - "id": 6369, + "id": 8930, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1497:7:25", + "src": "1497:7:36", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 6371, + "id": 8932, "isConstant": false, "isLValue": false, "isPure": true, @@ -5741,13 +5741,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1497:10:25", + "src": "1497:10:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1488:19:25", + "src": "1488:19:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5761,21 +5761,21 @@ "typeString": "bool" } ], - "id": 6367, + "id": 8928, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "1480:7:25", + "referencedDeclaration": 10045, + "src": "1480:7:36", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 6373, + "id": 8934, "isConstant": false, "isLValue": false, "isPure": false, @@ -5783,34 +5783,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1480:28:25", + "src": "1480:28:36", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6374, + "id": 8935, "nodeType": "ExpressionStatement", - "src": "1480:28:25" + "src": "1480:28:36" }, { "expression": { "argumentTypes": null, - "id": 6379, + "id": 8940, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 6375, + "id": 8936, "name": "wTokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6365, - "src": "1519:13:25", + "referencedDeclaration": 8926, + "src": "1519:13:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, @@ -5820,26 +5820,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 6376, + "id": 8937, "name": "listingTokenToWToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6249, - "src": "1535:20:25", + "referencedDeclaration": 8810, + "src": "1535:20:36", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_contract$_WToken_$5925_$", + "typeIdentifier": "t_mapping$_t_address_$_t_contract$_WToken_$8486_$", "typeString": "mapping(address => contract WToken)" } }, - "id": 6378, + "id": 8939, "indexExpression": { "argumentTypes": null, - "id": 6377, + "id": 8938, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6362, - "src": "1556:5:25", + "referencedDeclaration": 8923, + "src": "1556:5:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5850,26 +5850,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1535:27:25", + "src": "1535:27:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, - "src": "1519:43:25", + "src": "1519:43:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, - "id": 6380, + "id": 8941, "nodeType": "ExpressionStatement", - "src": "1519:43:25" + "src": "1519:43:36" } ] }, "documentation": null, - "id": 6382, + "id": 8943, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -5877,16 +5877,16 @@ "name": "getWTokenByToken", "nodeType": "FunctionDefinition", "parameters": { - "id": 6363, + "id": 8924, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6362, + "id": 8923, "name": "token", "nodeType": "VariableDeclaration", - "scope": 6382, - "src": "1412:13:25", + "scope": 8943, + "src": "1412:13:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5894,10 +5894,10 @@ "typeString": "address" }, "typeName": { - "id": 6361, + "id": 8922, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1412:7:25", + "src": "1412:7:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5907,35 +5907,35 @@ "visibility": "internal" } ], - "src": "1411:15:25" + "src": "1411:15:36" }, "payable": false, "returnParameters": { - "id": 6366, + "id": 8927, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6365, + "id": 8926, "name": "wTokenAddress", "nodeType": "VariableDeclaration", - "scope": 6382, - "src": "1448:20:25", + "scope": 8943, + "src": "1448:20:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" }, "typeName": { "contractScope": null, - "id": 6364, + "id": 8925, "name": "WToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5925, - "src": "1448:6:25", + "referencedDeclaration": 8486, + "src": "1448:6:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, @@ -5943,19 +5943,19 @@ "visibility": "internal" } ], - "src": "1447:22:25" + "src": "1447:22:36" }, - "scope": 6494, - "src": "1386:183:25", + "scope": 9055, + "src": "1386:183:36", "stateMutability": "view", - "superFunction": 6214, + "superFunction": 8775, "visibility": "public" }, { "body": { - "id": 6403, + "id": 8964, "nodeType": "Block", - "src": "1658:100:25", + "src": "1658:100:36", "statements": [ { "expression": { @@ -5967,19 +5967,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 6394, + "id": 8955, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6390, + "id": 8951, "name": "wToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6384, - "src": "1676:6:25", + "referencedDeclaration": 8945, + "src": "1676:6:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5993,14 +5993,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 6392, + "id": 8953, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1694:1:25", + "src": "1694:1:36", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6016,20 +6016,20 @@ "typeString": "int_const 0" } ], - "id": 6391, + "id": 8952, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1686:7:25", + "src": "1686:7:36", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 6393, + "id": 8954, "isConstant": false, "isLValue": false, "isPure": true, @@ -6037,13 +6037,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1686:10:25", + "src": "1686:10:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1676:20:25", + "src": "1676:20:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6057,21 +6057,21 @@ "typeString": "bool" } ], - "id": 6389, + "id": 8950, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "1668:7:25", + "referencedDeclaration": 10045, + "src": "1668:7:36", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 6395, + "id": 8956, "isConstant": false, "isLValue": false, "isPure": false, @@ -6079,34 +6079,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1668:29:25", + "src": "1668:29:36", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6396, + "id": 8957, "nodeType": "ExpressionStatement", - "src": "1668:29:25" + "src": "1668:29:36" }, { "expression": { "argumentTypes": null, - "id": 6401, + "id": 8962, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 6397, + "id": 8958, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6387, - "src": "1708:12:25", + "referencedDeclaration": 8948, + "src": "1708:12:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, @@ -6116,26 +6116,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 6398, + "id": 8959, "name": "listingWTokenToToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6253, - "src": "1723:20:25", + "referencedDeclaration": 8814, + "src": "1723:20:36", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_contract$_ERC20_$7017_$", + "typeIdentifier": "t_mapping$_t_address_$_t_contract$_ERC20_$9765_$", "typeString": "mapping(address => contract ERC20)" } }, - "id": 6400, + "id": 8961, "indexExpression": { "argumentTypes": null, - "id": 6399, + "id": 8960, "name": "wToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6384, - "src": "1744:6:25", + "referencedDeclaration": 8945, + "src": "1744:6:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6146,26 +6146,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1723:28:25", + "src": "1723:28:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, - "src": "1708:43:25", + "src": "1708:43:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, - "id": 6402, + "id": 8963, "nodeType": "ExpressionStatement", - "src": "1708:43:25" + "src": "1708:43:36" } ] }, "documentation": null, - "id": 6404, + "id": 8965, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -6173,16 +6173,16 @@ "name": "getTokenByWToken", "nodeType": "FunctionDefinition", "parameters": { - "id": 6385, + "id": 8946, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6384, + "id": 8945, "name": "wToken", "nodeType": "VariableDeclaration", - "scope": 6404, - "src": "1601:14:25", + "scope": 8965, + "src": "1601:14:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6190,10 +6190,10 @@ "typeString": "address" }, "typeName": { - "id": 6383, + "id": 8944, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1601:7:25", + "src": "1601:7:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6203,35 +6203,35 @@ "visibility": "internal" } ], - "src": "1600:16:25" + "src": "1600:16:36" }, "payable": false, "returnParameters": { - "id": 6388, + "id": 8949, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6387, + "id": 8948, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 6404, - "src": "1638:18:25", + "scope": 8965, + "src": "1638:18:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" }, "typeName": { "contractScope": null, - "id": 6386, + "id": 8947, "name": "ERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7017, - "src": "1638:5:25", + "referencedDeclaration": 9765, + "src": "1638:5:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, @@ -6239,19 +6239,19 @@ "visibility": "internal" } ], - "src": "1637:20:25" + "src": "1637:20:36" }, - "scope": 6494, - "src": "1575:183:25", + "scope": 9055, + "src": "1575:183:36", "stateMutability": "view", - "superFunction": 6221, + "superFunction": 8782, "visibility": "public" }, { "body": { - "id": 6423, + "id": 8984, "nodeType": "Block", - "src": "1858:54:25", + "src": "1858:54:36", "statements": [ { "expression": { @@ -6259,12 +6259,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6419, + "id": 8980, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6408, - "src": "1889:7:25", + "referencedDeclaration": 8969, + "src": "1889:7:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6272,12 +6272,12 @@ }, { "argumentTypes": null, - "id": 6420, + "id": 8981, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6410, - "src": "1898:6:25", + "referencedDeclaration": 8971, + "src": "1898:6:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6297,32 +6297,32 @@ ], "expression": { "argumentTypes": null, - "id": 6417, + "id": 8978, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6406, - "src": "1875:5:25", + "referencedDeclaration": 8967, + "src": "1875:5:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, - "id": 6418, + "id": 8979, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "approve", "nodeType": "MemberAccess", - "referencedDeclaration": 7008, - "src": "1875:13:25", + "referencedDeclaration": 9756, + "src": "1875:13:36", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 6421, + "id": 8982, "isConstant": false, "isLValue": false, "isPure": false, @@ -6330,73 +6330,73 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1875:30:25", + "src": "1875:30:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 6416, - "id": 6422, + "functionReturnParameters": 8977, + "id": 8983, "nodeType": "Return", - "src": "1868:37:25" + "src": "1868:37:36" } ] }, "documentation": null, - "id": 6424, + "id": 8985, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 6413, + "id": 8974, "modifierName": { "argumentTypes": null, - "id": 6412, + "id": 8973, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6888, - "src": "1833:9:25", + "referencedDeclaration": 9636, + "src": "1833:9:36", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1833:9:25" + "src": "1833:9:36" } ], "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 6411, + "id": 8972, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6406, + "id": 8967, "name": "token", "nodeType": "VariableDeclaration", - "scope": 6424, - "src": "1781:11:25", + "scope": 8985, + "src": "1781:11:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" }, "typeName": { "contractScope": null, - "id": 6405, + "id": 8966, "name": "ERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7017, - "src": "1781:5:25", + "referencedDeclaration": 9765, + "src": "1781:5:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, @@ -6405,11 +6405,11 @@ }, { "constant": false, - "id": 6408, + "id": 8969, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 6424, - "src": "1794:15:25", + "scope": 8985, + "src": "1794:15:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6417,10 +6417,10 @@ "typeString": "address" }, "typeName": { - "id": 6407, + "id": 8968, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1794:7:25", + "src": "1794:7:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6431,11 +6431,11 @@ }, { "constant": false, - "id": 6410, + "id": 8971, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 6424, - "src": "1811:11:25", + "scope": 8985, + "src": "1811:11:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6443,10 +6443,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6409, + "id": 8970, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1811:4:25", + "src": "1811:4:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6456,20 +6456,20 @@ "visibility": "internal" } ], - "src": "1780:43:25" + "src": "1780:43:36" }, "payable": false, "returnParameters": { - "id": 6416, + "id": 8977, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6415, + "id": 8976, "name": "", "nodeType": "VariableDeclaration", - "scope": 6424, - "src": "1852:4:25", + "scope": 8985, + "src": "1852:4:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6477,10 +6477,10 @@ "typeString": "bool" }, "typeName": { - "id": 6414, + "id": 8975, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1852:4:25", + "src": "1852:4:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6490,19 +6490,19 @@ "visibility": "internal" } ], - "src": "1851:6:25" + "src": "1851:6:36" }, - "scope": 6494, - "src": "1764:148:25", + "scope": 9055, + "src": "1764:148:36", "stateMutability": "nonpayable", - "superFunction": 6170, + "superFunction": 8731, "visibility": "external" }, { "body": { - "id": 6492, + "id": 9053, "nodeType": "Block", - "src": "1988:543:25", + "src": "1988:543:36", "statements": [ { "expression": { @@ -6514,19 +6514,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6436, + "id": 8997, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6434, + "id": 8995, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6428, - "src": "2006:6:25", + "referencedDeclaration": 8989, + "src": "2006:6:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6537,14 +6537,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 6435, + "id": 8996, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2015:1:25", + "src": "2015:1:36", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6552,7 +6552,7 @@ }, "value": "0" }, - "src": "2006:10:25", + "src": "2006:10:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6566,21 +6566,21 @@ "typeString": "bool" } ], - "id": 6433, + "id": 8994, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "1998:7:25", + "referencedDeclaration": 10045, + "src": "1998:7:36", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 6437, + "id": 8998, "isConstant": false, "isLValue": false, "isPure": false, @@ -6588,15 +6588,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1998:19:25", + "src": "1998:19:36", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6438, + "id": 8999, "nodeType": "ExpressionStatement", - "src": "1998:19:25" + "src": "1998:19:36" }, { "expression": { @@ -6608,21 +6608,21 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 6444, + "id": 9005, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6440, + "id": 9001, "name": "fromToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6426, - "src": "2035:9:25", + "referencedDeclaration": 8987, + "src": "2035:9:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, @@ -6634,14 +6634,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 6442, + "id": 9003, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2056:1:25", + "src": "2056:1:36", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6657,20 +6657,20 @@ "typeString": "int_const 0" } ], - "id": 6441, + "id": 9002, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2048:7:25", + "src": "2048:7:36", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 6443, + "id": 9004, "isConstant": false, "isLValue": false, "isPure": true, @@ -6678,13 +6678,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2048:10:25", + "src": "2048:10:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2035:23:25", + "src": "2035:23:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6698,21 +6698,21 @@ "typeString": "bool" } ], - "id": 6439, + "id": 9000, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "2027:7:25", + "referencedDeclaration": 10045, + "src": "2027:7:36", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 6445, + "id": 9006, "isConstant": false, "isLValue": false, "isPure": false, @@ -6720,43 +6720,43 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2027:32:25", + "src": "2027:32:36", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6446, + "id": 9007, "nodeType": "ExpressionStatement", - "src": "2027:32:25" + "src": "2027:32:36" }, { "assignments": [ - 6448 + 9009 ], "declarations": [ { "constant": false, - "id": 6448, + "id": 9009, "name": "toToken", "nodeType": "VariableDeclaration", - "scope": 6493, - "src": "2133:13:25", + "scope": 9054, + "src": "2133:13:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" }, "typeName": { "contractScope": null, - "id": 6447, + "id": 9008, "name": "ERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7017, - "src": "2133:5:25", + "referencedDeclaration": 9765, + "src": "2133:5:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, @@ -6764,20 +6764,20 @@ "visibility": "internal" } ], - "id": 6452, + "id": 9013, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 6450, + "id": 9011, "name": "fromToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6426, - "src": "2166:9:25", + "referencedDeclaration": 8987, + "src": "2166:9:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } } @@ -6785,24 +6785,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } ], - "id": 6449, + "id": 9010, "name": "getTokenByWToken", "nodeType": "Identifier", "overloadedDeclarations": [ - 6404 + 8965 ], - "referencedDeclaration": 6404, - "src": "2149:16:25", + "referencedDeclaration": 8965, + "src": "2149:16:36", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_contract$_ERC20_$7017_$", + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_contract$_ERC20_$9765_$", "typeString": "function (address) view returns (contract ERC20)" } }, - "id": 6451, + "id": 9012, "isConstant": false, "isLValue": false, "isPure": false, @@ -6810,14 +6810,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2149:27:25", + "src": "2149:27:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, "nodeType": "VariableDeclarationStatement", - "src": "2133:43:25" + "src": "2133:43:36" }, { "expression": { @@ -6829,21 +6829,21 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 6458, + "id": 9019, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6454, + "id": 9015, "name": "toToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6448, - "src": "2194:7:25", + "referencedDeclaration": 9009, + "src": "2194:7:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, @@ -6855,14 +6855,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 6456, + "id": 9017, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2213:1:25", + "src": "2213:1:36", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6878,20 +6878,20 @@ "typeString": "int_const 0" } ], - "id": 6455, + "id": 9016, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2205:7:25", + "src": "2205:7:36", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 6457, + "id": 9018, "isConstant": false, "isLValue": false, "isPure": true, @@ -6899,13 +6899,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2205:10:25", + "src": "2205:10:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2194:21:25", + "src": "2194:21:36", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6919,21 +6919,21 @@ "typeString": "bool" } ], - "id": 6453, + "id": 9014, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "2186:7:25", + "referencedDeclaration": 10045, + "src": "2186:7:36", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 6459, + "id": 9020, "isConstant": false, "isLValue": false, "isPure": false, @@ -6941,15 +6941,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2186:30:25", + "src": "2186:30:36", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6460, + "id": 9021, "nodeType": "ExpressionStatement", - "src": "2186:30:25" + "src": "2186:30:36" }, { "expression": { @@ -6959,18 +6959,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 6464, + "id": 9025, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "2358:3:25", + "referencedDeclaration": 10042, + "src": "2358:3:36", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 6465, + "id": 9026, "isConstant": false, "isLValue": false, "isPure": false, @@ -6978,7 +6978,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2358:10:25", + "src": "2358:10:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6989,14 +6989,14 @@ "arguments": [ { "argumentTypes": null, - "id": 6467, + "id": 9028, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7377, - "src": "2378:4:25", + "referencedDeclaration": 10151, + "src": "2378:4:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_TokenExchanger_$6494", + "typeIdentifier": "t_contract$_TokenExchanger_$9055", "typeString": "contract TokenExchanger" } } @@ -7004,24 +7004,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_TokenExchanger_$6494", + "typeIdentifier": "t_contract$_TokenExchanger_$9055", "typeString": "contract TokenExchanger" } ], - "id": 6466, + "id": 9027, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2370:7:25", + "src": "2370:7:36", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 6468, + "id": 9029, "isConstant": false, "isLValue": false, "isPure": false, @@ -7029,7 +7029,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2370:13:25", + "src": "2370:13:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7037,12 +7037,12 @@ }, { "argumentTypes": null, - "id": 6469, + "id": 9030, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6428, - "src": "2385:6:25", + "referencedDeclaration": 8989, + "src": "2385:6:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7066,32 +7066,32 @@ ], "expression": { "argumentTypes": null, - "id": 6461, + "id": 9022, "name": "fromToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6426, - "src": "2331:9:25", + "referencedDeclaration": 8987, + "src": "2331:9:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, - "id": 6463, + "id": 9024, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeTransferFrom", "nodeType": "MemberAccess", - "referencedDeclaration": 7092, - "src": "2331:26:25", + "referencedDeclaration": 9840, + "src": "2331:26:36", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_ERC20_$7017_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_ERC20_$7017_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_ERC20_$9765_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_ERC20_$9765_$", "typeString": "function (contract ERC20,address,address,uint256)" } }, - "id": 6470, + "id": 9031, "isConstant": false, "isLValue": false, "isPure": false, @@ -7099,15 +7099,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2331:61:25", + "src": "2331:61:36", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6471, + "id": 9032, "nodeType": "ExpressionStatement", - "src": "2331:61:25" + "src": "2331:61:36" }, { "expression": { @@ -7117,18 +7117,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 6475, + "id": 9036, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "2423:3:25", + "referencedDeclaration": 10042, + "src": "2423:3:36", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 6476, + "id": 9037, "isConstant": false, "isLValue": false, "isPure": false, @@ -7136,7 +7136,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2423:10:25", + "src": "2423:10:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7144,12 +7144,12 @@ }, { "argumentTypes": null, - "id": 6477, + "id": 9038, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6428, - "src": "2435:6:25", + "referencedDeclaration": 8989, + "src": "2435:6:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7169,32 +7169,32 @@ ], "expression": { "argumentTypes": null, - "id": 6472, + "id": 9033, "name": "toToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6448, - "src": "2402:7:25", + "referencedDeclaration": 9009, + "src": "2402:7:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, - "id": 6474, + "id": 9035, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeTransfer", "nodeType": "MemberAccess", - "referencedDeclaration": 7071, - "src": "2402:20:25", + "referencedDeclaration": 9819, + "src": "2402:20:36", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_ERC20Basic_$7049_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_ERC20Basic_$7049_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_ERC20Basic_$9797_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_ERC20Basic_$9797_$", "typeString": "function (contract ERC20Basic,address,uint256)" } }, - "id": 6478, + "id": 9039, "isConstant": false, "isLValue": false, "isPure": false, @@ -7202,15 +7202,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2402:40:25", + "src": "2402:40:36", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6479, + "id": 9040, "nodeType": "ExpressionStatement", - "src": "2402:40:25" + "src": "2402:40:36" }, { "eventCall": { @@ -7221,14 +7221,14 @@ "arguments": [ { "argumentTypes": null, - "id": 6482, + "id": 9043, "name": "fromToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6426, - "src": "2475:9:25", + "referencedDeclaration": 8987, + "src": "2475:9:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } } @@ -7236,24 +7236,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } ], - "id": 6481, + "id": 9042, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2467:7:25", + "src": "2467:7:36", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 6483, + "id": 9044, "isConstant": false, "isLValue": false, "isPure": false, @@ -7261,7 +7261,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2467:18:25", + "src": "2467:18:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7272,14 +7272,14 @@ "arguments": [ { "argumentTypes": null, - "id": 6485, + "id": 9046, "name": "toToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6448, - "src": "2495:7:25", + "referencedDeclaration": 9009, + "src": "2495:7:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } } @@ -7287,24 +7287,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } ], - "id": 6484, + "id": 9045, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2487:7:25", + "src": "2487:7:36", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 6486, + "id": 9047, "isConstant": false, "isLValue": false, "isPure": false, @@ -7312,7 +7312,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2487:16:25", + "src": "2487:16:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7320,12 +7320,12 @@ }, { "argumentTypes": null, - "id": 6487, + "id": 9048, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6428, - "src": "2505:6:25", + "referencedDeclaration": 8989, + "src": "2505:6:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7335,18 +7335,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 6488, + "id": 9049, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "2513:3:25", + "referencedDeclaration": 10042, + "src": "2513:3:36", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 6489, + "id": 9050, "isConstant": false, "isLValue": false, "isPure": false, @@ -7354,7 +7354,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2513:10:25", + "src": "2513:10:36", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7380,18 +7380,18 @@ "typeString": "address" } ], - "id": 6480, + "id": 9041, "name": "Exchange", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6269, - "src": "2458:8:25", + "referencedDeclaration": 8830, + "src": "2458:8:36", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_address_$returns$__$", "typeString": "function (address,address,uint256,address)" } }, - "id": 6490, + "id": 9051, "isConstant": false, "isLValue": false, "isPure": false, @@ -7399,72 +7399,72 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2458:66:25", + "src": "2458:66:36", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6491, + "id": 9052, "nodeType": "EmitStatement", - "src": "2453:71:25" + "src": "2453:71:36" } ] }, "documentation": null, - "id": 6493, + "id": 9054, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 6431, + "id": 8992, "modifierName": { "argumentTypes": null, - "id": 6430, + "id": 8991, "name": "nonReentrant", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6689, - "src": "1975:12:25", + "referencedDeclaration": 9330, + "src": "1975:12:36", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1975:12:25" + "src": "1975:12:36" } ], "name": "exchange", "nodeType": "FunctionDefinition", "parameters": { - "id": 6429, + "id": 8990, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6426, + "id": 8987, "name": "fromToken", "nodeType": "VariableDeclaration", - "scope": 6493, - "src": "1936:15:25", + "scope": 9054, + "src": "1936:15:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" }, "typeName": { "contractScope": null, - "id": 6425, + "id": 8986, "name": "ERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7017, - "src": "1936:5:25", + "referencedDeclaration": 9765, + "src": "1936:5:36", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, @@ -7473,11 +7473,11 @@ }, { "constant": false, - "id": 6428, + "id": 8989, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 6493, - "src": "1953:11:25", + "scope": 9054, + "src": "1953:11:36", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7485,10 +7485,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6427, + "id": 8988, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1953:4:25", + "src": "1953:4:36", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7498,27 +7498,27 @@ "visibility": "internal" } ], - "src": "1935:30:25" + "src": "1935:30:36" }, "payable": false, "returnParameters": { - "id": 6432, + "id": 8993, "nodeType": "ParameterList", "parameters": [], - "src": "1988:0:25" + "src": "1988:0:36" }, - "scope": 6494, - "src": "1918:613:25", + "scope": 9055, + "src": "1918:613:36", "stateMutability": "nonpayable", - "superFunction": 6177, + "superFunction": 8738, "visibility": "external" } ], - "scope": 6495, - "src": "381:2152:25" + "scope": 9056, + "src": "381:2152:36" } ], - "src": "0:2534:25" + "src": "0:2534:36" }, "compiler": { "name": "solc", @@ -7585,10 +7585,10 @@ } }, "links": {}, - "address": "0xe00058bb67b6a65c04a6dd47ef38ce9e4ea6692f", - "transactionHash": "0x43b48488db9ae53e24515af5bedf9ace9955fae7f5d2adadb4dba76af1ffe72a" + "address": "0x1a0bf4758906e9233347d8e98f5ae3368f1e6a47", + "transactionHash": "0x671f357ae4681d682e96b7335bb52277f422ab257d6cdb6bb092cfd9112d85e3" } }, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-02T12:05:06.488Z" + "updatedAt": "2018-10-22T08:01:07.099Z" } \ No newline at end of file diff --git a/build/contracts/Utils.json b/build/contracts/Utils.json new file mode 100644 index 00000000..2874af29 --- /dev/null +++ b/build/contracts/Utils.json @@ -0,0 +1,5963 @@ +{ + "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" + } + ], + "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", + "sourcePath": "/home/circleci/code/contracts/libs/Utils.sol", + "ast": { + "absolutePath": "/home/circleci/code/contracts/libs/Utils.sol", + "exportedSymbols": { + "Utils": [ + 6060 + ] + }, + "id": 6061, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 5856, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:16" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", + "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", + "id": 5857, + "nodeType": "ImportDirective", + "scope": 6061, + "sourceUnit": 9603, + "src": "26:59:16", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 6060, + "linearizedBaseContracts": [ + 6060 + ], + "name": "Utils", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 5860, + "libraryName": { + "contractScope": null, + "id": 5858, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9602, + "src": "113:8:16", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$9602", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "107:24:16", + "typeName": { + "id": 5859, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "126:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": true, + "id": 5866, + "name": "MAX_UINT", + "nodeType": "VariableDeclaration", + "scope": 6060, + "src": "137:33:16", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5861, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "137:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5864, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "167:2:16", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5863, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "168:1:16", + "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": 5862, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "162:4:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint" + }, + "id": 5865, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "162:8:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "body": { + "id": 5904, + "nodeType": "Block", + "src": "438:121:16", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5900, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 5898, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "536:2:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "id": 5899, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5870, + "src": "542:8:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "536:14:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5895, + "name": "rate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5872, + "src": "526:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5892, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5887, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5868, + "src": "496:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 5888, + "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": 5889, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5870, + "src": "511:8:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "505:14:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5891, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "504:16:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "496:24:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5893, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "495:26:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5894, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 9543, + "src": "495:30:16", + "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": 5896, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "495:36:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 9557, + "src": "495:40:16", + "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": 5901, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "495:56:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5884, + "name": "rate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5872, + "src": "485:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 5879, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "465:2:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "id": 5880, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5870, + "src": "471:8:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "465:14:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5877, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5868, + "src": "455:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 9557, + "src": "455:9:16", + "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": 5882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "455:25:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 9543, + "src": "455:29:16", + "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": 5885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "455:35:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5886, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9601, + "src": "455:39:16", + "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": 5902, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "455:97:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 5876, + "id": 5903, + "nodeType": "Return", + "src": "448:104:16" + } + ] + }, + "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": 5905, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "safeConversionByRate", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5873, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5868, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 5905, + "src": "373:10:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5867, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "373:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5870, + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 5905, + "src": "385:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5869, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "385:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5872, + "name": "rate", + "nodeType": "VariableDeclaration", + "scope": 5905, + "src": "400:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5871, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "400:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "372:38:16" + }, + "payable": false, + "returnParameters": { + "id": 5876, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5875, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5905, + "src": "432:4:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5874, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "432:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "431:6:16" + }, + "scope": 6060, + "src": "343:216:16", + "stateMutability": "pure", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 5940, + "nodeType": "Block", + "src": "827:109:16", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5936, + "name": "rate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5911, + "src": "923:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5933, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 5931, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "903:2:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "id": 5932, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5909, + "src": "909:8:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "903:14:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5928, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5926, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5907, + "src": "885:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "argumentTypes": null, + "id": 5927, + "name": "rate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5911, + "src": "893:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "885:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5929, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "884:14:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5930, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 9543, + "src": "884:18:16", + "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": 5934, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "884:34:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5935, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 9557, + "src": "884:38:16", + "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": 5937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "884:44:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 5921, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "864:2:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "id": 5922, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5909, + "src": "870:8:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "864:14:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5918, + "name": "rate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5911, + "src": "854:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5916, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5907, + "src": "844:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5917, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 9557, + "src": "844:9:16", + "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": 5919, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "844:15:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5920, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 9543, + "src": "844:19:16", + "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": 5924, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "844:35:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5925, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9601, + "src": "844:39:16", + "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": 5938, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "844:85:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 5915, + "id": 5939, + "nodeType": "Return", + "src": "837:92:16" + } + ] + }, + "documentation": "@dev Do reverse conversion of `value` by `rate`(see `safeConversionByRate`).\n This a workaround avoids overflow in some case.", + "id": 5941, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "safeReverseConversionByRate", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5912, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5907, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 5941, + "src": "762:10:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5906, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "762:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5909, + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 5941, + "src": "774:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5908, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "774:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5911, + "name": "rate", + "nodeType": "VariableDeclaration", + "scope": 5941, + "src": "789:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5910, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "789:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "761:38:16" + }, + "payable": false, + "returnParameters": { + "id": 5915, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5914, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5941, + "src": "821:4:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5913, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "821:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "820:6:16" + }, + "scope": 6060, + "src": "725:211:16", + "stateMutability": "pure", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 6058, + "nodeType": "Block", + "src": "1210:579:16", + "statements": [ + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 5953, + "name": "fractionsSum", + "nodeType": "VariableDeclaration", + "scope": 6059, + "src": "1220:17:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5952, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1220:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5954, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "1220:17:16" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5958, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5956, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5947, + "src": "1255:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5957, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1260:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1255:6:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5955, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10031, + "src": "1248:6:16", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1248:14:16", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5960, + "nodeType": "ExpressionStatement", + "src": "1248:14:16" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5963, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5961, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5943, + "src": "1284:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5962, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1289:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1284:6:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5966, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5964, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5945, + "src": "1294:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5965, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1299:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1294:6:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1284:16:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5969, + "nodeType": "IfStatement", + "src": "1281:28:16", + "trueBody": { + "expression": null, + "functionReturnParameters": 5951, + "id": 5968, + "nodeType": "Return", + "src": "1302:7:16" + } + }, + { + "assignments": [ + 5971 + ], + "declarations": [ + { + "constant": false, + "id": 5971, + "name": "maxA", + "nodeType": "VariableDeclaration", + "scope": 6059, + "src": "1319:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5970, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1319:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5976, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5974, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5945, + "src": "1344:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5972, + "name": "MAX_UINT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5866, + "src": "1331:8:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5973, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 9557, + "src": "1331:12:16", + "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": 5975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1331:15:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1319:27:16" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5977, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5943, + "src": "1361:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 5978, + "name": "maxA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5971, + "src": "1366:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1361:9:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5988, + "nodeType": "IfStatement", + "src": "1357:37:16", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5985, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5947, + "src": "1392:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5982, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5945, + "src": "1385:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5980, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5943, + "src": "1379:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5981, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 9543, + "src": "1379:5:16", + "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": 5983, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1379:8:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 9557, + "src": "1379:12:16", + "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": 5986, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1379:15:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 5951, + "id": 5987, + "nodeType": "Return", + "src": "1372:22:16" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5991, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5989, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5943, + "src": "1408:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5990, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5947, + "src": "1413:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1408:6:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5994, + "nodeType": "IfStatement", + "src": "1404:20:16", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 5992, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5945, + "src": "1423:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 5951, + "id": 5993, + "nodeType": "Return", + "src": "1416:8:16" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5997, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5995, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5945, + "src": "1438:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5996, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5947, + "src": "1443:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1438:6:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6000, + "nodeType": "IfStatement", + "src": "1434:20:16", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 5998, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5943, + "src": "1453:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 5951, + "id": 5999, + "nodeType": "Return", + "src": "1446:8:16" + } + }, + { + "body": { + "id": 6046, + "nodeType": "Block", + "src": "1480:252:16", + "statements": [ + { + "assignments": [ + 6005 + ], + "declarations": [ + { + "constant": false, + "id": 6005, + "name": "aPart", + "nodeType": "VariableDeclaration", + "scope": 6059, + "src": "1494:10:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6004, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1494:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6012, + "initialValue": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6008, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6006, + "name": "maxA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5971, + "src": "1507:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 6007, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5943, + "src": "1514:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1507:8:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "id": 6010, + "name": "maxA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5971, + "src": "1522:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6011, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "1507:19:16", + "trueExpression": { + "argumentTypes": null, + "id": 6009, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5943, + "src": "1518:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1494:32:16" + }, + { + "assignments": [ + 6014 + ], + "declarations": [ + { + "constant": false, + "id": 6014, + "name": "aPartByBProd", + "nodeType": "VariableDeclaration", + "scope": 6059, + "src": "1540:17:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6013, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1540:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6019, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6017, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5945, + "src": "1570:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6015, + "name": "aPart", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6005, + "src": "1560:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6016, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 9543, + "src": "1560:9:16", + "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": 6018, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1560:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1540:32:16" + }, + { + "expression": { + "argumentTypes": null, + "id": 6028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6020, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5950, + "src": "1587:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6025, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5947, + "src": "1624:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6023, + "name": "aPartByBProd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6014, + "src": "1607:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6024, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 9557, + "src": "1607:16:16", + "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": 6026, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1607:19:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6021, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5950, + "src": "1596:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6022, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9601, + "src": "1596:10:16", + "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": 6027, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1596:31:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1587:40:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6029, + "nodeType": "ExpressionStatement", + "src": "1587:40:16" + }, + { + "expression": { + "argumentTypes": null, + "id": 6037, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6030, + "name": "fractionsSum", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5953, + "src": "1641:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6035, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6033, + "name": "aPartByBProd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6014, + "src": "1673:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "argumentTypes": null, + "id": 6034, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5947, + "src": "1688:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1673:16:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6031, + "name": "fractionsSum", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5953, + "src": "1656:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6032, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9601, + "src": "1656:16:16", + "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": 6036, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1656:34:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1641:49:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6038, + "nodeType": "ExpressionStatement", + "src": "1641:49:16" + }, + { + "expression": { + "argumentTypes": null, + "id": 6044, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6039, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5943, + "src": "1705:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6042, + "name": "aPart", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6005, + "src": "1715:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6040, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5943, + "src": "1709:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6041, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9577, + "src": "1709:5:16", + "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": 6043, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1709:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1705:16:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6045, + "nodeType": "ExpressionStatement", + "src": "1705:16:16" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6003, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6001, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5943, + "src": "1472:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6002, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1477:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1472:6:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6047, + "nodeType": "WhileStatement", + "src": "1465:267:16" + }, + { + "expression": { + "argumentTypes": null, + "id": 6056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6048, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5950, + "src": "1742:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6053, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5947, + "src": "1779:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6051, + "name": "fractionsSum", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5953, + "src": "1762:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6052, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 9557, + "src": "1762:16:16", + "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": 6054, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1762:19:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6049, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5950, + "src": "1751:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9601, + "src": "1751:10:16", + "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": 6055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1751:31:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1742:40:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6057, + "nodeType": "ExpressionStatement", + "src": "1742:40:16" + } + ] + }, + "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": 6059, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "safeMulDiv", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5948, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5943, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 6059, + "src": "1151:6:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5942, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1151:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5945, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 6059, + "src": "1159:6:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5944, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1159:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5947, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 6059, + "src": "1167:6:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5946, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1167:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1150:24:16" + }, + "payable": false, + "returnParameters": { + "id": 5951, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5950, + "name": "result", + "nodeType": "VariableDeclaration", + "scope": 6059, + "src": "1197:11:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5949, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1197:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1196:13:16" + }, + "scope": 6060, + "src": "1131:658:16", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 6061, + "src": "87:1704:16" + } + ], + "src": "0:1792:16" + }, + "legacyAST": { + "absolutePath": "/home/circleci/code/contracts/libs/Utils.sol", + "exportedSymbols": { + "Utils": [ + 6060 + ] + }, + "id": 6061, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 5856, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:16" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", + "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", + "id": 5857, + "nodeType": "ImportDirective", + "scope": 6061, + "sourceUnit": 9603, + "src": "26:59:16", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 6060, + "linearizedBaseContracts": [ + 6060 + ], + "name": "Utils", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 5860, + "libraryName": { + "contractScope": null, + "id": 5858, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9602, + "src": "113:8:16", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$9602", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "107:24:16", + "typeName": { + "id": 5859, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "126:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": true, + "id": 5866, + "name": "MAX_UINT", + "nodeType": "VariableDeclaration", + "scope": 6060, + "src": "137:33:16", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5861, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "137:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5864, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "167:2:16", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5863, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "168:1:16", + "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": 5862, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "162:4:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint" + }, + "id": 5865, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "162:8:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "body": { + "id": 5904, + "nodeType": "Block", + "src": "438:121:16", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5900, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 5898, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "536:2:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "id": 5899, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5870, + "src": "542:8:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "536:14:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5895, + "name": "rate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5872, + "src": "526:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5892, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5887, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5868, + "src": "496:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 5888, + "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": 5889, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5870, + "src": "511:8:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "505:14:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5891, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "504:16:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "496:24:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5893, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "495:26:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5894, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 9543, + "src": "495:30:16", + "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": 5896, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "495:36:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 9557, + "src": "495:40:16", + "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": 5901, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "495:56:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5884, + "name": "rate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5872, + "src": "485:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 5879, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "465:2:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "id": 5880, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5870, + "src": "471:8:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "465:14:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5877, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5868, + "src": "455:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 9557, + "src": "455:9:16", + "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": 5882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "455:25:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 9543, + "src": "455:29:16", + "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": 5885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "455:35:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5886, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9601, + "src": "455:39:16", + "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": 5902, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "455:97:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 5876, + "id": 5903, + "nodeType": "Return", + "src": "448:104:16" + } + ] + }, + "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": 5905, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "safeConversionByRate", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5873, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5868, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 5905, + "src": "373:10:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5867, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "373:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5870, + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 5905, + "src": "385:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5869, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "385:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5872, + "name": "rate", + "nodeType": "VariableDeclaration", + "scope": 5905, + "src": "400:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5871, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "400:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "372:38:16" + }, + "payable": false, + "returnParameters": { + "id": 5876, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5875, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5905, + "src": "432:4:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5874, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "432:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "431:6:16" + }, + "scope": 6060, + "src": "343:216:16", + "stateMutability": "pure", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 5940, + "nodeType": "Block", + "src": "827:109:16", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5936, + "name": "rate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5911, + "src": "923:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5933, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 5931, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "903:2:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "id": 5932, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5909, + "src": "909:8:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "903:14:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5928, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5926, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5907, + "src": "885:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "argumentTypes": null, + "id": 5927, + "name": "rate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5911, + "src": "893:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "885:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5929, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "884:14:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5930, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 9543, + "src": "884:18:16", + "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": 5934, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "884:34:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5935, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 9557, + "src": "884:38:16", + "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": 5937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "884:44:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 5921, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "864:2:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "id": 5922, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5909, + "src": "870:8:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "864:14:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5918, + "name": "rate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5911, + "src": "854:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5916, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5907, + "src": "844:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5917, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 9557, + "src": "844:9:16", + "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": 5919, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "844:15:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5920, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 9543, + "src": "844:19:16", + "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": 5924, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "844:35:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5925, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9601, + "src": "844:39:16", + "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": 5938, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "844:85:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 5915, + "id": 5939, + "nodeType": "Return", + "src": "837:92:16" + } + ] + }, + "documentation": "@dev Do reverse conversion of `value` by `rate`(see `safeConversionByRate`).\n This a workaround avoids overflow in some case.", + "id": 5941, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "safeReverseConversionByRate", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5912, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5907, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 5941, + "src": "762:10:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5906, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "762:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5909, + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 5941, + "src": "774:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5908, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "774:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5911, + "name": "rate", + "nodeType": "VariableDeclaration", + "scope": 5941, + "src": "789:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5910, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "789:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "761:38:16" + }, + "payable": false, + "returnParameters": { + "id": 5915, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5914, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5941, + "src": "821:4:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5913, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "821:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "820:6:16" + }, + "scope": 6060, + "src": "725:211:16", + "stateMutability": "pure", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 6058, + "nodeType": "Block", + "src": "1210:579:16", + "statements": [ + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 5953, + "name": "fractionsSum", + "nodeType": "VariableDeclaration", + "scope": 6059, + "src": "1220:17:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5952, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1220:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5954, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "1220:17:16" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5958, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5956, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5947, + "src": "1255:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5957, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1260:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1255:6:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5955, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10031, + "src": "1248:6:16", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1248:14:16", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5960, + "nodeType": "ExpressionStatement", + "src": "1248:14:16" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5963, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5961, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5943, + "src": "1284:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5962, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1289:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1284:6:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5966, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5964, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5945, + "src": "1294:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5965, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1299:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1294:6:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1284:16:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5969, + "nodeType": "IfStatement", + "src": "1281:28:16", + "trueBody": { + "expression": null, + "functionReturnParameters": 5951, + "id": 5968, + "nodeType": "Return", + "src": "1302:7:16" + } + }, + { + "assignments": [ + 5971 + ], + "declarations": [ + { + "constant": false, + "id": 5971, + "name": "maxA", + "nodeType": "VariableDeclaration", + "scope": 6059, + "src": "1319:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5970, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1319:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5976, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5974, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5945, + "src": "1344:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5972, + "name": "MAX_UINT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5866, + "src": "1331:8:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5973, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 9557, + "src": "1331:12:16", + "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": 5975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1331:15:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1319:27:16" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5977, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5943, + "src": "1361:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 5978, + "name": "maxA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5971, + "src": "1366:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1361:9:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5988, + "nodeType": "IfStatement", + "src": "1357:37:16", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5985, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5947, + "src": "1392:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5982, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5945, + "src": "1385:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5980, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5943, + "src": "1379:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5981, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 9543, + "src": "1379:5:16", + "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": 5983, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1379:8:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 9557, + "src": "1379:12:16", + "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": 5986, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1379:15:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 5951, + "id": 5987, + "nodeType": "Return", + "src": "1372:22:16" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5991, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5989, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5943, + "src": "1408:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5990, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5947, + "src": "1413:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1408:6:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5994, + "nodeType": "IfStatement", + "src": "1404:20:16", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 5992, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5945, + "src": "1423:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 5951, + "id": 5993, + "nodeType": "Return", + "src": "1416:8:16" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5997, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5995, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5945, + "src": "1438:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5996, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5947, + "src": "1443:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1438:6:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6000, + "nodeType": "IfStatement", + "src": "1434:20:16", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 5998, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5943, + "src": "1453:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 5951, + "id": 5999, + "nodeType": "Return", + "src": "1446:8:16" + } + }, + { + "body": { + "id": 6046, + "nodeType": "Block", + "src": "1480:252:16", + "statements": [ + { + "assignments": [ + 6005 + ], + "declarations": [ + { + "constant": false, + "id": 6005, + "name": "aPart", + "nodeType": "VariableDeclaration", + "scope": 6059, + "src": "1494:10:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6004, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1494:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6012, + "initialValue": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6008, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6006, + "name": "maxA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5971, + "src": "1507:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 6007, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5943, + "src": "1514:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1507:8:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "id": 6010, + "name": "maxA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5971, + "src": "1522:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6011, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "1507:19:16", + "trueExpression": { + "argumentTypes": null, + "id": 6009, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5943, + "src": "1518:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1494:32:16" + }, + { + "assignments": [ + 6014 + ], + "declarations": [ + { + "constant": false, + "id": 6014, + "name": "aPartByBProd", + "nodeType": "VariableDeclaration", + "scope": 6059, + "src": "1540:17:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6013, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1540:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6019, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6017, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5945, + "src": "1570:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6015, + "name": "aPart", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6005, + "src": "1560:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6016, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 9543, + "src": "1560:9:16", + "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": 6018, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1560:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1540:32:16" + }, + { + "expression": { + "argumentTypes": null, + "id": 6028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6020, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5950, + "src": "1587:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6025, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5947, + "src": "1624:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6023, + "name": "aPartByBProd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6014, + "src": "1607:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6024, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 9557, + "src": "1607:16:16", + "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": 6026, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1607:19:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6021, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5950, + "src": "1596:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6022, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9601, + "src": "1596:10:16", + "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": 6027, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1596:31:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1587:40:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6029, + "nodeType": "ExpressionStatement", + "src": "1587:40:16" + }, + { + "expression": { + "argumentTypes": null, + "id": 6037, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6030, + "name": "fractionsSum", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5953, + "src": "1641:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6035, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6033, + "name": "aPartByBProd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6014, + "src": "1673:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "argumentTypes": null, + "id": 6034, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5947, + "src": "1688:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1673:16:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6031, + "name": "fractionsSum", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5953, + "src": "1656:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6032, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9601, + "src": "1656:16:16", + "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": 6036, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1656:34:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1641:49:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6038, + "nodeType": "ExpressionStatement", + "src": "1641:49:16" + }, + { + "expression": { + "argumentTypes": null, + "id": 6044, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6039, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5943, + "src": "1705:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6042, + "name": "aPart", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6005, + "src": "1715:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6040, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5943, + "src": "1709:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6041, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9577, + "src": "1709:5:16", + "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": 6043, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1709:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1705:16:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6045, + "nodeType": "ExpressionStatement", + "src": "1705:16:16" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6003, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6001, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5943, + "src": "1472:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6002, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1477:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1472:6:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6047, + "nodeType": "WhileStatement", + "src": "1465:267:16" + }, + { + "expression": { + "argumentTypes": null, + "id": 6056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6048, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5950, + "src": "1742:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6053, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5947, + "src": "1779:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6051, + "name": "fractionsSum", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5953, + "src": "1762:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6052, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 9557, + "src": "1762:16:16", + "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": 6054, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1762:19:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6049, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5950, + "src": "1751:6:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9601, + "src": "1751:10:16", + "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": 6055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1751:31:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1742:40:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6057, + "nodeType": "ExpressionStatement", + "src": "1742:40:16" + } + ] + }, + "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": 6059, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "safeMulDiv", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5948, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5943, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 6059, + "src": "1151:6:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5942, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1151:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5945, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 6059, + "src": "1159:6:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5944, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1159:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5947, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 6059, + "src": "1167:6:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5946, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1167:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1150:24:16" + }, + "payable": false, + "returnParameters": { + "id": 5951, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5950, + "name": "result", + "nodeType": "VariableDeclaration", + "scope": 6059, + "src": "1197:11:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5949, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1197:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1196:13:16" + }, + "scope": 6060, + "src": "1131:658:16", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 6061, + "src": "87:1704:16" + } + ], + "src": "0:1792:16" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": { + "4": { + "events": {}, + "links": {}, + "address": "0xff9744d4a6369c1c737a10ab912fd1b7d22018f9", + "transactionHash": "0x48022b6f03dbd38fea064a209fa3b36f27248d619c9d004eb1d865f6cab41194" + } + }, + "schemaVersion": "2.0.1", + "updatedAt": "2018-10-22T07:59:52.061Z" +} \ No newline at end of file diff --git a/build/contracts/UtilsMock.json b/build/contracts/UtilsMock.json new file mode 100644 index 00000000..c5ba34d7 --- /dev/null +++ b/build/contracts/UtilsMock.json @@ -0,0 +1,1679 @@ +{ + "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" + } + ], + "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", + "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": [ + 6954 + ] + }, + "id": 6955, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 6895, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:22" + }, + { + "absolutePath": "/home/circleci/code/contracts/libs/Utils.sol", + "file": "../../libs/Utils.sol", + "id": 6896, + "nodeType": "ImportDirective", + "scope": 6955, + "sourceUnit": 6061, + "src": "26:30:22", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 6954, + "linearizedBaseContracts": [ + 6954 + ], + "name": "UtilsMock", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 6914, + "nodeType": "Block", + "src": "179:73:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6909, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6898, + "src": "223:5:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6910, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6900, + "src": "230:8:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6911, + "name": "rate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6902, + "src": "240:4:22", + "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": 6907, + "name": "Utils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6060, + "src": "196:5:22", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Utils_$6060_$", + "typeString": "type(library Utils)" + } + }, + "id": 6908, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeConversionByRate", + "nodeType": "MemberAccess", + "referencedDeclaration": 5905, + "src": "196: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": 6912, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "196:49:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 6906, + "id": 6913, + "nodeType": "Return", + "src": "189:56:22" + } + ] + }, + "documentation": null, + "id": 6915, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "safeConversionByRate", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6903, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6898, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 6915, + "src": "114:10:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6897, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "114:4:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6900, + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 6915, + "src": "126:13:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6899, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "126:4:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6902, + "name": "rate", + "nodeType": "VariableDeclaration", + "scope": 6915, + "src": "141:9:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6901, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "141:4:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "113:38:22" + }, + "payable": false, + "returnParameters": { + "id": 6906, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6905, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 6915, + "src": "173:4:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6904, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "173:4:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "172:6:22" + }, + "scope": 6954, + "src": "84:168:22", + "stateMutability": "pure", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 6933, + "nodeType": "Block", + "src": "360:80:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6928, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6917, + "src": "411:5:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6929, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6919, + "src": "418:8:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6930, + "name": "rate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6921, + "src": "428:4:22", + "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": 6926, + "name": "Utils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6060, + "src": "377:5:22", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Utils_$6060_$", + "typeString": "type(library Utils)" + } + }, + "id": 6927, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeReverseConversionByRate", + "nodeType": "MemberAccess", + "referencedDeclaration": 5941, + "src": "377: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": 6931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "377:56:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 6925, + "id": 6932, + "nodeType": "Return", + "src": "370:63:22" + } + ] + }, + "documentation": null, + "id": 6934, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "safeReverseConversionByRate", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6922, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6917, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 6934, + "src": "295:10:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6916, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "295:4:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6919, + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 6934, + "src": "307:13:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6918, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "307:4:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6921, + "name": "rate", + "nodeType": "VariableDeclaration", + "scope": 6934, + "src": "322:9:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6920, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "322:4:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "294:38:22" + }, + "payable": false, + "returnParameters": { + "id": 6925, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6924, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 6934, + "src": "354:4:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6923, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "354:4:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "353:6:22" + }, + "scope": 6954, + "src": "258:182:22", + "stateMutability": "pure", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 6952, + "nodeType": "Block", + "src": "516:49:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6947, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6936, + "src": "550:1:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6948, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6938, + "src": "553:1:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6949, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6940, + "src": "556:1:22", + "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": 6945, + "name": "Utils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6060, + "src": "533:5:22", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Utils_$6060_$", + "typeString": "type(library Utils)" + } + }, + "id": 6946, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeMulDiv", + "nodeType": "MemberAccess", + "referencedDeclaration": 6059, + "src": "533:16:22", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 6950, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "533:25:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 6944, + "id": 6951, + "nodeType": "Return", + "src": "526:32:22" + } + ] + }, + "documentation": null, + "id": 6953, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "safeMulDiv", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6941, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6936, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 6953, + "src": "466:6:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6935, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "466:4:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6938, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 6953, + "src": "474:6:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6937, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "474:4:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6940, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 6953, + "src": "482:6:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6939, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "482:4:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "465:24:22" + }, + "payable": false, + "returnParameters": { + "id": 6944, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6943, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 6953, + "src": "510:4:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6942, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "510:4:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "509:6:22" + }, + "scope": 6954, + "src": "446:119:22", + "stateMutability": "pure", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 6955, + "src": "58:509:22" + } + ], + "src": "0:568:22" + }, + "legacyAST": { + "absolutePath": "/home/circleci/code/contracts/mocks/libs/Utils.sol", + "exportedSymbols": { + "UtilsMock": [ + 6954 + ] + }, + "id": 6955, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 6895, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:22" + }, + { + "absolutePath": "/home/circleci/code/contracts/libs/Utils.sol", + "file": "../../libs/Utils.sol", + "id": 6896, + "nodeType": "ImportDirective", + "scope": 6955, + "sourceUnit": 6061, + "src": "26:30:22", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 6954, + "linearizedBaseContracts": [ + 6954 + ], + "name": "UtilsMock", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 6914, + "nodeType": "Block", + "src": "179:73:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6909, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6898, + "src": "223:5:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6910, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6900, + "src": "230:8:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6911, + "name": "rate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6902, + "src": "240:4:22", + "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": 6907, + "name": "Utils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6060, + "src": "196:5:22", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Utils_$6060_$", + "typeString": "type(library Utils)" + } + }, + "id": 6908, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeConversionByRate", + "nodeType": "MemberAccess", + "referencedDeclaration": 5905, + "src": "196: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": 6912, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "196:49:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 6906, + "id": 6913, + "nodeType": "Return", + "src": "189:56:22" + } + ] + }, + "documentation": null, + "id": 6915, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "safeConversionByRate", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6903, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6898, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 6915, + "src": "114:10:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6897, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "114:4:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6900, + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 6915, + "src": "126:13:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6899, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "126:4:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6902, + "name": "rate", + "nodeType": "VariableDeclaration", + "scope": 6915, + "src": "141:9:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6901, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "141:4:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "113:38:22" + }, + "payable": false, + "returnParameters": { + "id": 6906, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6905, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 6915, + "src": "173:4:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6904, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "173:4:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "172:6:22" + }, + "scope": 6954, + "src": "84:168:22", + "stateMutability": "pure", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 6933, + "nodeType": "Block", + "src": "360:80:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6928, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6917, + "src": "411:5:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6929, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6919, + "src": "418:8:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6930, + "name": "rate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6921, + "src": "428:4:22", + "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": 6926, + "name": "Utils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6060, + "src": "377:5:22", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Utils_$6060_$", + "typeString": "type(library Utils)" + } + }, + "id": 6927, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeReverseConversionByRate", + "nodeType": "MemberAccess", + "referencedDeclaration": 5941, + "src": "377: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": 6931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "377:56:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 6925, + "id": 6932, + "nodeType": "Return", + "src": "370:63:22" + } + ] + }, + "documentation": null, + "id": 6934, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "safeReverseConversionByRate", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6922, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6917, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 6934, + "src": "295:10:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6916, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "295:4:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6919, + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 6934, + "src": "307:13:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6918, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "307:4:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6921, + "name": "rate", + "nodeType": "VariableDeclaration", + "scope": 6934, + "src": "322:9:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6920, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "322:4:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "294:38:22" + }, + "payable": false, + "returnParameters": { + "id": 6925, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6924, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 6934, + "src": "354:4:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6923, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "354:4:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "353:6:22" + }, + "scope": 6954, + "src": "258:182:22", + "stateMutability": "pure", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 6952, + "nodeType": "Block", + "src": "516:49:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6947, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6936, + "src": "550:1:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6948, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6938, + "src": "553:1:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6949, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6940, + "src": "556:1:22", + "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": 6945, + "name": "Utils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6060, + "src": "533:5:22", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Utils_$6060_$", + "typeString": "type(library Utils)" + } + }, + "id": 6946, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeMulDiv", + "nodeType": "MemberAccess", + "referencedDeclaration": 6059, + "src": "533:16:22", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 6950, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "533:25:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 6944, + "id": 6951, + "nodeType": "Return", + "src": "526:32:22" + } + ] + }, + "documentation": null, + "id": 6953, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "safeMulDiv", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6941, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6936, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 6953, + "src": "466:6:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6935, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "466:4:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6938, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 6953, + "src": "474:6:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6937, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "474:4:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6940, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 6953, + "src": "482:6:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6939, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "482:4:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "465:24:22" + }, + "payable": false, + "returnParameters": { + "id": 6944, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6943, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 6953, + "src": "510:4:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6942, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "510:4:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "509:6:22" + }, + "scope": 6954, + "src": "446:119:22", + "stateMutability": "pure", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 6955, + "src": "58:509:22" + } + ], + "src": "0:568:22" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.1", + "updatedAt": "2018-10-22T07:59:52.060Z" +} \ No newline at end of file diff --git a/build/contracts/Versionable.json b/build/contracts/Versionable.json index b42e6ce8..f8e21620 100644 --- a/build/contracts/Versionable.json +++ b/build/contracts/Versionable.json @@ -29,22 +29,22 @@ ], "bytecode": "0x608060405234801561001057600080fd5b506040516020806100cc83398101604052516000556099806100336000396000f300608060405260043610603e5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166354fd4d5081146043575b600080fd5b348015604e57600080fd5b5060556067565b60408051918252519081900360200190f35b600054815600a165627a7a72305820e3002d640782f820601bf88eed64a696d4b75acc0b6c32a1dc33605c453310ea0029", "deployedBytecode": "0x608060405260043610603e5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166354fd4d5081146043575b600080fd5b348015604e57600080fd5b5060556067565b60408051918252519081900360200190f35b600054815600a165627a7a72305820e3002d640782f820601bf88eed64a696d4b75acc0b6c32a1dc33605c453310ea0029", - "sourceMap": "26:124:26:-;;;79:69;8:9:-1;5:2;;;30:1;27;20:12;5:2;79:69:26;;;;;;;;;;;;;123:7;:18;26:124;;;;;;", - "deployedSourceMap": "26:124:26:-;;;;;;;;;;;;;;;;;;;;;;;53:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;53:19:26;;;;;;;;;;;;;;;;;;;;;;;;:::o", + "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", "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": [ - 6509 + 9070 ] }, - "id": 6510, + "id": 9071, "nodeType": "SourceUnit", "nodes": [ { - "id": 6496, + "id": 9057, "literals": [ "solidity", "^", @@ -52,7 +52,7 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:26" + "src": "0:24:37" }, { "baseContracts": [], @@ -60,20 +60,20 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 6509, + "id": 9070, "linearizedBaseContracts": [ - 6509 + 9070 ], "name": "Versionable", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 6498, + "id": 9059, "name": "version", "nodeType": "VariableDeclaration", - "scope": 6509, - "src": "53:19:26", + "scope": 9070, + "src": "53:19:37", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -81,10 +81,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6497, + "id": 9058, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "53:4:26", + "src": "53:4:37", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -95,26 +95,26 @@ }, { "body": { - "id": 6507, + "id": 9068, "nodeType": "Block", - "src": "113:35:26", + "src": "113:35:37", "statements": [ { "expression": { "argumentTypes": null, - "id": 6505, + "id": 9066, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 6503, + "id": 9064, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6498, - "src": "123:7:26", + "referencedDeclaration": 9059, + "src": "123:7:37", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -124,31 +124,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 6504, + "id": 9065, "name": "_version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6500, - "src": "133:8:26", + "referencedDeclaration": 9061, + "src": "133:8:37", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "123:18:26", + "src": "123:18:37", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6506, + "id": 9067, "nodeType": "ExpressionStatement", - "src": "123:18:26" + "src": "123:18:37" } ] }, "documentation": null, - "id": 6508, + "id": 9069, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -156,16 +156,16 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 6501, + "id": 9062, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6500, + "id": 9061, "name": "_version", "nodeType": "VariableDeclaration", - "scope": 6508, - "src": "91:13:26", + "scope": 9069, + "src": "91:13:37", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -173,10 +173,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6499, + "id": 9060, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "91:4:26", + "src": "91:4:37", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -186,40 +186,40 @@ "visibility": "internal" } ], - "src": "90:15:26" + "src": "90:15:37" }, "payable": false, "returnParameters": { - "id": 6502, + "id": 9063, "nodeType": "ParameterList", "parameters": [], - "src": "113:0:26" + "src": "113:0:37" }, - "scope": 6509, - "src": "79:69:26", + "scope": 9070, + "src": "79:69:37", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 6510, - "src": "26:124:26" + "scope": 9071, + "src": "26:124:37" } ], - "src": "0:151:26" + "src": "0:151:37" }, "legacyAST": { "absolutePath": "/home/circleci/code/contracts/versioning/Versionable.sol", "exportedSymbols": { "Versionable": [ - 6509 + 9070 ] }, - "id": 6510, + "id": 9071, "nodeType": "SourceUnit", "nodes": [ { - "id": 6496, + "id": 9057, "literals": [ "solidity", "^", @@ -227,7 +227,7 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:26" + "src": "0:24:37" }, { "baseContracts": [], @@ -235,20 +235,20 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 6509, + "id": 9070, "linearizedBaseContracts": [ - 6509 + 9070 ], "name": "Versionable", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 6498, + "id": 9059, "name": "version", "nodeType": "VariableDeclaration", - "scope": 6509, - "src": "53:19:26", + "scope": 9070, + "src": "53:19:37", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -256,10 +256,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6497, + "id": 9058, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "53:4:26", + "src": "53:4:37", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -270,26 +270,26 @@ }, { "body": { - "id": 6507, + "id": 9068, "nodeType": "Block", - "src": "113:35:26", + "src": "113:35:37", "statements": [ { "expression": { "argumentTypes": null, - "id": 6505, + "id": 9066, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 6503, + "id": 9064, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6498, - "src": "123:7:26", + "referencedDeclaration": 9059, + "src": "123:7:37", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -299,31 +299,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 6504, + "id": 9065, "name": "_version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6500, - "src": "133:8:26", + "referencedDeclaration": 9061, + "src": "133:8:37", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "123:18:26", + "src": "123:18:37", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6506, + "id": 9067, "nodeType": "ExpressionStatement", - "src": "123:18:26" + "src": "123:18:37" } ] }, "documentation": null, - "id": 6508, + "id": 9069, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -331,16 +331,16 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 6501, + "id": 9062, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6500, + "id": 9061, "name": "_version", "nodeType": "VariableDeclaration", - "scope": 6508, - "src": "91:13:26", + "scope": 9069, + "src": "91:13:37", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -348,10 +348,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6499, + "id": 9060, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "91:4:26", + "src": "91:4:37", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -361,27 +361,27 @@ "visibility": "internal" } ], - "src": "90:15:26" + "src": "90:15:37" }, "payable": false, "returnParameters": { - "id": 6502, + "id": 9063, "nodeType": "ParameterList", "parameters": [], - "src": "113:0:26" + "src": "113:0:37" }, - "scope": 6509, - "src": "79:69:26", + "scope": 9070, + "src": "79:69:37", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 6510, - "src": "26:124:26" + "scope": 9071, + "src": "26:124:37" } ], - "src": "0:151:26" + "src": "0:151:37" }, "compiler": { "name": "solc", @@ -389,5 +389,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-02T11:52:56.765Z" + "updatedAt": "2018-10-22T07:56:01.684Z" } \ No newline at end of file diff --git a/build/contracts/VersionsLedger.json b/build/contracts/VersionsLedger.json index c14e0a4e..2aa8054c 100644 --- a/build/contracts/VersionsLedger.json +++ b/build/contracts/VersionsLedger.json @@ -191,22 +191,22 @@ ], "bytecode": "0x608060405260008054600160a060020a031916331790556105f9806100256000396000f3006080604052600436106100a35763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416633b5f842b81146100a8578063558614c7146100dc5780636d0cc8951461010a578063715018a61461016f57806387aee00e146101865780638da5cb5b146101b0578063a39fac12146101c5578063e39a7518146101da578063f2fde38b146101fe578063f53749071461021f575b600080fd5b3480156100b457600080fd5b506100c0600435610240565b60408051600160a060020a039092168252519081900360200190f35b3480156100e857600080fd5b506100f161025b565b6040805192835290151560208301528051918290030190f35b34801561011657600080fd5b5061011f610295565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561015b578181015183820152602001610143565b505050509050019250505060405180910390f35b34801561017b57600080fd5b506101846102ed565b005b34801561019257600080fd5b5061019e600435610359565b60408051918252519081900360200190f35b3480156101bc57600080fd5b506100c0610378565b3480156101d157600080fd5b5061011f610387565b3480156101e657600080fd5b50610184600160a060020a0360043516602435610451565b34801561020a57600080fd5b50610184600160a060020a036004351661051b565b34801561022b57600080fd5b5061019e600160a060020a036004351661053e565b600260205260009081526040902054600160a060020a031681565b6001546000908190151561026e57610291565b50600180548190600019810190811061028357fe5b906000526020600020015491505b9091565b606060018054806020026020016040519081016040528092919081815260200182805480156102e357602002820191906000526020600020905b8154815260200190600101908083116102cf575b5050505050905090565b600054600160a060020a0316331461030457600080fd5b60008054604051600160a060020a03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a26000805473ffffffffffffffffffffffffffffffffffffffff19169055565b600180548290811061036757fe5b600091825260209091200154905081565b600054600160a060020a031681565b6001546060908190600090151561039d5761044c565b6001546040805182815260208084028201019091529080156103c9578160200160208202803883390190505b509150600090505b60015481101561044857600260006001838154811015156103ee57fe5b9060005260206000200154815260200190815260200160002060009054906101000a9004600160a060020a0316828281518110151561042957fe5b600160a060020a039092166020928302909101909101526001016103d1565b8192505b505090565b60008054600160a060020a0316331461046957600080fd5b600082815260026020526040902054600160a060020a03161561048b57600080fd5b61049361025b565b5090508181106104a257600080fd5b50600180548082019091557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60181905560008181526002602090815260408083208054600160a060020a0390961673ffffffffffffffffffffffffffffffffffffffff1990961686179055938252600390529190912055565b600054600160a060020a0316331461053257600080fd5b61053b81610550565b50565b60036020526000908152604090205481565b600160a060020a038116151561056557600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a723058208896162ad429942fd27be272bd9067c159d41b69a469d4b160877feb9ba64ec80029", "deployedBytecode": "0x6080604052600436106100a35763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416633b5f842b81146100a8578063558614c7146100dc5780636d0cc8951461010a578063715018a61461016f57806387aee00e146101865780638da5cb5b146101b0578063a39fac12146101c5578063e39a7518146101da578063f2fde38b146101fe578063f53749071461021f575b600080fd5b3480156100b457600080fd5b506100c0600435610240565b60408051600160a060020a039092168252519081900360200190f35b3480156100e857600080fd5b506100f161025b565b6040805192835290151560208301528051918290030190f35b34801561011657600080fd5b5061011f610295565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561015b578181015183820152602001610143565b505050509050019250505060405180910390f35b34801561017b57600080fd5b506101846102ed565b005b34801561019257600080fd5b5061019e600435610359565b60408051918252519081900360200190f35b3480156101bc57600080fd5b506100c0610378565b3480156101d157600080fd5b5061011f610387565b3480156101e657600080fd5b50610184600160a060020a0360043516602435610451565b34801561020a57600080fd5b50610184600160a060020a036004351661051b565b34801561022b57600080fd5b5061019e600160a060020a036004351661053e565b600260205260009081526040902054600160a060020a031681565b6001546000908190151561026e57610291565b50600180548190600019810190811061028357fe5b906000526020600020015491505b9091565b606060018054806020026020016040519081016040528092919081815260200182805480156102e357602002820191906000526020600020905b8154815260200190600101908083116102cf575b5050505050905090565b600054600160a060020a0316331461030457600080fd5b60008054604051600160a060020a03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a26000805473ffffffffffffffffffffffffffffffffffffffff19169055565b600180548290811061036757fe5b600091825260209091200154905081565b600054600160a060020a031681565b6001546060908190600090151561039d5761044c565b6001546040805182815260208084028201019091529080156103c9578160200160208202803883390190505b509150600090505b60015481101561044857600260006001838154811015156103ee57fe5b9060005260206000200154815260200190815260200160002060009054906101000a9004600160a060020a0316828281518110151561042957fe5b600160a060020a039092166020928302909101909101526001016103d1565b8192505b505090565b60008054600160a060020a0316331461046957600080fd5b600082815260026020526040902054600160a060020a03161561048b57600080fd5b61049361025b565b5090508181106104a257600080fd5b50600180548082019091557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60181905560008181526002602090815260408083208054600160a060020a0390961673ffffffffffffffffffffffffffffffffffffffff1990961686179055938252600390529190912055565b600054600160a060020a0316331461053257600080fd5b61053b81610550565b50565b60036020526000908152604090205481565b600160a060020a038116151561056557600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a723058208896162ad429942fd27be272bd9067c159d41b69a469d4b160877feb9ba64ec80029", - "sourceMap": "213:1206:27:-;;;567:5:31;:18;;-1:-1:-1;;;;;;567:18:31;575:10;567:18;;;213:1206:27;;;;;;", - "deployedSourceMap": "213:1206:27:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;359:48;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;359:48:27;;;;;;;;;-1:-1:-1;;;;;359:48:27;;;;;;;;;;;;;;1223:194;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1223:194:27;;;;;;;;;;;;;;;;;;;;;;;;;;;812:84;;8:9:-1;5:2;;;30:1;27;20:12;5:2;812:84:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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:27;;;;;;;;;;;;;;;;;1001:111:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1001:111:31;;;;;;281:22:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;281:22:27;;;;;;;;;;;;;;;;;;;;;238:20:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:31;;;;902:315:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;902:315:27;;;;468:338;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;468:338:27;-1:-1:-1;;;;;468:338:27;;;;;;;1274:103:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1274:103:31;-1:-1:-1;;;;;1274:103:31;;;;;413:48:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;413:48:27;-1:-1:-1;;;;;413:48:27;;;;;359;;;;;;;;;;;;-1:-1:-1;;;;;359:48:27;;:::o;1223:194::-;1310:8;:15;1270:12;;;;1310:20;1306:33;;;1332:7;;1306:33;-1:-1:-1;1357:4:27;1390:15;;1357:4;;-1:-1:-1;;1390:19:27;;;1381:29;;;;;;;;;;;;;;1371:39;;1223:194;;;:::o;812:84::-;856:6;881:8;874:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;812:84;:::o;1001:111:31:-;719:5;;-1:-1:-1;;;;;719:5:31;705:10;:19;697:28;;;;;;1077:5;;;1058:25;;-1:-1:-1;;;;;1077:5:31;;;;1058:25;;;1105:1;1089:18;;-1:-1:-1;;1089:18:31;;;1001:111::o;281:22:27:-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;281:22:27;:::o;238:20:31:-;;;-1:-1:-1;;;;;238:20:31;;:::o;902:315:27:-;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:27;;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:27;1135:6;1142:1;1135:9;;;;;;;;;;-1:-1:-1;;;;;1135:41:27;;;:9;;;;;;;;;;:41;1116:3;;1078:109;;;1204:6;1197:13;;902:315;;;;:::o;468:338::-;607:10;719:5:31;;-1:-1:-1;;;;;719:5:31;705:10;:19;697:28;;;;;;592:1:27;555:25;;;:16;:25;;;;;;-1:-1:-1;;;;;555:25:27;:39;547:48;;;;;;623:16;:14;:16::i;:::-;-1:-1:-1;606:33:27;-1:-1:-1;658:15:27;;;650:24;;;;;;-1:-1:-1;685:8:27;27:10:-1;;23:18;;;45:23;;;685:22:27;;;;;-1:-1:-1;717:25:27;;;:16;685:22;717:25;;;;;;;:36;;-1:-1:-1;;;;;717:36:27;;;-1:-1:-1;;717:36:27;;;;;;;763:26;;;:16;:26;;;;;;:36;468:338::o;1274:103:31:-;719:5;;-1:-1:-1;;;;;719:5:31;705:10;:19;697:28;;;;;;1343:29;1362:9;1343:18;:29::i;:::-;1274:103;:::o;413:48:27:-;;;;;;;;;;;;;:::o;1512:171:31:-;-1:-1:-1;;;;;1582:23:31;;;;1574:32;;;;;;1638:5;;;1617:38;;-1:-1:-1;;;;;1617:38:31;;;;1638:5;;;1617:38;;;1661:5;:17;;-1:-1:-1;;1661:17:31;-1:-1:-1;;;;;1661:17:31;;;;;;;;;;1512:171::o", + "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", "sourcePath": "/home/circleci/code/contracts/versioning/VersionsLedger.sol", "ast": { "absolutePath": "/home/circleci/code/contracts/versioning/VersionsLedger.sol", "exportedSymbols": { "VersionsLedger": [ - 6660 + 9221 ] }, - "id": 6661, + "id": 9222, "nodeType": "SourceUnit", "nodes": [ { - "id": 6511, + "id": 9072, "literals": [ "solidity", "^", @@ -214,16 +214,16 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:27" + "src": "0:24:38" }, { "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 6512, + "id": 9073, "nodeType": "ImportDirective", - "scope": 6661, - "sourceUnit": 6941, - "src": "148:63:27", + "scope": 9222, + "sourceUnit": 9689, + "src": "148:63:38", "symbolAliases": [], "unitAlias": "" }, @@ -233,42 +233,42 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 6513, + "id": 9074, "name": "Ownable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6940, - "src": "240:7:27", + "referencedDeclaration": 9688, + "src": "240:7:38", "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$6940", + "typeIdentifier": "t_contract$_Ownable_$9688", "typeString": "contract Ownable" } }, - "id": 6514, + "id": 9075, "nodeType": "InheritanceSpecifier", - "src": "240:7:27" + "src": "240:7:38" } ], "contractDependencies": [ - 6940 + 9688 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 6660, + "id": 9221, "linearizedBaseContracts": [ - 6660, - 6940 + 9221, + 9688 ], "name": "VersionsLedger", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 6517, + "id": 9078, "name": "versions", "nodeType": "VariableDeclaration", - "scope": 6660, - "src": "281:22:27", + "scope": 9221, + "src": "281:22:38", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -277,19 +277,19 @@ }, "typeName": { "baseType": { - "id": 6515, + "id": 9076, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "281:4:27", + "src": "281:4:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6516, + "id": 9077, "length": null, "nodeType": "ArrayTypeName", - "src": "281:6:27", + "src": "281:6:38", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -300,11 +300,11 @@ }, { "constant": false, - "id": 6521, + "id": 9082, "name": "addressByVersion", "nodeType": "VariableDeclaration", - "scope": 6660, - "src": "359:48:27", + "scope": 9221, + "src": "359:48:38", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -312,28 +312,28 @@ "typeString": "mapping(uint256 => address)" }, "typeName": { - "id": 6520, + "id": 9081, "keyType": { - "id": 6518, + "id": 9079, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "367:4:27", + "src": "367:4:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Mapping", - "src": "359:24:27", + "src": "359:24:38", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", "typeString": "mapping(uint256 => address)" }, "valueType": { - "id": 6519, + "id": 9080, "name": "address", "nodeType": "ElementaryTypeName", - "src": "375:7:27", + "src": "375:7:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -345,11 +345,11 @@ }, { "constant": false, - "id": 6525, + "id": 9086, "name": "versionByAddress", "nodeType": "VariableDeclaration", - "scope": 6660, - "src": "413:48:27", + "scope": 9221, + "src": "413:48:38", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -357,28 +357,28 @@ "typeString": "mapping(address => uint256)" }, "typeName": { - "id": 6524, + "id": 9085, "keyType": { - "id": 6522, + "id": 9083, "name": "address", "nodeType": "ElementaryTypeName", - "src": "421:7:27", + "src": "421:7:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "413:24:27", + "src": "413:24:38", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 6523, + "id": 9084, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "432:4:27", + "src": "432:4:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -390,9 +390,9 @@ }, { "body": { - "id": 6573, + "id": 9134, "nodeType": "Block", - "src": "537:269:27", + "src": "537:269:38", "statements": [ { "expression": { @@ -404,7 +404,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 6541, + "id": 9102, "isConstant": false, "isLValue": false, "isPure": false, @@ -413,26 +413,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 6535, + "id": 9096, "name": "addressByVersion", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6521, - "src": "555:16:27", + "referencedDeclaration": 9082, + "src": "555:16:38", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", "typeString": "mapping(uint256 => address)" } }, - "id": 6537, + "id": 9098, "indexExpression": { "argumentTypes": null, - "id": 6536, + "id": 9097, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6529, - "src": "572:7:27", + "referencedDeclaration": 9090, + "src": "572:7:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -443,7 +443,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "555:25:27", + "src": "555:25:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -457,14 +457,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 6539, + "id": 9100, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "592:1:27", + "src": "592:1:38", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -480,20 +480,20 @@ "typeString": "int_const 0" } ], - "id": 6538, + "id": 9099, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "584:7:27", + "src": "584:7:38", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 6540, + "id": 9101, "isConstant": false, "isLValue": false, "isPure": true, @@ -501,13 +501,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "584:10:27", + "src": "584:10:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "555:39:27", + "src": "555:39:38", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -521,21 +521,21 @@ "typeString": "bool" } ], - "id": 6534, + "id": 9095, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "547:7:27", + "referencedDeclaration": 10045, + "src": "547:7:38", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 6542, + "id": 9103, "isConstant": false, "isLValue": false, "isPure": false, @@ -543,29 +543,29 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "547:48:27", + "src": "547:48:38", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6543, + "id": 9104, "nodeType": "ExpressionStatement", - "src": "547:48:27" + "src": "547:48:38" }, { "assignments": [ - 6545, + 9106, null ], "declarations": [ { "constant": false, - "id": 6545, + "id": 9106, "name": "lastV", "nodeType": "VariableDeclaration", - "scope": 6574, - "src": "607:10:27", + "scope": 9135, + "src": "607:10:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -573,10 +573,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6544, + "id": 9105, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "607:4:27", + "src": "607:4:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -587,24 +587,24 @@ }, null ], - "id": 6548, + "id": 9109, "initialValue": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 6546, + "id": 9107, "name": "getLastVersion", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6659, - "src": "623:14:27", + "referencedDeclaration": 9220, + "src": "623:14:38", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_bool_$", "typeString": "function () view returns (uint256,bool)" } }, - "id": 6547, + "id": 9108, "isConstant": false, "isLValue": false, "isPure": false, @@ -612,14 +612,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "623:16:27", + "src": "623:16:38", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", "typeString": "tuple(uint256,bool)" } }, "nodeType": "VariableDeclarationStatement", - "src": "606:33:27" + "src": "606:33:38" }, { "expression": { @@ -631,19 +631,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6552, + "id": 9113, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6550, + "id": 9111, "name": "lastV", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6545, - "src": "658:5:27", + "referencedDeclaration": 9106, + "src": "658:5:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -653,18 +653,18 @@ "operator": "<", "rightExpression": { "argumentTypes": null, - "id": 6551, + "id": 9112, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6529, - "src": "666:7:27", + "referencedDeclaration": 9090, + "src": "666:7:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "658:15:27", + "src": "658:15:38", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -678,21 +678,21 @@ "typeString": "bool" } ], - "id": 6549, + "id": 9110, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "650:7:27", + "referencedDeclaration": 10045, + "src": "650:7:38", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 6553, + "id": 9114, "isConstant": false, "isLValue": false, "isPure": false, @@ -700,15 +700,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "650:24:27", + "src": "650:24:38", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6554, + "id": 9115, "nodeType": "ExpressionStatement", - "src": "650:24:27" + "src": "650:24:38" }, { "expression": { @@ -716,12 +716,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6558, + "id": 9119, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6529, - "src": "699:7:27", + "referencedDeclaration": 9090, + "src": "699:7:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -737,18 +737,18 @@ ], "expression": { "argumentTypes": null, - "id": 6555, + "id": 9116, "name": "versions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6517, - "src": "685:8:27", + "referencedDeclaration": 9078, + "src": "685:8:38", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 6557, + "id": 9118, "isConstant": false, "isLValue": false, "isPure": false, @@ -756,13 +756,13 @@ "memberName": "push", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "685:13:27", + "src": "685:13:38", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256) returns (uint256)" } }, - "id": 6559, + "id": 9120, "isConstant": false, "isLValue": false, "isPure": false, @@ -770,20 +770,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "685:22:27", + "src": "685:22:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6560, + "id": 9121, "nodeType": "ExpressionStatement", - "src": "685:22:27" + "src": "685:22:38" }, { "expression": { "argumentTypes": null, - "id": 6565, + "id": 9126, "isConstant": false, "isLValue": false, "isPure": false, @@ -792,26 +792,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 6561, + "id": 9122, "name": "addressByVersion", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6521, - "src": "717:16:27", + "referencedDeclaration": 9082, + "src": "717:16:38", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", "typeString": "mapping(uint256 => address)" } }, - "id": 6563, + "id": 9124, "indexExpression": { "argumentTypes": null, - "id": 6562, + "id": 9123, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6529, - "src": "734:7:27", + "referencedDeclaration": 9090, + "src": "734:7:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -822,7 +822,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "717:25:27", + "src": "717:25:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -832,31 +832,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 6564, + "id": 9125, "name": "_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6527, - "src": "745:8:27", + "referencedDeclaration": 9088, + "src": "745:8:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "717:36:27", + "src": "717:36:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 6566, + "id": 9127, "nodeType": "ExpressionStatement", - "src": "717:36:27" + "src": "717:36:38" }, { "expression": { "argumentTypes": null, - "id": 6571, + "id": 9132, "isConstant": false, "isLValue": false, "isPure": false, @@ -865,26 +865,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 6567, + "id": 9128, "name": "versionByAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6525, - "src": "763:16:27", + "referencedDeclaration": 9086, + "src": "763:16:38", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 6569, + "id": 9130, "indexExpression": { "argumentTypes": null, - "id": 6568, + "id": 9129, "name": "_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6527, - "src": "780:8:27", + "referencedDeclaration": 9088, + "src": "780:8:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -895,7 +895,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "763:26:27", + "src": "763:26:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -905,68 +905,68 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 6570, + "id": 9131, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6529, - "src": "792:7:27", + "referencedDeclaration": 9090, + "src": "792:7:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "763:36:27", + "src": "763:36:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6572, + "id": 9133, "nodeType": "ExpressionStatement", - "src": "763:36:27" + "src": "763:36:38" } ] }, "documentation": null, - "id": 6574, + "id": 9135, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 6532, + "id": 9093, "modifierName": { "argumentTypes": null, - "id": 6531, + "id": 9092, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6888, - "src": "527:9:27", + "referencedDeclaration": 9636, + "src": "527:9:38", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "527:9:27" + "src": "527:9:38" } ], "name": "setVersion", "nodeType": "FunctionDefinition", "parameters": { - "id": 6530, + "id": 9091, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6527, + "id": 9088, "name": "_address", "nodeType": "VariableDeclaration", - "scope": 6574, - "src": "488:16:27", + "scope": 9135, + "src": "488:16:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -974,10 +974,10 @@ "typeString": "address" }, "typeName": { - "id": 6526, + "id": 9087, "name": "address", "nodeType": "ElementaryTypeName", - "src": "488:7:27", + "src": "488:7:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -988,11 +988,11 @@ }, { "constant": false, - "id": 6529, + "id": 9090, "name": "version", "nodeType": "VariableDeclaration", - "scope": 6574, - "src": "506:12:27", + "scope": 9135, + "src": "506:12:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1000,10 +1000,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6528, + "id": 9089, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "506:4:27", + "src": "506:4:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1013,50 +1013,50 @@ "visibility": "internal" } ], - "src": "487:32:27" + "src": "487:32:38" }, "payable": false, "returnParameters": { - "id": 6533, + "id": 9094, "nodeType": "ParameterList", "parameters": [], - "src": "537:0:27" + "src": "537:0:38" }, - "scope": 6660, - "src": "468:338:27", + "scope": 9221, + "src": "468:338:38", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 6582, + "id": 9143, "nodeType": "Block", - "src": "864:32:27", + "src": "864:32:38", "statements": [ { "expression": { "argumentTypes": null, - "id": 6580, + "id": 9141, "name": "versions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6517, - "src": "881:8:27", + "referencedDeclaration": 9078, + "src": "881:8:38", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "functionReturnParameters": 6579, - "id": 6581, + "functionReturnParameters": 9140, + "id": 9142, "nodeType": "Return", - "src": "874:15:27" + "src": "874:15:38" } ] }, "documentation": null, - "id": 6583, + "id": 9144, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1064,23 +1064,23 @@ "name": "getVersions", "nodeType": "FunctionDefinition", "parameters": { - "id": 6575, + "id": 9136, "nodeType": "ParameterList", "parameters": [], - "src": "832:2:27" + "src": "832:2:38" }, "payable": false, "returnParameters": { - "id": 6579, + "id": 9140, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6578, + "id": 9139, "name": "", "nodeType": "VariableDeclaration", - "scope": 6583, - "src": "856:6:27", + "scope": 9144, + "src": "856:6:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1089,19 +1089,19 @@ }, "typeName": { "baseType": { - "id": 6576, + "id": 9137, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "856:4:27", + "src": "856:4:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6577, + "id": 9138, "length": null, "nodeType": "ArrayTypeName", - "src": "856:6:27", + "src": "856:6:38", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -1111,19 +1111,19 @@ "visibility": "internal" } ], - "src": "855:8:27" + "src": "855:8:38" }, - "scope": 6660, - "src": "812:84:27", + "scope": 9221, + "src": "812:84:38", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 6631, + "id": 9192, "nodeType": "Block", - "src": "958:259:27", + "src": "958:259:38", "statements": [ { "condition": { @@ -1132,7 +1132,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6592, + "id": 9153, "isConstant": false, "isLValue": false, "isPure": false, @@ -1141,18 +1141,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 6589, + "id": 9150, "name": "versions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6517, - "src": "972:8:27", + "referencedDeclaration": 9078, + "src": "972:8:38", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 6590, + "id": 9151, "isConstant": false, "isLValue": true, "isPure": false, @@ -1160,7 +1160,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "972:15:27", + "src": "972:15:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1171,14 +1171,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 6591, + "id": 9152, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "991:1:27", + "src": "991:1:38", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1186,36 +1186,36 @@ }, "value": "0" }, - "src": "972:20:27", + "src": "972:20:38", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 6594, + "id": 9155, "nodeType": "IfStatement", - "src": "968:33:27", + "src": "968:33:38", "trueBody": { "expression": null, - "functionReturnParameters": 6588, - "id": 6593, + "functionReturnParameters": 9149, + "id": 9154, "nodeType": "Return", - "src": "994:7:27" + "src": "994:7:38" } }, { "assignments": [ - 6598 + 9159 ], "declarations": [ { "constant": false, - "id": 6598, + "id": 9159, "name": "result", "nodeType": "VariableDeclaration", - "scope": 6632, - "src": "1011:23:27", + "scope": 9193, + "src": "1011:23:38", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -1224,19 +1224,19 @@ }, "typeName": { "baseType": { - "id": 6596, + "id": 9157, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1011:7:27", + "src": "1011:7:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 6597, + "id": 9158, "length": null, "nodeType": "ArrayTypeName", - "src": "1011:9:27", + "src": "1011:9:38", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -1246,7 +1246,7 @@ "visibility": "internal" } ], - "id": 6605, + "id": 9166, "initialValue": { "argumentTypes": null, "arguments": [ @@ -1254,18 +1254,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 6602, + "id": 9163, "name": "versions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6517, - "src": "1051:8:27", + "referencedDeclaration": 9078, + "src": "1051:8:38", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 6603, + "id": 9164, "isConstant": false, "isLValue": true, "isPure": false, @@ -1273,7 +1273,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1051:15:27", + "src": "1051:15:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1287,39 +1287,39 @@ "typeString": "uint256" } ], - "id": 6601, + "id": 9162, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "1037:13:27", + "src": "1037:13:38", "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": 6599, + "id": 9160, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1041:7:27", + "src": "1041:7:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 6600, + "id": 9161, "length": null, "nodeType": "ArrayTypeName", - "src": "1041:9:27", + "src": "1041:9:38", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } } }, - "id": 6604, + "id": 9165, "isConstant": false, "isLValue": false, "isPure": false, @@ -1327,25 +1327,25 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1037:30:27", + "src": "1037:30:38", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory", "typeString": "address[] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "1011:56:27" + "src": "1011:56:38" }, { "body": { - "id": 6627, + "id": 9188, "nodeType": "Block", - "src": "1121:66:27", + "src": "1121:66:38", "statements": [ { "expression": { "argumentTypes": null, - "id": 6625, + "id": 9186, "isConstant": false, "isLValue": false, "isPure": false, @@ -1354,26 +1354,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 6617, + "id": 9178, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6598, - "src": "1135:6:27", + "referencedDeclaration": 9159, + "src": "1135:6:38", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 6619, + "id": 9180, "indexExpression": { "argumentTypes": null, - "id": 6618, + "id": 9179, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6607, - "src": "1142:1:27", + "referencedDeclaration": 9168, + "src": "1142:1:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1384,7 +1384,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1135:9:27", + "src": "1135:9:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1396,42 +1396,42 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 6620, + "id": 9181, "name": "addressByVersion", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6521, - "src": "1147:16:27", + "referencedDeclaration": 9082, + "src": "1147:16:38", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", "typeString": "mapping(uint256 => address)" } }, - "id": 6624, + "id": 9185, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 6621, + "id": 9182, "name": "versions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6517, - "src": "1164:8:27", + "referencedDeclaration": 9078, + "src": "1164:8:38", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 6623, + "id": 9184, "indexExpression": { "argumentTypes": null, - "id": 6622, + "id": 9183, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6607, - "src": "1173:1:27", + "referencedDeclaration": 9168, + "src": "1173:1:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1442,7 +1442,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1164:11:27", + "src": "1164:11:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1453,21 +1453,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1147:29:27", + "src": "1147:29:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1135:41:27", + "src": "1135:41:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 6626, + "id": 9187, "nodeType": "ExpressionStatement", - "src": "1135:41:27" + "src": "1135:41:38" } ] }, @@ -1477,19 +1477,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6613, + "id": 9174, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6610, + "id": 9171, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6607, - "src": "1095:1:27", + "referencedDeclaration": 9168, + "src": "1095:1:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1501,18 +1501,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 6611, + "id": 9172, "name": "versions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6517, - "src": "1099:8:27", + "referencedDeclaration": 9078, + "src": "1099:8:38", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 6612, + "id": 9173, "isConstant": false, "isLValue": true, "isPure": false, @@ -1520,31 +1520,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1099:15:27", + "src": "1099:15:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1095:19:27", + "src": "1095:19:38", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 6628, + "id": 9189, "initializationExpression": { "assignments": [ - 6607 + 9168 ], "declarations": [ { "constant": false, - "id": 6607, + "id": 9168, "name": "i", "nodeType": "VariableDeclaration", - "scope": 6632, - "src": "1083:6:27", + "scope": 9193, + "src": "1083:6:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1552,10 +1552,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6606, + "id": 9167, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1083:4:27", + "src": "1083:4:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1565,18 +1565,18 @@ "visibility": "internal" } ], - "id": 6609, + "id": 9170, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 6608, + "id": 9169, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1092:1:27", + "src": "1092:1:38", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1585,12 +1585,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "1083:10:27" + "src": "1083:10:38" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 6615, + "id": 9176, "isConstant": false, "isLValue": false, "isPure": false, @@ -1598,15 +1598,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "1116:3:27", + "src": "1116:3:38", "subExpression": { "argumentTypes": null, - "id": 6614, + "id": 9175, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6607, - "src": "1116:1:27", + "referencedDeclaration": 9168, + "src": "1116:1:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1617,36 +1617,36 @@ "typeString": "uint256" } }, - "id": 6616, + "id": 9177, "nodeType": "ExpressionStatement", - "src": "1116:3:27" + "src": "1116:3:38" }, "nodeType": "ForStatement", - "src": "1078:109:27" + "src": "1078:109:38" }, { "expression": { "argumentTypes": null, - "id": 6629, + "id": 9190, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6598, - "src": "1204:6:27", + "referencedDeclaration": 9159, + "src": "1204:6:38", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "functionReturnParameters": 6588, - "id": 6630, + "functionReturnParameters": 9149, + "id": 9191, "nodeType": "Return", - "src": "1197:13:27" + "src": "1197:13:38" } ] }, "documentation": null, - "id": 6632, + "id": 9193, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1654,23 +1654,23 @@ "name": "getAddresses", "nodeType": "FunctionDefinition", "parameters": { - "id": 6584, + "id": 9145, "nodeType": "ParameterList", "parameters": [], - "src": "923:2:27" + "src": "923:2:38" }, "payable": false, "returnParameters": { - "id": 6588, + "id": 9149, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6587, + "id": 9148, "name": "", "nodeType": "VariableDeclaration", - "scope": 6632, - "src": "947:9:27", + "scope": 9193, + "src": "947:9:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1679,19 +1679,19 @@ }, "typeName": { "baseType": { - "id": 6585, + "id": 9146, "name": "address", "nodeType": "ElementaryTypeName", - "src": "947:7:27", + "src": "947:7:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 6586, + "id": 9147, "length": null, "nodeType": "ArrayTypeName", - "src": "947:9:27", + "src": "947:9:38", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -1701,19 +1701,19 @@ "visibility": "internal" } ], - "src": "946:11:27" + "src": "946:11:38" }, - "scope": 6660, - "src": "902:315:27", + "scope": 9221, + "src": "902:315:38", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 6658, + "id": 9219, "nodeType": "Block", - "src": "1296:121:27", + "src": "1296:121:38", "statements": [ { "condition": { @@ -1722,7 +1722,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6642, + "id": 9203, "isConstant": false, "isLValue": false, "isPure": false, @@ -1731,18 +1731,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 6639, + "id": 9200, "name": "versions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6517, - "src": "1310:8:27", + "referencedDeclaration": 9078, + "src": "1310:8:38", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 6640, + "id": 9201, "isConstant": false, "isLValue": true, "isPure": false, @@ -1750,7 +1750,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1310:15:27", + "src": "1310:15:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1761,14 +1761,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 6641, + "id": 9202, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1329:1:27", + "src": "1329:1:38", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1776,40 +1776,40 @@ }, "value": "0" }, - "src": "1310:20:27", + "src": "1310:20:38", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 6644, + "id": 9205, "nodeType": "IfStatement", - "src": "1306:33:27", + "src": "1306:33:38", "trueBody": { "expression": null, - "functionReturnParameters": 6638, - "id": 6643, + "functionReturnParameters": 9199, + "id": 9204, "nodeType": "Return", - "src": "1332:7:27" + "src": "1332:7:38" } }, { "expression": { "argumentTypes": null, - "id": 6647, + "id": 9208, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 6645, + "id": 9206, "name": "found", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6637, - "src": "1349:5:27", + "referencedDeclaration": 9198, + "src": "1349:5:38", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1820,14 +1820,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 6646, + "id": 9207, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1357:4:27", + "src": "1357:4:38", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -1835,32 +1835,32 @@ }, "value": "true" }, - "src": "1349:12:27", + "src": "1349:12:38", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 6648, + "id": 9209, "nodeType": "ExpressionStatement", - "src": "1349:12:27" + "src": "1349:12:38" }, { "expression": { "argumentTypes": null, - "id": 6656, + "id": 9217, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 6649, + "id": 9210, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6635, - "src": "1371:7:27", + "referencedDeclaration": 9196, + "src": "1371:7:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1872,25 +1872,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 6650, + "id": 9211, "name": "versions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6517, - "src": "1381:8:27", + "referencedDeclaration": 9078, + "src": "1381:8:38", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 6655, + "id": 9216, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6654, + "id": 9215, "isConstant": false, "isLValue": false, "isPure": false, @@ -1899,18 +1899,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 6651, + "id": 9212, "name": "versions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6517, - "src": "1390:8:27", + "referencedDeclaration": 9078, + "src": "1390:8:38", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 6652, + "id": 9213, "isConstant": false, "isLValue": true, "isPure": false, @@ -1918,7 +1918,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1390:15:27", + "src": "1390:15:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1929,14 +1929,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 6653, + "id": 9214, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1408:1:27", + "src": "1408:1:38", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -1944,7 +1944,7 @@ }, "value": "1" }, - "src": "1390:19:27", + "src": "1390:19:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1955,26 +1955,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1381:29:27", + "src": "1381:29:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1371:39:27", + "src": "1371:39:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6657, + "id": 9218, "nodeType": "ExpressionStatement", - "src": "1371:39:27" + "src": "1371:39:38" } ] }, "documentation": null, - "id": 6659, + "id": 9220, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1982,23 +1982,23 @@ "name": "getLastVersion", "nodeType": "FunctionDefinition", "parameters": { - "id": 6633, + "id": 9194, "nodeType": "ParameterList", "parameters": [], - "src": "1246:2:27" + "src": "1246:2:38" }, "payable": false, "returnParameters": { - "id": 6638, + "id": 9199, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6635, + "id": 9196, "name": "version", "nodeType": "VariableDeclaration", - "scope": 6659, - "src": "1270:12:27", + "scope": 9220, + "src": "1270:12:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2006,10 +2006,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6634, + "id": 9195, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1270:4:27", + "src": "1270:4:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2020,11 +2020,11 @@ }, { "constant": false, - "id": 6637, + "id": 9198, "name": "found", "nodeType": "VariableDeclaration", - "scope": 6659, - "src": "1284:10:27", + "scope": 9220, + "src": "1284:10:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2032,10 +2032,10 @@ "typeString": "bool" }, "typeName": { - "id": 6636, + "id": 9197, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1284:4:27", + "src": "1284:4:38", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2045,33 +2045,33 @@ "visibility": "internal" } ], - "src": "1269:26:27" + "src": "1269:26:38" }, - "scope": 6660, - "src": "1223:194:27", + "scope": 9221, + "src": "1223:194:38", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 6661, - "src": "213:1206:27" + "scope": 9222, + "src": "213:1206:38" } ], - "src": "0:1420:27" + "src": "0:1420:38" }, "legacyAST": { "absolutePath": "/home/circleci/code/contracts/versioning/VersionsLedger.sol", "exportedSymbols": { "VersionsLedger": [ - 6660 + 9221 ] }, - "id": 6661, + "id": 9222, "nodeType": "SourceUnit", "nodes": [ { - "id": 6511, + "id": 9072, "literals": [ "solidity", "^", @@ -2079,16 +2079,16 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:27" + "src": "0:24:38" }, { "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 6512, + "id": 9073, "nodeType": "ImportDirective", - "scope": 6661, - "sourceUnit": 6941, - "src": "148:63:27", + "scope": 9222, + "sourceUnit": 9689, + "src": "148:63:38", "symbolAliases": [], "unitAlias": "" }, @@ -2098,42 +2098,42 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 6513, + "id": 9074, "name": "Ownable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6940, - "src": "240:7:27", + "referencedDeclaration": 9688, + "src": "240:7:38", "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$6940", + "typeIdentifier": "t_contract$_Ownable_$9688", "typeString": "contract Ownable" } }, - "id": 6514, + "id": 9075, "nodeType": "InheritanceSpecifier", - "src": "240:7:27" + "src": "240:7:38" } ], "contractDependencies": [ - 6940 + 9688 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 6660, + "id": 9221, "linearizedBaseContracts": [ - 6660, - 6940 + 9221, + 9688 ], "name": "VersionsLedger", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 6517, + "id": 9078, "name": "versions", "nodeType": "VariableDeclaration", - "scope": 6660, - "src": "281:22:27", + "scope": 9221, + "src": "281:22:38", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2142,19 +2142,19 @@ }, "typeName": { "baseType": { - "id": 6515, + "id": 9076, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "281:4:27", + "src": "281:4:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6516, + "id": 9077, "length": null, "nodeType": "ArrayTypeName", - "src": "281:6:27", + "src": "281:6:38", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -2165,11 +2165,11 @@ }, { "constant": false, - "id": 6521, + "id": 9082, "name": "addressByVersion", "nodeType": "VariableDeclaration", - "scope": 6660, - "src": "359:48:27", + "scope": 9221, + "src": "359:48:38", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2177,28 +2177,28 @@ "typeString": "mapping(uint256 => address)" }, "typeName": { - "id": 6520, + "id": 9081, "keyType": { - "id": 6518, + "id": 9079, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "367:4:27", + "src": "367:4:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Mapping", - "src": "359:24:27", + "src": "359:24:38", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", "typeString": "mapping(uint256 => address)" }, "valueType": { - "id": 6519, + "id": 9080, "name": "address", "nodeType": "ElementaryTypeName", - "src": "375:7:27", + "src": "375:7:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2210,11 +2210,11 @@ }, { "constant": false, - "id": 6525, + "id": 9086, "name": "versionByAddress", "nodeType": "VariableDeclaration", - "scope": 6660, - "src": "413:48:27", + "scope": 9221, + "src": "413:48:38", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2222,28 +2222,28 @@ "typeString": "mapping(address => uint256)" }, "typeName": { - "id": 6524, + "id": 9085, "keyType": { - "id": 6522, + "id": 9083, "name": "address", "nodeType": "ElementaryTypeName", - "src": "421:7:27", + "src": "421:7:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "413:24:27", + "src": "413:24:38", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 6523, + "id": 9084, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "432:4:27", + "src": "432:4:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2255,9 +2255,9 @@ }, { "body": { - "id": 6573, + "id": 9134, "nodeType": "Block", - "src": "537:269:27", + "src": "537:269:38", "statements": [ { "expression": { @@ -2269,7 +2269,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 6541, + "id": 9102, "isConstant": false, "isLValue": false, "isPure": false, @@ -2278,26 +2278,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 6535, + "id": 9096, "name": "addressByVersion", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6521, - "src": "555:16:27", + "referencedDeclaration": 9082, + "src": "555:16:38", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", "typeString": "mapping(uint256 => address)" } }, - "id": 6537, + "id": 9098, "indexExpression": { "argumentTypes": null, - "id": 6536, + "id": 9097, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6529, - "src": "572:7:27", + "referencedDeclaration": 9090, + "src": "572:7:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2308,7 +2308,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "555:25:27", + "src": "555:25:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2322,14 +2322,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 6539, + "id": 9100, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "592:1:27", + "src": "592:1:38", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2345,20 +2345,20 @@ "typeString": "int_const 0" } ], - "id": 6538, + "id": 9099, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "584:7:27", + "src": "584:7:38", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 6540, + "id": 9101, "isConstant": false, "isLValue": false, "isPure": true, @@ -2366,13 +2366,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "584:10:27", + "src": "584:10:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "555:39:27", + "src": "555:39:38", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2386,21 +2386,21 @@ "typeString": "bool" } ], - "id": 6534, + "id": 9095, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "547:7:27", + "referencedDeclaration": 10045, + "src": "547:7:38", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 6542, + "id": 9103, "isConstant": false, "isLValue": false, "isPure": false, @@ -2408,29 +2408,29 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "547:48:27", + "src": "547:48:38", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6543, + "id": 9104, "nodeType": "ExpressionStatement", - "src": "547:48:27" + "src": "547:48:38" }, { "assignments": [ - 6545, + 9106, null ], "declarations": [ { "constant": false, - "id": 6545, + "id": 9106, "name": "lastV", "nodeType": "VariableDeclaration", - "scope": 6574, - "src": "607:10:27", + "scope": 9135, + "src": "607:10:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2438,10 +2438,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6544, + "id": 9105, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "607:4:27", + "src": "607:4:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2452,24 +2452,24 @@ }, null ], - "id": 6548, + "id": 9109, "initialValue": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 6546, + "id": 9107, "name": "getLastVersion", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6659, - "src": "623:14:27", + "referencedDeclaration": 9220, + "src": "623:14:38", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_bool_$", "typeString": "function () view returns (uint256,bool)" } }, - "id": 6547, + "id": 9108, "isConstant": false, "isLValue": false, "isPure": false, @@ -2477,14 +2477,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "623:16:27", + "src": "623:16:38", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", "typeString": "tuple(uint256,bool)" } }, "nodeType": "VariableDeclarationStatement", - "src": "606:33:27" + "src": "606:33:38" }, { "expression": { @@ -2496,19 +2496,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6552, + "id": 9113, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6550, + "id": 9111, "name": "lastV", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6545, - "src": "658:5:27", + "referencedDeclaration": 9106, + "src": "658:5:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2518,18 +2518,18 @@ "operator": "<", "rightExpression": { "argumentTypes": null, - "id": 6551, + "id": 9112, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6529, - "src": "666:7:27", + "referencedDeclaration": 9090, + "src": "666:7:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "658:15:27", + "src": "658:15:38", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2543,21 +2543,21 @@ "typeString": "bool" } ], - "id": 6549, + "id": 9110, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "650:7:27", + "referencedDeclaration": 10045, + "src": "650:7:38", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 6553, + "id": 9114, "isConstant": false, "isLValue": false, "isPure": false, @@ -2565,15 +2565,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "650:24:27", + "src": "650:24:38", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6554, + "id": 9115, "nodeType": "ExpressionStatement", - "src": "650:24:27" + "src": "650:24:38" }, { "expression": { @@ -2581,12 +2581,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6558, + "id": 9119, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6529, - "src": "699:7:27", + "referencedDeclaration": 9090, + "src": "699:7:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2602,18 +2602,18 @@ ], "expression": { "argumentTypes": null, - "id": 6555, + "id": 9116, "name": "versions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6517, - "src": "685:8:27", + "referencedDeclaration": 9078, + "src": "685:8:38", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 6557, + "id": 9118, "isConstant": false, "isLValue": false, "isPure": false, @@ -2621,13 +2621,13 @@ "memberName": "push", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "685:13:27", + "src": "685:13:38", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256) returns (uint256)" } }, - "id": 6559, + "id": 9120, "isConstant": false, "isLValue": false, "isPure": false, @@ -2635,20 +2635,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "685:22:27", + "src": "685:22:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6560, + "id": 9121, "nodeType": "ExpressionStatement", - "src": "685:22:27" + "src": "685:22:38" }, { "expression": { "argumentTypes": null, - "id": 6565, + "id": 9126, "isConstant": false, "isLValue": false, "isPure": false, @@ -2657,26 +2657,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 6561, + "id": 9122, "name": "addressByVersion", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6521, - "src": "717:16:27", + "referencedDeclaration": 9082, + "src": "717:16:38", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", "typeString": "mapping(uint256 => address)" } }, - "id": 6563, + "id": 9124, "indexExpression": { "argumentTypes": null, - "id": 6562, + "id": 9123, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6529, - "src": "734:7:27", + "referencedDeclaration": 9090, + "src": "734:7:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2687,7 +2687,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "717:25:27", + "src": "717:25:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2697,31 +2697,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 6564, + "id": 9125, "name": "_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6527, - "src": "745:8:27", + "referencedDeclaration": 9088, + "src": "745:8:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "717:36:27", + "src": "717:36:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 6566, + "id": 9127, "nodeType": "ExpressionStatement", - "src": "717:36:27" + "src": "717:36:38" }, { "expression": { "argumentTypes": null, - "id": 6571, + "id": 9132, "isConstant": false, "isLValue": false, "isPure": false, @@ -2730,26 +2730,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 6567, + "id": 9128, "name": "versionByAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6525, - "src": "763:16:27", + "referencedDeclaration": 9086, + "src": "763:16:38", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 6569, + "id": 9130, "indexExpression": { "argumentTypes": null, - "id": 6568, + "id": 9129, "name": "_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6527, - "src": "780:8:27", + "referencedDeclaration": 9088, + "src": "780:8:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2760,7 +2760,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "763:26:27", + "src": "763:26:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2770,68 +2770,68 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 6570, + "id": 9131, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6529, - "src": "792:7:27", + "referencedDeclaration": 9090, + "src": "792:7:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "763:36:27", + "src": "763:36:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6572, + "id": 9133, "nodeType": "ExpressionStatement", - "src": "763:36:27" + "src": "763:36:38" } ] }, "documentation": null, - "id": 6574, + "id": 9135, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 6532, + "id": 9093, "modifierName": { "argumentTypes": null, - "id": 6531, + "id": 9092, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6888, - "src": "527:9:27", + "referencedDeclaration": 9636, + "src": "527:9:38", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "527:9:27" + "src": "527:9:38" } ], "name": "setVersion", "nodeType": "FunctionDefinition", "parameters": { - "id": 6530, + "id": 9091, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6527, + "id": 9088, "name": "_address", "nodeType": "VariableDeclaration", - "scope": 6574, - "src": "488:16:27", + "scope": 9135, + "src": "488:16:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2839,10 +2839,10 @@ "typeString": "address" }, "typeName": { - "id": 6526, + "id": 9087, "name": "address", "nodeType": "ElementaryTypeName", - "src": "488:7:27", + "src": "488:7:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2853,11 +2853,11 @@ }, { "constant": false, - "id": 6529, + "id": 9090, "name": "version", "nodeType": "VariableDeclaration", - "scope": 6574, - "src": "506:12:27", + "scope": 9135, + "src": "506:12:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2865,10 +2865,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6528, + "id": 9089, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "506:4:27", + "src": "506:4:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2878,50 +2878,50 @@ "visibility": "internal" } ], - "src": "487:32:27" + "src": "487:32:38" }, "payable": false, "returnParameters": { - "id": 6533, + "id": 9094, "nodeType": "ParameterList", "parameters": [], - "src": "537:0:27" + "src": "537:0:38" }, - "scope": 6660, - "src": "468:338:27", + "scope": 9221, + "src": "468:338:38", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 6582, + "id": 9143, "nodeType": "Block", - "src": "864:32:27", + "src": "864:32:38", "statements": [ { "expression": { "argumentTypes": null, - "id": 6580, + "id": 9141, "name": "versions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6517, - "src": "881:8:27", + "referencedDeclaration": 9078, + "src": "881:8:38", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "functionReturnParameters": 6579, - "id": 6581, + "functionReturnParameters": 9140, + "id": 9142, "nodeType": "Return", - "src": "874:15:27" + "src": "874:15:38" } ] }, "documentation": null, - "id": 6583, + "id": 9144, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2929,23 +2929,23 @@ "name": "getVersions", "nodeType": "FunctionDefinition", "parameters": { - "id": 6575, + "id": 9136, "nodeType": "ParameterList", "parameters": [], - "src": "832:2:27" + "src": "832:2:38" }, "payable": false, "returnParameters": { - "id": 6579, + "id": 9140, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6578, + "id": 9139, "name": "", "nodeType": "VariableDeclaration", - "scope": 6583, - "src": "856:6:27", + "scope": 9144, + "src": "856:6:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2954,19 +2954,19 @@ }, "typeName": { "baseType": { - "id": 6576, + "id": 9137, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "856:4:27", + "src": "856:4:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6577, + "id": 9138, "length": null, "nodeType": "ArrayTypeName", - "src": "856:6:27", + "src": "856:6:38", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -2976,19 +2976,19 @@ "visibility": "internal" } ], - "src": "855:8:27" + "src": "855:8:38" }, - "scope": 6660, - "src": "812:84:27", + "scope": 9221, + "src": "812:84:38", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 6631, + "id": 9192, "nodeType": "Block", - "src": "958:259:27", + "src": "958:259:38", "statements": [ { "condition": { @@ -2997,7 +2997,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6592, + "id": 9153, "isConstant": false, "isLValue": false, "isPure": false, @@ -3006,18 +3006,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 6589, + "id": 9150, "name": "versions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6517, - "src": "972:8:27", + "referencedDeclaration": 9078, + "src": "972:8:38", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 6590, + "id": 9151, "isConstant": false, "isLValue": true, "isPure": false, @@ -3025,7 +3025,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "972:15:27", + "src": "972:15:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3036,14 +3036,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 6591, + "id": 9152, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "991:1:27", + "src": "991:1:38", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3051,36 +3051,36 @@ }, "value": "0" }, - "src": "972:20:27", + "src": "972:20:38", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 6594, + "id": 9155, "nodeType": "IfStatement", - "src": "968:33:27", + "src": "968:33:38", "trueBody": { "expression": null, - "functionReturnParameters": 6588, - "id": 6593, + "functionReturnParameters": 9149, + "id": 9154, "nodeType": "Return", - "src": "994:7:27" + "src": "994:7:38" } }, { "assignments": [ - 6598 + 9159 ], "declarations": [ { "constant": false, - "id": 6598, + "id": 9159, "name": "result", "nodeType": "VariableDeclaration", - "scope": 6632, - "src": "1011:23:27", + "scope": 9193, + "src": "1011:23:38", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -3089,19 +3089,19 @@ }, "typeName": { "baseType": { - "id": 6596, + "id": 9157, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1011:7:27", + "src": "1011:7:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 6597, + "id": 9158, "length": null, "nodeType": "ArrayTypeName", - "src": "1011:9:27", + "src": "1011:9:38", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -3111,7 +3111,7 @@ "visibility": "internal" } ], - "id": 6605, + "id": 9166, "initialValue": { "argumentTypes": null, "arguments": [ @@ -3119,18 +3119,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 6602, + "id": 9163, "name": "versions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6517, - "src": "1051:8:27", + "referencedDeclaration": 9078, + "src": "1051:8:38", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 6603, + "id": 9164, "isConstant": false, "isLValue": true, "isPure": false, @@ -3138,7 +3138,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1051:15:27", + "src": "1051:15:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3152,39 +3152,39 @@ "typeString": "uint256" } ], - "id": 6601, + "id": 9162, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "1037:13:27", + "src": "1037:13:38", "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": 6599, + "id": 9160, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1041:7:27", + "src": "1041:7:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 6600, + "id": 9161, "length": null, "nodeType": "ArrayTypeName", - "src": "1041:9:27", + "src": "1041:9:38", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } } }, - "id": 6604, + "id": 9165, "isConstant": false, "isLValue": false, "isPure": false, @@ -3192,25 +3192,25 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1037:30:27", + "src": "1037:30:38", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory", "typeString": "address[] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "1011:56:27" + "src": "1011:56:38" }, { "body": { - "id": 6627, + "id": 9188, "nodeType": "Block", - "src": "1121:66:27", + "src": "1121:66:38", "statements": [ { "expression": { "argumentTypes": null, - "id": 6625, + "id": 9186, "isConstant": false, "isLValue": false, "isPure": false, @@ -3219,26 +3219,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 6617, + "id": 9178, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6598, - "src": "1135:6:27", + "referencedDeclaration": 9159, + "src": "1135:6:38", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 6619, + "id": 9180, "indexExpression": { "argumentTypes": null, - "id": 6618, + "id": 9179, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6607, - "src": "1142:1:27", + "referencedDeclaration": 9168, + "src": "1142:1:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3249,7 +3249,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1135:9:27", + "src": "1135:9:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3261,42 +3261,42 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 6620, + "id": 9181, "name": "addressByVersion", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6521, - "src": "1147:16:27", + "referencedDeclaration": 9082, + "src": "1147:16:38", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", "typeString": "mapping(uint256 => address)" } }, - "id": 6624, + "id": 9185, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 6621, + "id": 9182, "name": "versions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6517, - "src": "1164:8:27", + "referencedDeclaration": 9078, + "src": "1164:8:38", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 6623, + "id": 9184, "indexExpression": { "argumentTypes": null, - "id": 6622, + "id": 9183, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6607, - "src": "1173:1:27", + "referencedDeclaration": 9168, + "src": "1173:1:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3307,7 +3307,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1164:11:27", + "src": "1164:11:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3318,21 +3318,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1147:29:27", + "src": "1147:29:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1135:41:27", + "src": "1135:41:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 6626, + "id": 9187, "nodeType": "ExpressionStatement", - "src": "1135:41:27" + "src": "1135:41:38" } ] }, @@ -3342,19 +3342,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6613, + "id": 9174, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6610, + "id": 9171, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6607, - "src": "1095:1:27", + "referencedDeclaration": 9168, + "src": "1095:1:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3366,18 +3366,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 6611, + "id": 9172, "name": "versions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6517, - "src": "1099:8:27", + "referencedDeclaration": 9078, + "src": "1099:8:38", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 6612, + "id": 9173, "isConstant": false, "isLValue": true, "isPure": false, @@ -3385,31 +3385,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1099:15:27", + "src": "1099:15:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1095:19:27", + "src": "1095:19:38", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 6628, + "id": 9189, "initializationExpression": { "assignments": [ - 6607 + 9168 ], "declarations": [ { "constant": false, - "id": 6607, + "id": 9168, "name": "i", "nodeType": "VariableDeclaration", - "scope": 6632, - "src": "1083:6:27", + "scope": 9193, + "src": "1083:6:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3417,10 +3417,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6606, + "id": 9167, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1083:4:27", + "src": "1083:4:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3430,18 +3430,18 @@ "visibility": "internal" } ], - "id": 6609, + "id": 9170, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 6608, + "id": 9169, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1092:1:27", + "src": "1092:1:38", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3450,12 +3450,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "1083:10:27" + "src": "1083:10:38" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 6615, + "id": 9176, "isConstant": false, "isLValue": false, "isPure": false, @@ -3463,15 +3463,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "1116:3:27", + "src": "1116:3:38", "subExpression": { "argumentTypes": null, - "id": 6614, + "id": 9175, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6607, - "src": "1116:1:27", + "referencedDeclaration": 9168, + "src": "1116:1:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3482,36 +3482,36 @@ "typeString": "uint256" } }, - "id": 6616, + "id": 9177, "nodeType": "ExpressionStatement", - "src": "1116:3:27" + "src": "1116:3:38" }, "nodeType": "ForStatement", - "src": "1078:109:27" + "src": "1078:109:38" }, { "expression": { "argumentTypes": null, - "id": 6629, + "id": 9190, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6598, - "src": "1204:6:27", + "referencedDeclaration": 9159, + "src": "1204:6:38", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "functionReturnParameters": 6588, - "id": 6630, + "functionReturnParameters": 9149, + "id": 9191, "nodeType": "Return", - "src": "1197:13:27" + "src": "1197:13:38" } ] }, "documentation": null, - "id": 6632, + "id": 9193, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -3519,23 +3519,23 @@ "name": "getAddresses", "nodeType": "FunctionDefinition", "parameters": { - "id": 6584, + "id": 9145, "nodeType": "ParameterList", "parameters": [], - "src": "923:2:27" + "src": "923:2:38" }, "payable": false, "returnParameters": { - "id": 6588, + "id": 9149, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6587, + "id": 9148, "name": "", "nodeType": "VariableDeclaration", - "scope": 6632, - "src": "947:9:27", + "scope": 9193, + "src": "947:9:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3544,19 +3544,19 @@ }, "typeName": { "baseType": { - "id": 6585, + "id": 9146, "name": "address", "nodeType": "ElementaryTypeName", - "src": "947:7:27", + "src": "947:7:38", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 6586, + "id": 9147, "length": null, "nodeType": "ArrayTypeName", - "src": "947:9:27", + "src": "947:9:38", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -3566,19 +3566,19 @@ "visibility": "internal" } ], - "src": "946:11:27" + "src": "946:11:38" }, - "scope": 6660, - "src": "902:315:27", + "scope": 9221, + "src": "902:315:38", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 6658, + "id": 9219, "nodeType": "Block", - "src": "1296:121:27", + "src": "1296:121:38", "statements": [ { "condition": { @@ -3587,7 +3587,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6642, + "id": 9203, "isConstant": false, "isLValue": false, "isPure": false, @@ -3596,18 +3596,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 6639, + "id": 9200, "name": "versions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6517, - "src": "1310:8:27", + "referencedDeclaration": 9078, + "src": "1310:8:38", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 6640, + "id": 9201, "isConstant": false, "isLValue": true, "isPure": false, @@ -3615,7 +3615,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1310:15:27", + "src": "1310:15:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3626,14 +3626,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 6641, + "id": 9202, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1329:1:27", + "src": "1329:1:38", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3641,40 +3641,40 @@ }, "value": "0" }, - "src": "1310:20:27", + "src": "1310:20:38", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 6644, + "id": 9205, "nodeType": "IfStatement", - "src": "1306:33:27", + "src": "1306:33:38", "trueBody": { "expression": null, - "functionReturnParameters": 6638, - "id": 6643, + "functionReturnParameters": 9199, + "id": 9204, "nodeType": "Return", - "src": "1332:7:27" + "src": "1332:7:38" } }, { "expression": { "argumentTypes": null, - "id": 6647, + "id": 9208, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 6645, + "id": 9206, "name": "found", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6637, - "src": "1349:5:27", + "referencedDeclaration": 9198, + "src": "1349:5:38", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3685,14 +3685,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 6646, + "id": 9207, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1357:4:27", + "src": "1357:4:38", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3700,32 +3700,32 @@ }, "value": "true" }, - "src": "1349:12:27", + "src": "1349:12:38", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 6648, + "id": 9209, "nodeType": "ExpressionStatement", - "src": "1349:12:27" + "src": "1349:12:38" }, { "expression": { "argumentTypes": null, - "id": 6656, + "id": 9217, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 6649, + "id": 9210, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6635, - "src": "1371:7:27", + "referencedDeclaration": 9196, + "src": "1371:7:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3737,25 +3737,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 6650, + "id": 9211, "name": "versions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6517, - "src": "1381:8:27", + "referencedDeclaration": 9078, + "src": "1381:8:38", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 6655, + "id": 9216, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6654, + "id": 9215, "isConstant": false, "isLValue": false, "isPure": false, @@ -3764,18 +3764,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 6651, + "id": 9212, "name": "versions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6517, - "src": "1390:8:27", + "referencedDeclaration": 9078, + "src": "1390:8:38", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 6652, + "id": 9213, "isConstant": false, "isLValue": true, "isPure": false, @@ -3783,7 +3783,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1390:15:27", + "src": "1390:15:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3794,14 +3794,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 6653, + "id": 9214, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1408:1:27", + "src": "1408:1:38", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -3809,7 +3809,7 @@ }, "value": "1" }, - "src": "1390:19:27", + "src": "1390:19:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3820,26 +3820,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1381:29:27", + "src": "1381:29:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1371:39:27", + "src": "1371:39:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6657, + "id": 9218, "nodeType": "ExpressionStatement", - "src": "1371:39:27" + "src": "1371:39:38" } ] }, "documentation": null, - "id": 6659, + "id": 9220, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -3847,23 +3847,23 @@ "name": "getLastVersion", "nodeType": "FunctionDefinition", "parameters": { - "id": 6633, + "id": 9194, "nodeType": "ParameterList", "parameters": [], - "src": "1246:2:27" + "src": "1246:2:38" }, "payable": false, "returnParameters": { - "id": 6638, + "id": 9199, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6635, + "id": 9196, "name": "version", "nodeType": "VariableDeclaration", - "scope": 6659, - "src": "1270:12:27", + "scope": 9220, + "src": "1270:12:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3871,10 +3871,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6634, + "id": 9195, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1270:4:27", + "src": "1270:4:38", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3885,11 +3885,11 @@ }, { "constant": false, - "id": 6637, + "id": 9198, "name": "found", "nodeType": "VariableDeclaration", - "scope": 6659, - "src": "1284:10:27", + "scope": 9220, + "src": "1284:10:38", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3897,10 +3897,10 @@ "typeString": "bool" }, "typeName": { - "id": 6636, + "id": 9197, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1284:4:27", + "src": "1284:4:38", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3910,20 +3910,20 @@ "visibility": "internal" } ], - "src": "1269:26:27" + "src": "1269:26:38" }, - "scope": 6660, - "src": "1223:194:27", + "scope": 9221, + "src": "1223:194:38", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 6661, - "src": "213:1206:27" + "scope": 9222, + "src": "213:1206:38" } ], - "src": "0:1420:27" + "src": "0:1420:38" }, "compiler": { "name": "solc", @@ -3944,5 +3944,5 @@ } }, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-02T12:05:06.481Z" + "updatedAt": "2018-10-22T08:01:07.095Z" } \ No newline at end of file diff --git a/build/contracts/W12Crowdsale.json b/build/contracts/W12Crowdsale.json index 5e95ad36..015b5856 100644 --- a/build/contracts/W12Crowdsale.json +++ b/build/contracts/W12Crowdsale.json @@ -29,6 +29,20 @@ "stateMutability": "view", "type": "function" }, + { + "constant": true, + "inputs": [], + "name": "rates", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, { "constant": true, "inputs": [], @@ -271,17 +285,16 @@ { "name": "_fund", "type": "address" + }, + { + "name": "_rates", + "type": "address" } ], "payable": false, "stateMutability": "nonpayable", "type": "constructor" }, - { - "payable": true, - "stateMutability": "payable", - "type": "fallback" - }, { "anonymous": false, "inputs": [ @@ -292,12 +305,12 @@ }, { "indexed": false, - "name": "amountPaid", + "name": "tokensBought", "type": "uint256" }, { "indexed": false, - "name": "tokensBought", + "name": "cost", "type": "uint256" }, { @@ -571,6 +584,10 @@ { "name": "nameAndDescriptionsOfMilestones", "type": "bytes" + }, + { + "name": "paymentMethodsList", + "type": "bytes32[]" } ], "name": "setup", @@ -581,7 +598,16 @@ }, { "constant": false, - "inputs": [], + "inputs": [ + { + "name": "method", + "type": "bytes32" + }, + { + "name": "amount", + "type": "uint256" + } + ], "name": "buyTokens", "outputs": [], "payable": true, @@ -616,6 +642,85 @@ "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": "tokenAmount", + "type": "uint256" + }, + { + "name": "cost", + "type": "uint256" + } + ], + "name": "getFee", + "outputs": [ + { + "name": "", + "type": "uint256[2]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, { "constant": true, "inputs": [ @@ -691,24 +796,24 @@ "type": "function" } ], - "bytecode": "0x608060405260016002553480156200001657600080fd5b50604051610120806200329383398101604090815281516020830151918301516060840151608085015160a086015160c087015160e088015161010090980151600087905560018054600160a060020a03191633179055959794959394929391929091600160a060020a03881615156200008f57600080fd5b600160a060020a0387161515620000a557600080fd5b620000be836401000000006200289a620001df82021704565b8015620000e357506064620000e18464010000000062002f136200021c82021704565b105b1515620000ef57600080fd5b62000108826401000000006200289a620001df82021704565b80156200012d575060646200012b8364010000000062002f136200021c82021704565b105b15156200013957600080fd5b600160a060020a03811615156200014f57600080fd5b600160a060020a03841615156200016557600080fd5b6200017a86866401000000006200026e810204565b60038054600160a060020a0319908116600160a060020a03998a16179091556004805482169989169990991790985560069290925560098054881693871693909317909255600791909155600a80549095169316929092179092555062000313915050565b6000620001f4640100000000620002b9810204565b821015801562000216575062000212640100000000620002be810204565b8211155b92915050565b60006200023282640100000000620001df810204565b15156200023e57600080fd5b6200021662000255640100000000620002db810204565b8390600a0a64010000000062002885620002e082021704565b600082116200027c57600080fd5b600160a060020a03811615156200029257600080fd5b60059190915560088054600160a060020a031916600160a060020a03909216919091179055565b600090565b6000620002d3640100000000620002f6810204565b600a0a905090565b600290565b60008183811515620002ee57fe5b049392505050565b60006200030b640100000000620002db810204565b600201905090565b612f7080620003236000396000f3006080604052600436106101715763ffffffff60e060020a60003504166313096a41811461017b57806314f66d34146101ac57806317410a07146101da578063208853c91461022a5780632442e1cb146102545780632e3250201461038a5780632fbe59901461047b578063313602d4146104905780633baba4d7146104a55780634090cb64146104ba57806354fd4d50146104cf5780635641f3c3146104e4578063564566a8146104f9578063715018a614610522578063792c02ea146105375780638119c0651461054c578063845ddcb2146105615780638abdf5aa146105aa5780638da5cb5b146105bf5780638edd6eb6146105d4578063a035b1fe146105e9578063a4fd6f56146105fe578063b135648814610613578063b60d428814610641578063d0febe4c14610171578063d6d65f3d14610656578063daa4cf881461066b578063e89e4ed614610680578063e93b054014610698578063f2fde38b146106b0578063fc0c546a146106d1575b6101796106e6565b005b34801561018757600080fd5b50610190610ba3565b60408051600160a060020a039092168252519081900360200190f35b3480156101b857600080fd5b506101c1610bb2565b6040805192835290151560208301528051918290030190f35b3480156101e657600080fd5b506101796024600480358281019290820135918135808301929082013591604435808301929082013591606435808301929082013591608435918201910135610be5565b34801561023657600080fd5b50610242600435610dec565b60408051918252519081900360200190f35b34801561026057600080fd5b5061026c600435610e9a565b604051808763ffffffff1663ffffffff1681526020018681526020018563ffffffff1663ffffffff1681526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019080838360005b838110156102e95781810151838201526020016102d1565b50505050905090810190601f1680156103165780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015610349578181015183820152602001610331565b50505050905090810190601f1680156103765780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b34801561039657600080fd5b506103a26004356110c7565b604051808763ffffffff1663ffffffff1681526020018663ffffffff1663ffffffff1681526020018581526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561042257818101518382015260200161040a565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015610461578181015183820152602001610449565b505050509050019850505050505050505060405180910390f35b34801561048757600080fd5b5061024261126d565b34801561049c57600080fd5b50610179611273565b3480156104b157600080fd5b50610242611422565b3480156104c657600080fd5b50610190611429565b3480156104db57600080fd5b50610242611438565b3480156104f057600080fd5b5061019061143e565b34801561050557600080fd5b5061050e61144d565b604080519115158252519081900360200190f35b34801561052e57600080fd5b50610179611463565b34801561054357600080fd5b506102426114d1565b34801561055857600080fd5b506101906114d7565b34801561056d57600080fd5b506105796004356114e6565b6040805163ffffffff9586168152938516602085015283810192909252909216606082015290519081900360800190f35b3480156105b657600080fd5b5061024261152c565b3480156105cb57600080fd5b50610190611532565b3480156105e057600080fd5b50610190611541565b3480156105f557600080fd5b50610242611550565b34801561060a57600080fd5b5061050e611556565b34801561061f57600080fd5b5061062861159e565b6040805163ffffffff9092168252519081900360200190f35b34801561064d57600080fd5b506101906115e5565b34801561066257600080fd5b506101c16115f4565b34801561067757600080fd5b506101c161166f565b34801561068c57600080fd5b5061026c6004356116f2565b3480156106a457600080fd5b50610179600435611860565b3480156106bc57600080fd5b50610179600160a060020a03600435166118ce565b3480156106dd57600080fd5b506101906118ee565b600080600080600080600080600160025414151561070357600080fd5b6002805561070f61144d565b151561077c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f53616c65206973206e6f74207374617274656420796574000000000000000000604482015290519081900360640190fd5b6000341161078957600080fd5b61079161166f565b509750600b888154811015156107a357fe5b9060005260206000209060050201600101549650600b888154811015156107c657fe5b600091825260209091206002600590920201015463ffffffff1695506107eb34610dec565b94506107f83488876118fd565b509350935093506000600754111561097e5760075461081e90859063ffffffff611ce716565b60048054600954600854604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a03938416958101959095529082166024850152604484018590525193945016916323b872dd916064808201926020929091908290030181600087803b15801561089e57600080fd5b505af11580156108b2573d6000803e3d6000fd5b505050506040513d60208110156108c857600080fd5b505115156108d557600080fd5b600354600954604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152602481018590529051919092169163a9059cbb9160448083019260209291908290030181600087803b15801561094757600080fd5b505af115801561095b573d6000803e3d6000fd5b505050506040513d602081101561097157600080fd5b5051151561097e57600080fd5b600354604080517f9d2e47770000000000000000000000000000000000000000000000000000000081523360048201526024810187905263ffffffff891660448201529051600160a060020a0390921691639d2e4777916064808201926020929091908290030181600087803b1580156109f757600080fd5b505af1158015610a0b573d6000803e3d6000fd5b505050506040513d6020811015610a2157600080fd5b50511515610a2e57600080fd5b6000821115610a6657604051339083156108fc029084906000818181858888f19350505050158015610a64573d6000803e3d6000fd5b505b60006006541115610ac257600854600654600160a060020a03909116906108fc90610a9890869063ffffffff611ce716565b6040518115909202916000818181858888f19350505050158015610ac0573d6000803e3d6000fd5b505b600a54604080517f958799cb000000000000000000000000000000000000000000000000000000008152336004820152602481018790529051600160a060020a039092169163958799cb91620186a09130319160448082019260009290919082900301818589803b158015610b3657600080fd5b5088f1158015610b4a573d6000803e3d6000fd5b505060408051888152602081018a905280820188905290513395507f347f5f0051b895093800553e6e78ef332849e2552639a4f5ffe66535788ae07894509081900360600192509050a250506001600255505050505050565b600454600160a060020a031681565b600c5460009081901580610bcb5750610bc9611556565b155b15610bd557610be1565b5050600c546000190160015b9091565b600154600160a060020a03163314610bfc57600080fd5b600b5460001015610c395742600b6000815481101515610c1857fe5b600091825260209091206005909102015463ffffffff1611610c3957600080fd5b881515610c4557600080fd5b60ff891115610c5357600080fd5b60ff851115610c6157600080fd5b600283048514610c7057600080fd5b60028104851115610c8057600080fd5b610d198a8a808060200260200160405190810160405280939291908181526020016000905b82821015610ce1576040805160c08181019092529080840287019060069083908390808284375050509183525050600190910190602001610ca5565b505050505089898080602002602001604051908101604052809392919081815260200183836020028082843750611d21945050505050565b610de08686808060200260200160405190810160405280939291908181526020016000905b82821015610d7a576040805160808181019092529080840287019060049083908390808284375050509183525050600190910190602001610d3e565b50505050508585808060200260200160405190810160405280939291908181526020018383602002808284375050604080516020601f8b01819004810282018101909252898152945089935088925082915084018382808284375061222a945050505050565b50505050505050505050565b6000806000806000610dfc61166f565b93509350821515610e105760009450610e91565b600b805485908110610e1e57fe5b90600052602060002090600502019150600090505b6003820154811015610e915760038201805482908110610e4f57fe5b906000526020600020015486101515610e845760048201805482908110610e7257fe5b90600052602060002001549450610e89565b610e91565b600101610e33565b50505050919050565b600080600080606080600c87815481101515610eb257fe5b6000918252602090912060059091020154600c805463ffffffff9092169189908110610eda57fe5b906000526020600020906005020160010154600c89815481101515610efb57fe5b6000918252602090912060026005909202010154600c805463ffffffff909216918b908110610f2657fe5b906000526020600020906005020160020160049054906101000a900463ffffffff16600c8b815481101515610f5757fe5b9060005260206000209060050201600301600c8c815481101515610f7757fe5b9060005260206000209060050201600401818054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561101d5780601f10610ff25761010080835404028352916020019161101d565b820191906000526020600020905b81548152906001019060200180831161100057829003601f168201915b5050845460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152959750869450925084019050828280156110ab5780601f10611080576101008083540402835291602001916110ab565b820191906000526020600020905b81548152906001019060200180831161108e57829003601f168201915b5050505050905095509550955095509550955091939550919395565b600080600080606080600b878154811015156110df57fe5b6000918252602090912060059091020154600b805463ffffffff909216918990811061110757fe5b906000526020600020906005020160000160049054906101000a900463ffffffff16600b8981548110151561113857fe5b906000526020600020906005020160010154600b8a81548110151561115957fe5b6000918252602090912060026005909202010154600b805463ffffffff909216918c90811061118457fe5b9060005260206000209060050201600301600b8c8154811015156111a457fe5b90600052602060002090600502016004018180548060200260200160405190810160405280929190818152602001828054801561120057602002820191906000526020600020905b8154815260200190600101908083116111ec575b50505050509150808054806020026020016040519081016040528092919081815260200182805480156110ab57602002820191906000526020600020905b81548152602001906001019080831161123e575050505050905095509550955095509550955091939550919395565b60075481565b600154600090600160a060020a0316331461128d57600080fd5b611295611556565b15156112a057600080fd5b600354604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b15801561130657600080fd5b505af115801561131a573d6000803e3d6000fd5b505050506040513d602081101561133057600080fd5b5051600354600154604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a03928316600482015260248101859052905193945091169163a9059cbb916044808201926020929091908290030181600087803b1580156113a657600080fd5b505af11580156113ba573d6000803e3d6000fd5b505050506040513d60208110156113d057600080fd5b505115156113dd57600080fd5b600154604080518381529051600160a060020a03909216917f26ffb867a6b19bc0240d4e732ed6cfb0f0b6d93143a99cfb24ba5873308861f89181900360200190a250565b600c545b90565b600354600160a060020a031690565b60005481565b600854600160a060020a031681565b60008061145861166f565b9150508091505b5090565b600154600160a060020a0316331461147a57600080fd5b600154604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26001805473ffffffffffffffffffffffffffffffffffffffff19169055565b600b5490565b600954600160a060020a031681565b600b8054829081106114f457fe5b600091825260209091206005909102018054600182015460029092015463ffffffff8083169450640100000000909204821692911684565b60065481565b600154600160a060020a031681565b600a54600160a060020a031690565b60055481565b600b5460009015806115995750600b8054429190600019810190811061157857fe5b6000918252602090912060059091020154640100000000900463ffffffff16105b905090565b600b5460009081106115af57600080fd5b600b805460001981019081106115c157fe5b6000918252602090912060059091020154640100000000900463ffffffff16919050565b600a54600160a060020a031681565b600c546000908190158061160d575061160b611556565b155b1561161757610be1565b5060015b600c54600019018210801561165f5750600c80548390811061163957fe5b6000918252602090912060059091020160020154640100000000900463ffffffff164210155b15610be15760019091019061161b565b60008080805b600b548210156116e457600b80548390811061168d57fe5b6000918252602090912060059091020180549091504263ffffffff909116118015906116c8575080544264010000000090910463ffffffff16115b156116d957816001935093506116ec565b600190910190611675565b600093508392505b50509091565b600c80548290811061170057fe5b60009182526020918290206005919091020180546001808301546002808501546003860180546040805161010097831615979097026000190190911693909304601f810189900489028601890190935282855263ffffffff95861698509296858216966401000000009092049095169490939291908301828280156117c65780601f1061179b576101008083540402835291602001916117c6565b820191906000526020600020905b8154815290600101906020018083116117a957829003601f168201915b5050505060048301805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529495949350908301828280156118565780601f1061182b57610100808354040283529160200191611856565b820191906000526020600020905b81548152906001019060200180831161183957829003601f168201915b5050505050905086565b600154600160a060020a0316331461187757600080fd5b600b54600010156118b45742600b600081548110151561189357fe5b600091825260209091206005909102015463ffffffff16116118b457600080fd5b6008546118cb908290600160a060020a0316612788565b50565b600154600160a060020a031633146118e557600080fd5b6118cb816127de565b600354600160a060020a031681565b600354604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290516000928692849283928392600160a060020a03909116916370a082319160248082019260209290919082900301818787803b15801561196d57600080fd5b505af1158015611981573d6000803e3d6000fd5b505050506040513d602081101561199757600080fd5b5051600354604080517f313ce5670000000000000000000000000000000000000000000000000000000081529051929350600160a060020a039091169163313ce567916004808201926020929091908290030181600087803b1580156119fc57600080fd5b505af1158015611a10573d6000803e3d6000fd5b505050506040513d6020811015611a2657600080fd5b505160ff16600a0a811015611a3a57600080fd5b60008711611a4a57600554611ad2565b611ad28773__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015611a9557600080fd5b505af4158015611aa9573d6000803e3d6000fd5b505050506040513d6020811015611abf57600080fd5b505160055491900363ffffffff611ce716565b9150611cb473__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015611b1e57600080fd5b505af4158015611b32573d6000803e3d6000fd5b505050506040513d6020811015611b4857600080fd5b5051600354604080517f313ce5670000000000000000000000000000000000000000000000000000000081529051611ca89287928492600160a060020a039092169163313ce567916004808201926020929091908290030181600087803b158015611bb257600080fd5b505af1158015611bc6573d6000803e3d6000fd5b505050506040513d6020811015611bdc57600080fd5b5051604080517fd49d5181000000000000000000000000000000000000000000000000000000008152905160ff909216600a0a91611c9c918e9173__Percent_______________________________9163d49d5181916004808301926020929190829003018186803b158015611c5157600080fd5b505af4158015611c65573d6000803e3d6000fd5b505050506040513d6020811015611c7b57600080fd5b8101908080519060200190929190505050018f61285c90919063ffffffff16565b9063ffffffff61285c16565b9063ffffffff61288516565b945084811015611cdd57611cd285611ca88a8463ffffffff61285c16565b935083880392508094505b5093509350935093565b6000611cf28261289a565b1515611cfd57600080fd5b611d18611d086128bf565b611ca8858563ffffffff61285c16565b90505b92915050565b600c54600090811015611d7e57825183906000198101908110611d4057fe5b6020908102919091018101510151600c80546000908110611d5d57fe5b600091825260209091206005909102015463ffffffff1611611d7e57600080fd5b611d8a600b6000612cef565b5060005b82518160ff1610156121fc57825163ffffffff90849060ff8416908110611db157fe5b6020908102919091010151511115611dc857600080fd5b825163ffffffff90849060ff8416908110611ddf57fe5b60209081029190910181015101511115611df857600080fd5b825163ffffffff90849060ff8416908110611e0f57fe5b6020908102919091010151606001511115611e2957600080fd5b825160ff908490838316908110611e3c57fe5b6020908102919091010151608001511115611e5657600080fd5b825160ff908490838316908110611e6957fe5b602090810291909101015160a001511115611e8357600080fd5b42838260ff16815181101515611e9557fe5b60209081029190910101515111611eab57600080fd5b828160ff16815181101515611ebc57fe5b60209081029190910181015101518351849060ff8416908110611edb57fe5b60209081029190910101515110611ef157600080fd5b60008160ff161115611f4857828160ff16815181101515611f0e57fe5b6020908102919091010151518351849060ff600019850116908110611f2f57fe5b60209081029190910181015101511115611f4857600080fd5b611f73838260ff16815181101515611f5c57fe5b6020908102909101015160025b602002015161289a565b1515611f7e57600080fd5b73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015611fc557600080fd5b505af4158015611fd9573d6000803e3d6000fd5b505050506040513d6020811015611fef57600080fd5b50518351849060ff841690811061200257fe5b6020908102919091010151604001511061201b57600080fd5b600b60c060405190810160405280858460ff1681518110151561203a57fe5b6020908102919091018101515163ffffffff1682528651910190869060ff861690811061206357fe5b602090810290910101516001602002015163ffffffff168152602001858460ff1681518110151561209057fe5b60209081029091010151600260200201518152602001858460ff168151811015156120b757fe5b6020908102919091018101516060015163ffffffff16825260408051600080825281840183528484019190915281518181529283018252920191509052815460018082018085556000948552602094859020845160059094020180548587015163ffffffff1991821663ffffffff9687161767ffffffff00000000191664010000000091871691909102178255604086015193820193909355606085015160028201805490941694169390931790915560808301518051919461218292600385019290910190612d10565b5060a0820151805161219e916004840191602090910190612d10565b505050506121f46001600b8054905003848360ff168151811015156121bf57fe5b6020908102919091010151608001518551869060ff86169081106121df57fe5b602090810291909101015160a00151856128d1565b600101611d8e565b6040517f743961f4e677d1146fbf85d75565b1c5474fd083eb166f8b9595cf5d01a4d6e690600090a1505050565b6000806000806060806000600b8054905011156122975788600081518110151561225057fe5b602090810291909101015151600b8054600019810190811061226e57fe5b6000918252602090912060059091020154640100000000900463ffffffff161061229757600080fd5b6122a3600c6000612d57565b600095506000945060009350600092505b88518360ff1610156126d657885163ffffffff908a9060ff86169081106122d757fe5b60209081029190910101515111156122ee57600080fd5b885163ffffffff908a9060ff861690811061230557fe5b6020908102919091018101510151111561231e57600080fd5b885163ffffffff908a9060ff861690811061233557fe5b602090810291909101015160400151111561234f57600080fd5b42898460ff1681518110151561236157fe5b6020908102919091010151511161237757600080fd5b888360ff1681518110151561238857fe5b60209081029190910101515189518a9060ff86169081106123a557fe5b6020908102919091018101510151116123bd57600080fd5b888360ff168151811015156123ce57fe5b602090810291909101810151015189518a9060ff86169081106123ed57fe5b6020908102919091010151604001511161240657600080fd5b60008360ff16111561245d57888360ff1681518110151561242357fe5b60209081029190910101515189518a9060ff60001987011690811061244457fe5b6020908102919091010151604001511061245d57600080fd5b612482898460ff1681518110151561247157fe5b602090810290910101516003611f69565b151561248d57600080fd5b6124bf86898781518110151561249f57fe5b9060200190602002015163ffffffff1689612c459092919063ffffffff16565b91506124f188868151811015156124d257fe5b9060200190602002015163ffffffff1687612cc690919063ffffffff16565b955061250886898760010181518110151561249f57fe5b905061251e88866001018151811015156124d257fe5b955061253185600263ffffffff612cc616565b945061255d898460ff1681518110151561254757fe5b6020908102919091010151606001518590612cc6565b9350600c60c0604051908101604052808b8660ff1681518110151561257e57fe5b6020908102919091018101515163ffffffff1682528c519101908c9060ff88169081106125a757fe5b602090810290910101516003602002015181526020018b8660ff168151811015156125ce57fe5b602090810290910101516001602002015163ffffffff1681526020018b8660ff168151811015156125fb57fe5b6020908102909101015160026020908102919091015163ffffffff90811683528282018790526040928301869052845460018181018088556000978852968490208651600590930201805492841663ffffffff19938416178155868501519181019190915593850151600285018054606088015185166401000000000267ffffffff00000000199390951693169290921716919091179055608083015180516126aa9260038501920190612d78565b5060a082015180516126c6916004840191602090910190612d78565b5050600190940193506122b49050565b73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b15801561271d57600080fd5b505af4158015612731573d6000803e3d6000fd5b505050506040513d602081101561274757600080fd5b5051841461275457600080fd5b6040517f56d9a2e016027a3725bf162ef2779c8b28d4dbec97c679cfba02dbb31a34c7ca90600090a1505050505050505050565b6000821161279557600080fd5b600160a060020a03811615156127aa57600080fd5b6005919091556008805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600160a060020a03811615156127f357600080fd5b600154604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600082151561286d57506000611d1b565b5081810281838281151561287d57fe5b0414611d1b57fe5b6000818381151561289257fe5b049392505050565b60006128a4612cd3565b8210158015611d1b57506128b66128bf565b82111592915050565b60006128c9612cd8565b600a0a905090565b606080600060ff86161580156128e8575060ff8516155b1561297c57604080516000815260208101909152600b805460ff8a1690811061290d57fe5b90600052602060002090600502016003019080519060200190612931929190612d10565b50604080516000815260208101909152600b805460ff8a1690811061295257fe5b90600052602060002090600502016004019080519060200190612976929190612d10565b50612c3c565b835160ff8616111561298d57600080fd5b60ff8086169087161061299f57600080fd5b60018616156129ad57600080fd5b60018516156129bb57600080fd5b600260ff878703160460ff166040519080825280602002602001820160405280156129f0578160200160208202803883390190505b509250600260ff878703160460ff16604051908082528060200260200182016040528015612a28578160200160208202803883390190505b509150600090505b8460ff168660ff161015612bcb57612a64848760010160ff16815181101515612a5557fe5b9060200190602002015161289a565b1515612a6f57600080fd5b73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015612ab657600080fd5b505af4158015612aca573d6000803e3d6000fd5b505050506040513d6020811015612ae057600080fd5b50518451859060ff60018a0116908110612af657fe5b6020908102909101015110612b0a57600080fd5b6000811115612b5357838660ff16815181101515612b2457fe5b906020019060200201518360018303815181101515612b3f57fe5b6020908102909101015110612b5357600080fd5b838660ff16815181101515612b6457fe5b906020019060200201518382815181101515612b7c57fe5b602090810290910101528351849060ff6001890116908110612b9a57fe5b906020019060200201518282815181101515612bb257fe5b6020908102909101015260029590950194600101612a30565b82600b8860ff16815481101515612bde57fe5b90600052602060002090600502016003019080519060200190612c02929190612d10565b5081600b8860ff16815481101515612c1657fe5b90600052602060002090600502016004019080519060200190612c3a929190612d10565b505b50505050505050565b606080828401855110151515612c5a57600080fd5b82158015612c7357604051915060208201604052612cbd565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015612cac578051835260209283019201612c94565b5050858452601f01601f1916604052505b50949350505050565b81810182811015611d1b57fe5b600090565b6000612ce2612cea565b600201905090565b600290565b50805460008255600502906000526020600020908101906118cb9190612de5565b828054828255906000526020600020908101928215612d4b579160200282015b82811115612d4b578251825591602001919060010190612d30565b5061145f929150612e3e565b50805460008255600502906000526020600020908101906118cb9190612e58565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612db957805160ff1916838001178555612d4b565b82800160010185558215612d4b5791820182811115612d4b578251825591602001919060010190612d30565b61142691905b8082111561145f57805467ffffffffffffffff1916815560006001820181905560028201805463ffffffff19169055612e276003830182612eb1565b612e35600483016000612eb1565b50600501612deb565b61142691905b8082111561145f5760008155600101612e44565b61142691905b8082111561145f57805463ffffffff1916815560006001820181905560028201805467ffffffffffffffff19169055612e9a6003830182612ecf565b612ea8600483016000612ecf565b50600501612e5e565b50805460008255906000526020600020908101906118cb9190612e3e565b50805460018160011615610100020316600290046000825580601f10612ef557506118cb565b601f0160209004906000526020600020908101906118cb9190612e3e565b6000612f1e8261289a565b1515612f2957600080fd5b611d1b612f34612cea565b8390600a0a63ffffffff612885165600a165627a7a72305820d5eee603de8192a8603bc46c6dbfdb4a4654cec9cd6a7e5c0dbe9a8b5bca70500029", - "deployedBytecode": "0x6080604052600436106101715763ffffffff60e060020a60003504166313096a41811461017b57806314f66d34146101ac57806317410a07146101da578063208853c91461022a5780632442e1cb146102545780632e3250201461038a5780632fbe59901461047b578063313602d4146104905780633baba4d7146104a55780634090cb64146104ba57806354fd4d50146104cf5780635641f3c3146104e4578063564566a8146104f9578063715018a614610522578063792c02ea146105375780638119c0651461054c578063845ddcb2146105615780638abdf5aa146105aa5780638da5cb5b146105bf5780638edd6eb6146105d4578063a035b1fe146105e9578063a4fd6f56146105fe578063b135648814610613578063b60d428814610641578063d0febe4c14610171578063d6d65f3d14610656578063daa4cf881461066b578063e89e4ed614610680578063e93b054014610698578063f2fde38b146106b0578063fc0c546a146106d1575b6101796106e6565b005b34801561018757600080fd5b50610190610ba3565b60408051600160a060020a039092168252519081900360200190f35b3480156101b857600080fd5b506101c1610bb2565b6040805192835290151560208301528051918290030190f35b3480156101e657600080fd5b506101796024600480358281019290820135918135808301929082013591604435808301929082013591606435808301929082013591608435918201910135610be5565b34801561023657600080fd5b50610242600435610dec565b60408051918252519081900360200190f35b34801561026057600080fd5b5061026c600435610e9a565b604051808763ffffffff1663ffffffff1681526020018681526020018563ffffffff1663ffffffff1681526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019080838360005b838110156102e95781810151838201526020016102d1565b50505050905090810190601f1680156103165780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015610349578181015183820152602001610331565b50505050905090810190601f1680156103765780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b34801561039657600080fd5b506103a26004356110c7565b604051808763ffffffff1663ffffffff1681526020018663ffffffff1663ffffffff1681526020018581526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561042257818101518382015260200161040a565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015610461578181015183820152602001610449565b505050509050019850505050505050505060405180910390f35b34801561048757600080fd5b5061024261126d565b34801561049c57600080fd5b50610179611273565b3480156104b157600080fd5b50610242611422565b3480156104c657600080fd5b50610190611429565b3480156104db57600080fd5b50610242611438565b3480156104f057600080fd5b5061019061143e565b34801561050557600080fd5b5061050e61144d565b604080519115158252519081900360200190f35b34801561052e57600080fd5b50610179611463565b34801561054357600080fd5b506102426114d1565b34801561055857600080fd5b506101906114d7565b34801561056d57600080fd5b506105796004356114e6565b6040805163ffffffff9586168152938516602085015283810192909252909216606082015290519081900360800190f35b3480156105b657600080fd5b5061024261152c565b3480156105cb57600080fd5b50610190611532565b3480156105e057600080fd5b50610190611541565b3480156105f557600080fd5b50610242611550565b34801561060a57600080fd5b5061050e611556565b34801561061f57600080fd5b5061062861159e565b6040805163ffffffff9092168252519081900360200190f35b34801561064d57600080fd5b506101906115e5565b34801561066257600080fd5b506101c16115f4565b34801561067757600080fd5b506101c161166f565b34801561068c57600080fd5b5061026c6004356116f2565b3480156106a457600080fd5b50610179600435611860565b3480156106bc57600080fd5b50610179600160a060020a03600435166118ce565b3480156106dd57600080fd5b506101906118ee565b600080600080600080600080600160025414151561070357600080fd5b6002805561070f61144d565b151561077c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f53616c65206973206e6f74207374617274656420796574000000000000000000604482015290519081900360640190fd5b6000341161078957600080fd5b61079161166f565b509750600b888154811015156107a357fe5b9060005260206000209060050201600101549650600b888154811015156107c657fe5b600091825260209091206002600590920201015463ffffffff1695506107eb34610dec565b94506107f83488876118fd565b509350935093506000600754111561097e5760075461081e90859063ffffffff611ce716565b60048054600954600854604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a03938416958101959095529082166024850152604484018590525193945016916323b872dd916064808201926020929091908290030181600087803b15801561089e57600080fd5b505af11580156108b2573d6000803e3d6000fd5b505050506040513d60208110156108c857600080fd5b505115156108d557600080fd5b600354600954604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152602481018590529051919092169163a9059cbb9160448083019260209291908290030181600087803b15801561094757600080fd5b505af115801561095b573d6000803e3d6000fd5b505050506040513d602081101561097157600080fd5b5051151561097e57600080fd5b600354604080517f9d2e47770000000000000000000000000000000000000000000000000000000081523360048201526024810187905263ffffffff891660448201529051600160a060020a0390921691639d2e4777916064808201926020929091908290030181600087803b1580156109f757600080fd5b505af1158015610a0b573d6000803e3d6000fd5b505050506040513d6020811015610a2157600080fd5b50511515610a2e57600080fd5b6000821115610a6657604051339083156108fc029084906000818181858888f19350505050158015610a64573d6000803e3d6000fd5b505b60006006541115610ac257600854600654600160a060020a03909116906108fc90610a9890869063ffffffff611ce716565b6040518115909202916000818181858888f19350505050158015610ac0573d6000803e3d6000fd5b505b600a54604080517f958799cb000000000000000000000000000000000000000000000000000000008152336004820152602481018790529051600160a060020a039092169163958799cb91620186a09130319160448082019260009290919082900301818589803b158015610b3657600080fd5b5088f1158015610b4a573d6000803e3d6000fd5b505060408051888152602081018a905280820188905290513395507f347f5f0051b895093800553e6e78ef332849e2552639a4f5ffe66535788ae07894509081900360600192509050a250506001600255505050505050565b600454600160a060020a031681565b600c5460009081901580610bcb5750610bc9611556565b155b15610bd557610be1565b5050600c546000190160015b9091565b600154600160a060020a03163314610bfc57600080fd5b600b5460001015610c395742600b6000815481101515610c1857fe5b600091825260209091206005909102015463ffffffff1611610c3957600080fd5b881515610c4557600080fd5b60ff891115610c5357600080fd5b60ff851115610c6157600080fd5b600283048514610c7057600080fd5b60028104851115610c8057600080fd5b610d198a8a808060200260200160405190810160405280939291908181526020016000905b82821015610ce1576040805160c08181019092529080840287019060069083908390808284375050509183525050600190910190602001610ca5565b505050505089898080602002602001604051908101604052809392919081815260200183836020028082843750611d21945050505050565b610de08686808060200260200160405190810160405280939291908181526020016000905b82821015610d7a576040805160808181019092529080840287019060049083908390808284375050509183525050600190910190602001610d3e565b50505050508585808060200260200160405190810160405280939291908181526020018383602002808284375050604080516020601f8b01819004810282018101909252898152945089935088925082915084018382808284375061222a945050505050565b50505050505050505050565b6000806000806000610dfc61166f565b93509350821515610e105760009450610e91565b600b805485908110610e1e57fe5b90600052602060002090600502019150600090505b6003820154811015610e915760038201805482908110610e4f57fe5b906000526020600020015486101515610e845760048201805482908110610e7257fe5b90600052602060002001549450610e89565b610e91565b600101610e33565b50505050919050565b600080600080606080600c87815481101515610eb257fe5b6000918252602090912060059091020154600c805463ffffffff9092169189908110610eda57fe5b906000526020600020906005020160010154600c89815481101515610efb57fe5b6000918252602090912060026005909202010154600c805463ffffffff909216918b908110610f2657fe5b906000526020600020906005020160020160049054906101000a900463ffffffff16600c8b815481101515610f5757fe5b9060005260206000209060050201600301600c8c815481101515610f7757fe5b9060005260206000209060050201600401818054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561101d5780601f10610ff25761010080835404028352916020019161101d565b820191906000526020600020905b81548152906001019060200180831161100057829003601f168201915b5050845460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152959750869450925084019050828280156110ab5780601f10611080576101008083540402835291602001916110ab565b820191906000526020600020905b81548152906001019060200180831161108e57829003601f168201915b5050505050905095509550955095509550955091939550919395565b600080600080606080600b878154811015156110df57fe5b6000918252602090912060059091020154600b805463ffffffff909216918990811061110757fe5b906000526020600020906005020160000160049054906101000a900463ffffffff16600b8981548110151561113857fe5b906000526020600020906005020160010154600b8a81548110151561115957fe5b6000918252602090912060026005909202010154600b805463ffffffff909216918c90811061118457fe5b9060005260206000209060050201600301600b8c8154811015156111a457fe5b90600052602060002090600502016004018180548060200260200160405190810160405280929190818152602001828054801561120057602002820191906000526020600020905b8154815260200190600101908083116111ec575b50505050509150808054806020026020016040519081016040528092919081815260200182805480156110ab57602002820191906000526020600020905b81548152602001906001019080831161123e575050505050905095509550955095509550955091939550919395565b60075481565b600154600090600160a060020a0316331461128d57600080fd5b611295611556565b15156112a057600080fd5b600354604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b15801561130657600080fd5b505af115801561131a573d6000803e3d6000fd5b505050506040513d602081101561133057600080fd5b5051600354600154604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a03928316600482015260248101859052905193945091169163a9059cbb916044808201926020929091908290030181600087803b1580156113a657600080fd5b505af11580156113ba573d6000803e3d6000fd5b505050506040513d60208110156113d057600080fd5b505115156113dd57600080fd5b600154604080518381529051600160a060020a03909216917f26ffb867a6b19bc0240d4e732ed6cfb0f0b6d93143a99cfb24ba5873308861f89181900360200190a250565b600c545b90565b600354600160a060020a031690565b60005481565b600854600160a060020a031681565b60008061145861166f565b9150508091505b5090565b600154600160a060020a0316331461147a57600080fd5b600154604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26001805473ffffffffffffffffffffffffffffffffffffffff19169055565b600b5490565b600954600160a060020a031681565b600b8054829081106114f457fe5b600091825260209091206005909102018054600182015460029092015463ffffffff8083169450640100000000909204821692911684565b60065481565b600154600160a060020a031681565b600a54600160a060020a031690565b60055481565b600b5460009015806115995750600b8054429190600019810190811061157857fe5b6000918252602090912060059091020154640100000000900463ffffffff16105b905090565b600b5460009081106115af57600080fd5b600b805460001981019081106115c157fe5b6000918252602090912060059091020154640100000000900463ffffffff16919050565b600a54600160a060020a031681565b600c546000908190158061160d575061160b611556565b155b1561161757610be1565b5060015b600c54600019018210801561165f5750600c80548390811061163957fe5b6000918252602090912060059091020160020154640100000000900463ffffffff164210155b15610be15760019091019061161b565b60008080805b600b548210156116e457600b80548390811061168d57fe5b6000918252602090912060059091020180549091504263ffffffff909116118015906116c8575080544264010000000090910463ffffffff16115b156116d957816001935093506116ec565b600190910190611675565b600093508392505b50509091565b600c80548290811061170057fe5b60009182526020918290206005919091020180546001808301546002808501546003860180546040805161010097831615979097026000190190911693909304601f810189900489028601890190935282855263ffffffff95861698509296858216966401000000009092049095169490939291908301828280156117c65780601f1061179b576101008083540402835291602001916117c6565b820191906000526020600020905b8154815290600101906020018083116117a957829003601f168201915b5050505060048301805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529495949350908301828280156118565780601f1061182b57610100808354040283529160200191611856565b820191906000526020600020905b81548152906001019060200180831161183957829003601f168201915b5050505050905086565b600154600160a060020a0316331461187757600080fd5b600b54600010156118b45742600b600081548110151561189357fe5b600091825260209091206005909102015463ffffffff16116118b457600080fd5b6008546118cb908290600160a060020a0316612788565b50565b600154600160a060020a031633146118e557600080fd5b6118cb816127de565b600354600160a060020a031681565b600354604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290516000928692849283928392600160a060020a03909116916370a082319160248082019260209290919082900301818787803b15801561196d57600080fd5b505af1158015611981573d6000803e3d6000fd5b505050506040513d602081101561199757600080fd5b5051600354604080517f313ce5670000000000000000000000000000000000000000000000000000000081529051929350600160a060020a039091169163313ce567916004808201926020929091908290030181600087803b1580156119fc57600080fd5b505af1158015611a10573d6000803e3d6000fd5b505050506040513d6020811015611a2657600080fd5b505160ff16600a0a811015611a3a57600080fd5b60008711611a4a57600554611ad2565b611ad28773__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015611a9557600080fd5b505af4158015611aa9573d6000803e3d6000fd5b505050506040513d6020811015611abf57600080fd5b505160055491900363ffffffff611ce716565b9150611cb473__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015611b1e57600080fd5b505af4158015611b32573d6000803e3d6000fd5b505050506040513d6020811015611b4857600080fd5b5051600354604080517f313ce5670000000000000000000000000000000000000000000000000000000081529051611ca89287928492600160a060020a039092169163313ce567916004808201926020929091908290030181600087803b158015611bb257600080fd5b505af1158015611bc6573d6000803e3d6000fd5b505050506040513d6020811015611bdc57600080fd5b5051604080517fd49d5181000000000000000000000000000000000000000000000000000000008152905160ff909216600a0a91611c9c918e9173__Percent_______________________________9163d49d5181916004808301926020929190829003018186803b158015611c5157600080fd5b505af4158015611c65573d6000803e3d6000fd5b505050506040513d6020811015611c7b57600080fd5b8101908080519060200190929190505050018f61285c90919063ffffffff16565b9063ffffffff61285c16565b9063ffffffff61288516565b945084811015611cdd57611cd285611ca88a8463ffffffff61285c16565b935083880392508094505b5093509350935093565b6000611cf28261289a565b1515611cfd57600080fd5b611d18611d086128bf565b611ca8858563ffffffff61285c16565b90505b92915050565b600c54600090811015611d7e57825183906000198101908110611d4057fe5b6020908102919091018101510151600c80546000908110611d5d57fe5b600091825260209091206005909102015463ffffffff1611611d7e57600080fd5b611d8a600b6000612cef565b5060005b82518160ff1610156121fc57825163ffffffff90849060ff8416908110611db157fe5b6020908102919091010151511115611dc857600080fd5b825163ffffffff90849060ff8416908110611ddf57fe5b60209081029190910181015101511115611df857600080fd5b825163ffffffff90849060ff8416908110611e0f57fe5b6020908102919091010151606001511115611e2957600080fd5b825160ff908490838316908110611e3c57fe5b6020908102919091010151608001511115611e5657600080fd5b825160ff908490838316908110611e6957fe5b602090810291909101015160a001511115611e8357600080fd5b42838260ff16815181101515611e9557fe5b60209081029190910101515111611eab57600080fd5b828160ff16815181101515611ebc57fe5b60209081029190910181015101518351849060ff8416908110611edb57fe5b60209081029190910101515110611ef157600080fd5b60008160ff161115611f4857828160ff16815181101515611f0e57fe5b6020908102919091010151518351849060ff600019850116908110611f2f57fe5b60209081029190910181015101511115611f4857600080fd5b611f73838260ff16815181101515611f5c57fe5b6020908102909101015160025b602002015161289a565b1515611f7e57600080fd5b73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015611fc557600080fd5b505af4158015611fd9573d6000803e3d6000fd5b505050506040513d6020811015611fef57600080fd5b50518351849060ff841690811061200257fe5b6020908102919091010151604001511061201b57600080fd5b600b60c060405190810160405280858460ff1681518110151561203a57fe5b6020908102919091018101515163ffffffff1682528651910190869060ff861690811061206357fe5b602090810290910101516001602002015163ffffffff168152602001858460ff1681518110151561209057fe5b60209081029091010151600260200201518152602001858460ff168151811015156120b757fe5b6020908102919091018101516060015163ffffffff16825260408051600080825281840183528484019190915281518181529283018252920191509052815460018082018085556000948552602094859020845160059094020180548587015163ffffffff1991821663ffffffff9687161767ffffffff00000000191664010000000091871691909102178255604086015193820193909355606085015160028201805490941694169390931790915560808301518051919461218292600385019290910190612d10565b5060a0820151805161219e916004840191602090910190612d10565b505050506121f46001600b8054905003848360ff168151811015156121bf57fe5b6020908102919091010151608001518551869060ff86169081106121df57fe5b602090810291909101015160a00151856128d1565b600101611d8e565b6040517f743961f4e677d1146fbf85d75565b1c5474fd083eb166f8b9595cf5d01a4d6e690600090a1505050565b6000806000806060806000600b8054905011156122975788600081518110151561225057fe5b602090810291909101015151600b8054600019810190811061226e57fe5b6000918252602090912060059091020154640100000000900463ffffffff161061229757600080fd5b6122a3600c6000612d57565b600095506000945060009350600092505b88518360ff1610156126d657885163ffffffff908a9060ff86169081106122d757fe5b60209081029190910101515111156122ee57600080fd5b885163ffffffff908a9060ff861690811061230557fe5b6020908102919091018101510151111561231e57600080fd5b885163ffffffff908a9060ff861690811061233557fe5b602090810291909101015160400151111561234f57600080fd5b42898460ff1681518110151561236157fe5b6020908102919091010151511161237757600080fd5b888360ff1681518110151561238857fe5b60209081029190910101515189518a9060ff86169081106123a557fe5b6020908102919091018101510151116123bd57600080fd5b888360ff168151811015156123ce57fe5b602090810291909101810151015189518a9060ff86169081106123ed57fe5b6020908102919091010151604001511161240657600080fd5b60008360ff16111561245d57888360ff1681518110151561242357fe5b60209081029190910101515189518a9060ff60001987011690811061244457fe5b6020908102919091010151604001511061245d57600080fd5b612482898460ff1681518110151561247157fe5b602090810290910101516003611f69565b151561248d57600080fd5b6124bf86898781518110151561249f57fe5b9060200190602002015163ffffffff1689612c459092919063ffffffff16565b91506124f188868151811015156124d257fe5b9060200190602002015163ffffffff1687612cc690919063ffffffff16565b955061250886898760010181518110151561249f57fe5b905061251e88866001018151811015156124d257fe5b955061253185600263ffffffff612cc616565b945061255d898460ff1681518110151561254757fe5b6020908102919091010151606001518590612cc6565b9350600c60c0604051908101604052808b8660ff1681518110151561257e57fe5b6020908102919091018101515163ffffffff1682528c519101908c9060ff88169081106125a757fe5b602090810290910101516003602002015181526020018b8660ff168151811015156125ce57fe5b602090810290910101516001602002015163ffffffff1681526020018b8660ff168151811015156125fb57fe5b6020908102909101015160026020908102919091015163ffffffff90811683528282018790526040928301869052845460018181018088556000978852968490208651600590930201805492841663ffffffff19938416178155868501519181019190915593850151600285018054606088015185166401000000000267ffffffff00000000199390951693169290921716919091179055608083015180516126aa9260038501920190612d78565b5060a082015180516126c6916004840191602090910190612d78565b5050600190940193506122b49050565b73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b15801561271d57600080fd5b505af4158015612731573d6000803e3d6000fd5b505050506040513d602081101561274757600080fd5b5051841461275457600080fd5b6040517f56d9a2e016027a3725bf162ef2779c8b28d4dbec97c679cfba02dbb31a34c7ca90600090a1505050505050505050565b6000821161279557600080fd5b600160a060020a03811615156127aa57600080fd5b6005919091556008805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600160a060020a03811615156127f357600080fd5b600154604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600082151561286d57506000611d1b565b5081810281838281151561287d57fe5b0414611d1b57fe5b6000818381151561289257fe5b049392505050565b60006128a4612cd3565b8210158015611d1b57506128b66128bf565b82111592915050565b60006128c9612cd8565b600a0a905090565b606080600060ff86161580156128e8575060ff8516155b1561297c57604080516000815260208101909152600b805460ff8a1690811061290d57fe5b90600052602060002090600502016003019080519060200190612931929190612d10565b50604080516000815260208101909152600b805460ff8a1690811061295257fe5b90600052602060002090600502016004019080519060200190612976929190612d10565b50612c3c565b835160ff8616111561298d57600080fd5b60ff8086169087161061299f57600080fd5b60018616156129ad57600080fd5b60018516156129bb57600080fd5b600260ff878703160460ff166040519080825280602002602001820160405280156129f0578160200160208202803883390190505b509250600260ff878703160460ff16604051908082528060200260200182016040528015612a28578160200160208202803883390190505b509150600090505b8460ff168660ff161015612bcb57612a64848760010160ff16815181101515612a5557fe5b9060200190602002015161289a565b1515612a6f57600080fd5b73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015612ab657600080fd5b505af4158015612aca573d6000803e3d6000fd5b505050506040513d6020811015612ae057600080fd5b50518451859060ff60018a0116908110612af657fe5b6020908102909101015110612b0a57600080fd5b6000811115612b5357838660ff16815181101515612b2457fe5b906020019060200201518360018303815181101515612b3f57fe5b6020908102909101015110612b5357600080fd5b838660ff16815181101515612b6457fe5b906020019060200201518382815181101515612b7c57fe5b602090810290910101528351849060ff6001890116908110612b9a57fe5b906020019060200201518282815181101515612bb257fe5b6020908102909101015260029590950194600101612a30565b82600b8860ff16815481101515612bde57fe5b90600052602060002090600502016003019080519060200190612c02929190612d10565b5081600b8860ff16815481101515612c1657fe5b90600052602060002090600502016004019080519060200190612c3a929190612d10565b505b50505050505050565b606080828401855110151515612c5a57600080fd5b82158015612c7357604051915060208201604052612cbd565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015612cac578051835260209283019201612c94565b5050858452601f01601f1916604052505b50949350505050565b81810182811015611d1b57fe5b600090565b6000612ce2612cea565b600201905090565b600290565b50805460008255600502906000526020600020908101906118cb9190612de5565b828054828255906000526020600020908101928215612d4b579160200282015b82811115612d4b578251825591602001919060010190612d30565b5061145f929150612e3e565b50805460008255600502906000526020600020908101906118cb9190612e58565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612db957805160ff1916838001178555612d4b565b82800160010185558215612d4b5791820182811115612d4b578251825591602001919060010190612d30565b61142691905b8082111561145f57805467ffffffffffffffff1916815560006001820181905560028201805463ffffffff19169055612e276003830182612eb1565b612e35600483016000612eb1565b50600501612deb565b61142691905b8082111561145f5760008155600101612e44565b61142691905b8082111561145f57805463ffffffff1916815560006001820181905560028201805467ffffffffffffffff19169055612e9a6003830182612ecf565b612ea8600483016000612ecf565b50600501612e5e565b50805460008255906000526020600020908101906118cb9190612e3e565b50805460018160011615610100020316600290046000825580601f10612ef557506118cb565b601f0160209004906000526020600020908101906118cb9190612e3e565b6000612f1e8261289a565b1515612f2957600080fd5b611d1b612f34612cea565b8390600a0a63ffffffff612885165600a165627a7a72305820d5eee603de8192a8603bc46c6dbfdb4a4654cec9cd6a7e5c0dbe9a8b5bca70500029", - "sourceMap": "505:14556:1:-;;;487:1:28;657:51;;1607:896:1;8:9:-1;5:2;;;30:1;27;20:12;5:2;1607:896:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;123:7:26;:18;;;567:5:31;:18;;-1:-1:-1;;;;;;567:18:31;575:10;567:18;;;1607:896:1;;;;;;;;;;;;-1:-1:-1;;;;;1922:26:1;;;;1914:35;;;;;;-1:-1:-1;;;;;1967:20:1;;;;1959:29;;;;;;2006:23;:11;:21;;;;;;:23;:::i;:::-;:58;;;;-1:-1:-1;2061:3:1;2033:25;:11;:23;;;;;;:25;:::i;:::-;:31;2006:58;1998:67;;;;;;;;2083:33;:21;:31;;;;;;:33;:::i;:::-;:78;;;;-1:-1:-1;2158:3:1;2120:35;:21;:33;;;;;;:35;:::i;:::-;:41;2083:78;2075:87;;;;;;;;-1:-1:-1;;;;;2180:19:1;;;;2172:28;;;;;;-1:-1:-1;;;;;2218:19:1;;;;2210:28;;;;;;2249:39;2265:6;2273:14;2249:15;;;;:39;:::i;:::-;2299:5;:22;;-1:-1:-1;;;;;;2299:22:1;;;-1:-1:-1;;;;;2299:22:1;;;;;;;2331:11;:33;;;;;;;;;;;;;;2374:10;:24;;;;2408:4;:12;;;;;;;;;;;;;;2430:20;:44;;;;2484:4;:12;;;;;;;;;;;;;;-1:-1:-1;505:14556:1;;-1:-1:-1;;505:14556:1;554:107:14;605:4;634:5;:3;;;;:5;:::i;:::-;628:2;:11;;:26;;;;-1:-1:-1;649:5:14;:3;;;;:5;:::i;:::-;643:2;:11;;628:26;621:33;554:107;-1:-1:-1;;554:107:14:o;806:139::-;859:4;883:13;893:2;883:9;;;;:13;:::i;:::-;875:22;;;;;;;;915:23;928:9;:7;;;;:9;:::i;:::-;915:2;;922;:15;915:6;;;;;;:23;:::i;4265:219:1:-;4363:1;4354:10;;4346:19;;;;;;-1:-1:-1;;;;;4383:28:1;;;;4375:37;;;;;;4423:5;:14;;;;4447:13;:30;;-1:-1:-1;;;;;;4447:30:1;-1:-1:-1;;;;;4447:30:1;;;;;;;;;4265:219::o;275:55:14:-;311:4;275:55;:::o;335:65::-;371:4;392:5;:3;;;;:5;:::i;:::-;386:2;:11;379:18;;335:65;:::o;139:59::-;194:1;139:59;:::o;665:283:30:-;725:7;941:2;936;:7;;;;;;;;;665:283;-1:-1:-1;;;665:283:30:o;203:67:14:-;239:4;258:9;:7;;;;:9;:::i;:::-;254:1;:13;247:20;;203:67;:::o;505:14556:1:-;;;;;;;", - "deployedSourceMap": "505:14556:1:-;;;;;;;;-1:-1:-1;505:14556:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14783:11;:9;:11::i;:::-;505:14556;1080:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1080:24:1;;;;;;;;-1:-1:-1;;;;;1080:24:1;;;;;;;;;;;;;;4054:205;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4054:205:1;;;;;;;;;;;;;;;;;;;;;;;;;;;4691:1031;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4691:1031:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13431:452;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13431:452:1;;;;;;;;;;;;;;;;;;;;;2709:388;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2709:388: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;2709:388:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2709:388: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;2709:388:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3103:359;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3103:359: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;3103:359: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;3103:359:1;;;;;;;;;;;;;;;;;;;;;;;1161:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1161:32:1;;;;14226:240;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14226:240:1;;;;2605:98;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2605:98:1;;;;13260:80;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13260:80:1;;;;53:19:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;53:19:26;;;;1199:28:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1199:28:1;;;;14609:130;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14609:130:1;;;;;;;;;;;;;;;;;;;;;;1001:111:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1001:111:31;;;;2509:90:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2509:90:1;;;;1233:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1233:19:1;;;;1285:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1285:21:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1133:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1133:22:1;;;;238:20:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:31;;;;13346:79:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13346:79:1;;;;1110:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1110:17:1;;;;14472:131;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14472:131:1;;;;3468:147;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3468:147:1;;;;;;;;;;;;;;;;;;;;;;;1258:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1258:20:1;;;;3701:347;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3701:347:1;;;;13889:331;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13889:331:1;;;;1312:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1312:29:1;;;;;4490:126;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4490:126:1;;;;;1274:103:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1274:103:31;;;-1:-1:-1;;;;;1274:103:31;;;1055:19:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1055:19:1;;;;11363:1091;11475:10;11524:13;11572:14;11620:16;11680;11698:12;11712:11;11832:14;487:1:28;1128:14;;:39;1120:48;;;;;;;;584:1;1174:40;;14998:14:1;:12;:14::i;:::-;14990:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11461:1;11449:9;:13;11441:22;;;;;;11491;:20;:22::i;:::-;11474:39;;;11540:6;11547:5;11540:13;;;;;;;;;;;;;;;;;;;;:22;;;11524:38;;11589:6;11596:5;11589:13;;;;;;;;;;;;;;;;;;:21;:13;;;;;:21;;;;;-1:-1:-1;11639:29:1;11658:9;11639:18;:29::i;:::-;11620:48;;11729;11744:9;11755:8;11765:11;11729:14;:48::i;:::-;11679:98;;;;;;;11815:1;11792:20;;:24;11788:247;;;11869:20;;11849:41;;:11;;:41;:19;:41;:::i;:::-;11913:11;;;11938:4;;11944:13;;11913:56;;;;;;-1:-1:-1;;;;;11938:4:1;;;11913:56;;;;;;;11944:13;;;11913:56;;;;;;;;;;;;;-1:-1:-1;11913:11:1;;:24;;:56;;;;;;;;;;;;;;;-1:-1:-1;11913:11:1;:56;;;5:2:-1;;;;30:1;27;20:12;5:2;11913:56:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11913:56:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11913:56:1;11905:65;;;;;;;;11992:5;;12007:4;;11992:31;;;;;;-1:-1:-1;;;;;12007:4:1;;;11992:31;;;;;;;;;;;;:5;;;;;:14;;:31;;;;;;;;;;;;;;-1:-1:-1;11992:5:1;:31;;;5:2:-1;;;;30:1;27;20:12;5:2;11992:31:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11992:31:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11992:31:1;11984:40;;;;;;;;12053:5;;:55;;;;;;12075:10;12053:55;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12053:5:1;;;;:21;;:55;;;;;;;;;;;;;;;-1:-1:-1;12053:5:1;:55;;;5:2:-1;;;;30:1;27;20:12;5:2;12053:55:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12053:55:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12053:55:1;12045:64;;;;;;;;12133:1;12124:6;:10;12120:68;;;12150:27;;:10;;:27;;;;;12170:6;;12150:27;;;;12170:6;12150:10;:27;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12150:27:1;12120:68;12214:1;12201:10;;:14;12198:82;;;12229:13;;12268:10;;-1:-1:-1;;;;;12229:13:1;;;;:51;;12252:27;;:7;;:15;:27::i;:::-;12229:51;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12229:51:1;12198:82;12291:4;;:85;;;;;;12352:10;12291:85;;;;;;;;;;;;-1:-1:-1;;;;;12291:4:1;;;;:19;;12344:6;;12325:4;12317:21;;12291:85;;;;;-1:-1:-1;;12291:85:1;;;;;;;;12317:21;12291:4;:85;;;5:2:-1;;;;30:1;27;20:12;5:2;12291:85:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;12392:55:1;;;;;;;;;;;;;;;;;;;;12406:10;;-1:-1:-1;12392:55:1;;-1:-1:-1;12392:55:1;;;;;;;-1:-1:-1;12392:55:1;-1:-1:-1;12392:55:1;-1:-1:-1;;487:1:28;1227:14;:38;-1:-1:-1;;;;;;11363:1091:1:o;1080:24::-;;;-1:-1:-1;;;;;1080:24:1;;:::o;4054:205::-;4146:10;:17;4108:10;;;;4146:22;;:36;;;4173:9;:7;:9::i;:::-;4172:10;4146:36;4142:49;;;4184:7;;4142:49;-1:-1:-1;;4231:10:1;:17;-1:-1:-1;;4231:21:1;4209:4;4054:205;;;:::o;4691:1031::-;719:5:31;;-1:-1:-1;;;;;719:5:31;705:10;:19;697:28;;;;;;14848:6:1;:13;14864:1;-1:-1:-1;14844:82:1;;;14911:3;14889:6;14896:1;14889:9;;;;;;;;;;;;;;;;;;;;;;;:19;;;:25;14881:34;;;;;;5049:30;;;5041:39;;;;;;5098;;;;5090:48;;;;;;5210:43;;;;5202:52;;;;;;5352:1;5305:37;:48;5272:81;;5264:90;;;;;;5446:1;5405:31;:42;5372:75;;;5364:84;;;;;;5459:89;5483:18;;5459:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5459:89:1;;;-1:-1:-1;;5459:89:1;;;;;;;;;;;;;;;5515:23;;5459:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5459:10:1;;-1:-1:-1;;;;;5459:89:1:i;:::-;5559:156;5587:22;;5559:156;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5559:156:1;;;-1:-1:-1;;5559:156:1;;;;;;;;;;;;;;;5623:37;;5559:156;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5559:156:1;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5674:31:1;;-1:-1:-1;5674:31:1;;-1:-1:-1;5674:31:1;;-1:-1:-1;5559:156:1;;5674:31;;;;5559:156;;-1:-1:-1;5559:14:1;;-1:-1:-1;;;;;5559:156:1:i;:::-;4691:1031;;;;;;;;;;:::o;13431:452::-;13491:10;13514;13526;13604:19;13654:6;13540:22;:20;:22::i;:::-;13513:49;;;;13578:5;13577:6;13573:20;;;13592:1;13585:8;;;;13573:20;13626:6;:13;;13633:5;;13626:13;;;;;;;;;;;;;;;;13604:35;;13663:1;13654:10;;13650:227;13670:22;;;:29;13666:33;;13650:227;;;13733:22;;;:25;;13756:1;;13733:25;;;;;;;;;;;;;;13724:5;:34;;13720:147;;;13786:19;;;:22;;13806:1;;13786:22;;;;;;;;;;;;;;13778:30;;13720:147;;;13847:5;;13720:147;13701:3;;13650:227;;;13431:452;;;;;;;:::o;2709:388::-;2764:6;2772:4;2778:6;2786;2794:5;2801;2839:10;2850:5;2839:17;;;;;;;;;;;;;;;;;;;;;;;:25;2878:10;:17;;2839:25;;;;;2889:5;;2878:17;;;;;;;;;;;;;;;;:32;;;2924:10;2935:5;2924:17;;;;;;;;;;;;;;;;;;:29;:17;;;;;:29;;2967:10;:17;;2924:29;;;;;2978:5;;2967:17;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;3015:10;3026:5;3015:17;;;;;;;;;;;;;;;;;;;;:22;;3051:10;3062:5;3051:17;;;;;;;;;;;;;;;;;;;;:29;;2818:272;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2818:272:1;;;;;;;;;;;;;-1:-1:-1;;2818:272:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2818:272:1;;-1:-1:-1;2818:272:1;-1:-1:-1;2818:272:1;;;-1:-1:-1;2818:272:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2709:388;;;;;;;:::o;3103:359::-;3154:6;3162;3170:4;3176:6;3184;3192;3231;3238:5;3231:13;;;;;;;;;;;;;;;;;;;;;;;:23;3268:6;:13;;3231:23;;;;;3275:5;;3268:13;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;3303:6;3310:5;3303:13;;;;;;;;;;;;;;;;;;;;:22;;;3339:6;3346:5;3339:13;;;;;;;;;;;;;;;;;;:21;:13;;;;;:21;;3374:6;:13;;3339:21;;;;;3381:5;;3374:13;;;;;;;;;;;;;;;;:30;;3418:6;3425:5;3418:13;;;;;;;;;;;;;;;;;;;;:27;;3210:245;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3103:359;;;;;;;:::o;1161:32::-;;;;:::o;14226:240::-;719:5:31;;14316:11:1;;-1:-1:-1;;;;;719:5:31;705:10;:19;697:28;;;;;;14295:9:1;:7;:9::i;:::-;14287:18;;;;;;;;14330:5;;:30;;;;;;14354:4;14330:30;;;;;;-1:-1:-1;;;;;14330:5:1;;;;:15;;:30;;;;;;;;;;;;;;;-1:-1:-1;14330:5:1;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;14330:30:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14330:30:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14330:30:1;14379:5;;;14394;14379:29;;;;;;-1:-1:-1;;;;;14394:5:1;;;14379:29;;;;;;;;;;;;14330:30;;-1:-1:-1;14379:5:1;;;:14;;:29;;;;;14330:30;;14379:29;;;;;;;;-1:-1:-1;14379:5:1;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;14379:29:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14379:29:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14379:29:1;14371:38;;;;;;;;14445:5;;14425:34;;;;;;;;-1:-1:-1;;;;;14445:5:1;;;;14425:34;;;;;;;;;14226:240;:::o;2605:98::-;2679:10;:17;2605:98;;:::o;13260:80::-;13328:5;;-1:-1:-1;;;;;13328:5:1;;13260:80::o;53:19:26:-;;;;:::o;1199:28:1:-;;;-1:-1:-1;;;;;1199:28:1;;:::o;14609:130::-;14654:4;14673:10;14687:22;:20;:22::i;:::-;14670:39;;;14727:5;14720:12;;14609:130;;;:::o;1001:111:31:-;719:5;;-1:-1:-1;;;;;719:5:31;705:10;:19;697:28;;;;;;1077:5;;1058:25;;-1:-1:-1;;;;;1077:5:31;;;;1058:25;;1077:5;;1058:25;1089:5;:18;;-1:-1:-1;;1089:18:31;;;1001:111::o;2509:90:1:-;2579:6;:13;2509:90;:::o;1233:19::-;;;-1:-1:-1;;;;;1233:19:1;;:::o;1285:21::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1285:21:1;;;;;;;;;;:::o;1133:22::-;;;;:::o;238:20:31:-;;;-1:-1:-1;;;;;238:20:31;;:::o;13346:79:1:-;13414:4;;-1:-1:-1;;;;;13414:4:1;;13346:79::o;1110:17::-;;;;:::o;14472:131::-;14535:6;:13;14512:4;;14535:18;;:61;;-1:-1:-1;14557:6:1;14564:13;;14593:3;;14557:6;-1:-1:-1;;14564:17:1;;;14557:25;;;;;;;;;;;;;;;;;;;:33;;;;;;:39;14535:61;14528:68;;14472:131;:::o;3468:147::-;3539:6;:13;3513:6;;3539:17;-1:-1:-1;3531:26:1;;;;;;3575:6;3582:13;;-1:-1:-1;;3582:17:1;;;3575:25;;;;;;;;;;;;;;;;;;;:33;;;;;;;3468:147;-1:-1:-1;3468:147:1:o;1258:20::-;;;-1:-1:-1;;;;;1258:20:1;;:::o;3701:347::-;3795:10;:17;3758:10;;;;3795:22;;:36;;;3822:9;:7;:9::i;:::-;3821:10;3795:36;3792:48;;;3833:7;;3792:48;-1:-1:-1;3858:4:1;3928:114;3942:10;:17;-1:-1:-1;;3942:21:1;3934:29;;:74;;;;-1:-1:-1;3974:10:1;:17;;3985:5;;3974:17;;;;;;;;;;;;;;;;;;;:34;;;;;;;;3967:3;:41;;3934:74;3928:114;;;4024:7;;;;;3928:114;;13889:331;13942:10;;;;13976:210;13996:6;:13;13992:17;;13976:210;;;14052:6;:9;;14059:1;;14052:9;;;;;;;;;;;;;;;;;;;14080:15;;14052:9;;-1:-1:-1;14099:3:1;14080:15;;;;:22;;;;:45;;-1:-1:-1;14106:13:1;;14122:3;14106:13;;;;;;:19;14080:45;14076:100;;;14153:1;14156:4;14145:16;;;;;;14076:100;14011:3;;;;;13976:210;;;14204:1;;-1:-1:-1;14204:1:1;;-1:-1:-1;13889:331:1;;;;;:::o;1312:29::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1312:29:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1312:29:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;1312:29:1;;;;;;;;;;;-1:-1:-1;;1312:29:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1312:29:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4490:126::-;719:5:31;;-1:-1:-1;;;;;719:5:31;705:10;:19;697:28;;;;;;14848:6:1;:13;14864:1;-1:-1:-1;14844:82:1;;;14911:3;14889:6;14896:1;14889:9;;;;;;;;;;;;;;;;;;;;;;;:19;;;:25;14881:34;;;;;;4595:13;;4571:38;;4587:6;;-1:-1:-1;;;;;4595:13:1;4571:15;:38::i;:::-;4490:126;:::o;1274:103:31:-;719:5;;-1:-1:-1;;;;;719:5:31;705:10;:19;697:28;;;;;;1343:29;1362:9;1343:18;:29::i;1055:19:1:-;;;-1:-1:-1;;;;;1055:19:1;;:::o;12460:794::-;12671:5;;:30;;;;;;12695:4;12671:30;;;;;;-1:-1:-1;;12641:4:1;;-1:-1:-1;;;;;;;;;;;12671:5:1;;;;:15;;:30;;;;;;;;;;;;;;;-1:-1:-1;12671:5:1;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;12671:30:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12671:30:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12671:30:1;12742:5;;:16;;;;;;;;12671:30;;-1:-1:-1;;;;;;12742:5:1;;;;:14;;:16;;;;;12671:30;;12742:16;;;;;;;;:5;;:16;;;5:2:-1;;;;30:1;27;20:12;5:2;12742:16:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12742:16:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12742:16:1;12737:22;;12731:2;:28;12720:39;;;12712:48;;;;;;12796:1;12785:8;:12;:86;;12866:5;;12785:86;;;12812:39;12842:8;12826:7;:11;:13;;;;;-1:-1:-1;;;12826:13:1;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12826:13:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12826:13:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12826:13:1;12812:5;;;12826:24;;12812:39;:13;:39;:::i;:::-;12771:100;;12891:159;13036:7;:11;:13;;;;;-1:-1:-1;;;13036:13:1;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13036:13:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13036:13:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13036:13:1;12970:5;;:16;;;;;;;;12891:127;;13006:11;;12891:127;;-1:-1:-1;;;;;12970:5:1;;;;:14;;:16;;;;;13036:13;;12970:16;;;;;;;;:5;;:16;;;5:2:-1;;;;30:1;27;20:12;5:2;12970:16:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12970:16:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12970:16:1;12913:13;;;;;;;;12965:22;;;;12959:2;:28;;12891:50;;12929:11;;12913:7;;:11;;:13;;;;;12970:16;;12913:13;;;;;;;:7;:13;;;5:2:-1;;;;30:1;27;20:12;5:2;12913:13:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12913:13:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12913:13:1;;;;;;;;;;;;;;;;:27;12891:4;:21;;:50;;;;:::i;:::-;:67;:97;:67;:97;:::i;:::-;:114;:127;:114;:127;:::i;:159::-;12882:168;;13075:6;13065:7;:16;13061:187;;;13107:63;13163:6;13107:34;:4;13133:7;13107:34;:25;:34;:::i;:63::-;13097:73;;13200:7;13193:4;:14;13184:23;;13230:7;13221:16;;13061:187;12460:794;;;;;;;;:::o;406:142:14:-;464:4;488:13;498:2;488:9;:13::i;:::-;480:22;;;;;;;;520:21;535:5;:3;:5::i;:::-;520:10;:2;527;520:10;:6;:10;:::i;:21::-;513:28;;406:142;;;;;:::o;6123:1641:1:-;6212:10;:17;6454:7;;6212:21;-1:-1:-1;6208:207:1;;;6378:17;;;;-1:-1:-1;;6378:21:1;;;6367:33;;;;;;;;;;;;;;;;;:36;;6343:10;:13;;6354:1;;6343:13;;;;;;;;;;;;;;;;;;;:21;;;:60;6335:69;;;;;;6425:13;6432:6;;6425:13;:::i;:::-;-1:-1:-1;6464:1:1;6449:1278;6471:10;:17;6467:1;:21;;;6449:1278;;;6547:13;;:30;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;:30;;6539:39;;;;;;6600:13;;:30;;:10;;:13;;;;;;;;;;;;;;;;;;;;;:16;;:30;;6592:39;;;;;;6653:13;;:30;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;;;:30;;6645:39;;;;;;6706:13;;:29;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;;;:29;;6698:38;;;;;;6758:13;;:29;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;;;:29;;6750:38;;;;;;6857:3;6838:10;6849:1;6838:13;;;;;;;;;;;;;;;;;;;;;;:16;:22;6830:31;;;;;;6902:10;6913:1;6902:13;;;;;;;;;;;;;;;;;;;;;;;:16;;6883:13;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;:35;6875:44;;;;;;6942:1;6938;:5;;;6934:93;;;6995:10;7006:1;6995:13;;;;;;;;;;;;;;;;;;;;;;:16;6971:17;;;;-1:-1:-1;;6982:5:1;;6971:17;;;;;;;;;;;;;;;;;;;;:20;;:40;;6963:49;;;;;;7079:28;:10;7090:1;7079:13;;;;;;;;;;;;;;;;;;;;;7093:1;7079:16;;;;;:26;:28::i;:::-;7071:37;;;;;;;;7149:7;:11;:13;;;;;-1:-1:-1;;;7149:13:1;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7149:13:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7149:13:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7149:13:1;7130;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;;;:32;7122:41;;;;;;7178:6;7190:315;;;;;;;;;7232:10;7243:1;7232:13;;;;;;;;;;;;;;;;;;;;;;;:16;7190:315;;;;7283:13;;7190:315;;;7283:10;;:13;;;;;;;;;;;;;;;;;;;7297:1;7283:16;;;;7190:315;;;;;;7328:10;7339:1;7328:13;;;;;;;;;;;;;;;;;;;;;7342:1;7328:16;;;;7190:315;;;;7378:10;7389:1;7378:13;;;;;;;;;;;;;;;;;;;;;;;:16;;;;;7190:315;;;;;;7431:13;;;7442:1;7431:13;;;;;;;;7190:315;;;;;;;7477:13;;;;;;;;;;7190:315;;;;;;;27:10:-1;;39:1;23:18;;;45:23;;;7178:328:1;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7178:328:1;;;-1:-1:-1;;7178:328:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;7178:328:1;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;7521:195;7585:1;7569:6;:13;;;;:17;7611:10;7622:1;7611:13;;;;;;;;;;;;;;;;;;;;;;:16;;;7652:13;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;;;7687:15;7521:24;:195::i;:::-;6490:3;;6449:1278;;;7742:15;;;;;;;6123:1641;;;:::o;9555:1802::-;9855:11;9880:6;9900:18;9938:7;10569:17;10694:24;9728:1;9712:6;:13;;;;:17;9708:109;;;9789:10;9800:1;9789:13;;;;;;;;;;;;;;;;;;;;:16;9753:6;9760:13;;-1:-1:-1;;9760:17:1;;;9753:25;;;;;;;;;;;;;;;;;;;:33;;;;;;:52;9745:61;;;;;;9827:17;9834:10;;9827:17;:::i;:::-;9869:1;9855:15;;9889:1;9880:10;;9921:1;9900:22;;9948:1;9938:11;;9933:1333;9955:10;:17;9951:1;:21;;;9933:1333;;;10031:13;;:31;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;:31;;10023:40;;;;;;10085:13;;:31;;:10;;:13;;;;;;;;;;;;;;;;;;;;;:16;;:31;;10077:40;;;;;;10139:13;;:31;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;;;:31;;10131:40;;;;;;10240:3;10221:10;10232:1;10221:13;;;;;;;;;;;;;;;;;;;;;;:16;:22;10213:31;;;;;;10285:10;10296:1;10285:13;;;;;;;;;;;;;;;;;;;;;;:16;10266:13;;:10;;:13;;;;;;;;;;;;;;;;;;;;;:16;;:35;10258:44;;;;;;10343:10;10354:1;10343:13;;;;;;;;;;;;;;;;;;;;;;;:16;;10324:13;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;;;:35;10316:44;;;;;;10383:1;10379;:5;;;10375:92;;;10435:10;10446:1;10435:13;;;;;;;;;;;;;;;;;;;;;;:16;10412:17;;;;-1:-1:-1;;10423:5:1;;10412:17;;;;;;;;;;;;;;;;;;;:20;;;:39;10404:48;;;;;;10525:28;:10;10536:1;10525:13;;;;;;;;;;;;;;;;;;;;;10539:1;10525:16;;:28;10517:37;;;;;;;;10589:46;10616:6;10624:7;10632:1;10624:10;;;;;;;;;;;;;;;;;;10589:46;;:20;:26;;:46;;;;;:::i;:::-;10569:66;;10658:22;10669:7;10677:1;10669:10;;;;;;;;;;;;;;;;;;10658:22;;:6;:10;;:22;;;;:::i;:::-;10649:31;;10721:50;10748:6;10756:7;10764:1;10768;10764:5;10756:14;;;;;;;;;10721:50;10694:77;;10794:26;10805:7;10813:1;10817;10813:5;10805:14;;;;;;;;;10794:26;10785:35;-1:-1:-1;10838:8:1;:1;10844;10838:8;:5;:8;:::i;:::-;10834:12;;10877:35;10895:10;10906:1;10895:13;;;;;;;;;;;;;;;;;;;;;;:16;;;10877:13;;:17;:35::i;:::-;10861:51;;10927:10;10943:311;;;;;;;;;10987:10;10998:1;10987:13;;;;;;;;;;;;;;;;;;;;;;;:16;10943:311;;;;11038:13;;10943:311;;;11038:10;;:13;;;;;;;;;;;;;;;;;;;11052:1;11038:16;;;;10943:311;;;;11092:10;11103:1;11092:13;;;;;;;;;;;;;;;;;;;;;11106:1;11092:16;;;;10943:311;;;;;;11152:10;11163:1;11152:13;;;;;;;;;;;;;;;;;;;;;11166:1;11152:16;;;;;;;;;10943:311;;;;;;;;;;;;;;;;;;;27:10:-1;;39:1;23:18;;;45:23;;;-1:-1;10927:328:1;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10927:328:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10927:328:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;10927:328:1;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;9974:3:1;;;;;-1:-1:-1;9933:1333:1;;-1:-1:-1;9933:1333:1;;11301:7;:11;:13;;;;;-1:-1:-1;;;11301:13:1;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11301:13:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11301:13:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11301:13:1;11284:30;;11276:39;;;;;;11331:19;;;;;;;9555:1802;;;;;;;;;:::o;4265:219::-;4363:1;4354:10;;4346:19;;;;;;-1:-1:-1;;;;;4383:28:1;;;;4375:37;;;;;;4423:5;:14;;;;4447:13;:30;;-1:-1:-1;;4447:30:1;-1:-1:-1;;;;;4447:30:1;;;;;;;;;4265:219::o;1512:171:31:-;-1:-1:-1;;;;;1582:23:31;;;;1574:32;;;;;;1638:5;;1617:38;;-1:-1:-1;;;;;1617:38:31;;;;1638:5;;1617:38;;1638:5;;1617:38;1661:5;:17;;-1:-1:-1;;1661:17:31;-1:-1:-1;;;;;1661:17:31;;;;;;;;;;1512:171::o;203:380:30:-;263:9;489:7;;485:36;;;-1:-1:-1;513:1:30;506:8;;485:36;-1:-1:-1;531:7:30;;;536:2;531;:7;551:6;;;;;;;;:12;544:20;;;665:283;725:7;941:2;936;:7;;;;;;;;;665:283;-1:-1:-1;;;665:283:30:o;554:107:14:-;605:4;634:5;:3;:5::i;:::-;628:2;:11;;:26;;;;;649:5;:3;:5::i;:::-;643:2;:11;;621:33;554:107;-1:-1:-1;;554:107:14:o;335:65::-;371:4;392:5;:3;:5::i;:::-;386:2;:11;379:18;;335:65;:::o;7936:1196:1:-;8395:24;;8524:6;8059:10;;;;:22;;;;-1:-1:-1;8073:8:1;;;;8059:22;8055:187;;;8135:13;;;8146:1;8135:13;;;;;;;;8097:6;:18;;;;;;;;;;;;;;;;;;;;;;:35;;:51;;;;;;;;;;;;:::i;:::-;-1:-1:-1;8197:13:1;;;8208:1;8197:13;;;;;;;;8162:6;:18;;;;;;;;;;;;;;;;;;;;;;:32;;:48;;;;;;;;;;;;:::i;:::-;;8225:7;;8055:187;8267:22;;8260:29;;;;;8252:38;;;;;;8308:11;;;;;;;;8300:20;;;;;;8338:9;;;:14;8330:23;;;;;;8371:7;;;:12;8363:21;;;;;;8449:1;8433:17;8434:11;;;8433:17;;8422:29;;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;8422:29:1;-1:-1:-1;8395:56:1;-1:-1:-1;8512:1:1;8496:17;8497:11;;;8496:17;;8485:29;;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;8485:29:1;;8461:53;;8533:1;8524:10;;8545:470;8560:3;8552:11;;:5;:11;;;8545:470;;;8614:38;:15;8630:5;8638:1;8630:9;8614:26;;;;;;;;;;;;;;;;;;;;:36;:38::i;:::-;8606:47;;;;;;;;8704:7;:11;:13;;;;;-1:-1:-1;;;8704:13:1;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8704:13:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8704:13:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8704:13:1;8675:26;;:15;;:26;8699:1;8691:9;;8675:26;;;;;;;;;;;;;;;;;:42;8667:51;;;;;;8771:1;8767;:5;8763:95;;;8820:15;8836:5;8820:22;;;;;;;;;;;;;;;;;;;;8800:10;8815:1;8811;:5;8800:17;;;;;;;;;;;;;;;;;;;:42;8792:51;;;;;;8888:15;8904:5;8888:22;;;;;;;;;;;;;;;;;;;;8872:10;8883:1;8872:13;;;;;;;;;;;;;;;;;;:38;8937:26;;:15;;:26;8961:1;8953:9;;8937:26;;;;;;;;;;;;;;;;8924:7;8932:1;8924:10;;;;;;;;;;;;;;;;;;:39;9003:1;8994:10;;;;;8977:3;;8545:470;;;9063:10;9025:6;9032:10;9025:18;;;;;;;;;;;;;;;;;;;;;;:35;;:48;;;;;;;;;;;;:::i;:::-;;9118:7;9083:6;9090:10;9083:18;;;;;;;;;;;;;;;;;;;;;;:32;;:42;;;;;;;;;;;;:::i;:::-;;7936:1196;;;;;;;;:::o;9374:2465:36:-;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:36;;;11565:2;11548:11;-1:-1:-1;;11544:25:36;11538:4;11531:39;-1:-1:-1;9582:2214:36;-1:-1:-1;11823:9:36;9374:2465;-1:-1:-1;;;;9374:2465:36:o;1238:128:30:-;1319:7;;;1339;;;;1332:15;;;275:55:14;311:4;275:55;:::o;203:67::-;239:4;258:9;:7;:9::i;:::-;254:1;:13;247:20;;203:67;:::o;139:59::-;194:1;139:59;:::o;505:14556:1:-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;505:14556:1;;;-1:-1:-1;505:14556:1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;505:14556:1;;;-1:-1:-1;;505:14556:1;;;;;;;;;;-1:-1:-1;;505:14556:1;;;;;;;-1:-1:-1;505:14556:1;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;505:14556:1;;;-1:-1:-1;;505:14556:1;;;;;;;;;;-1:-1:-1;;505:14556:1;;;;;;;-1:-1:-1;505:14556:1;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;806:139:14:-;859:4;883:13;893:2;883:9;:13::i;:::-;875:22;;;;;;;;915:23;928:9;:7;:9::i;:::-;915:2;;922;:15;915: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 \"solidity-bytes-utils/contracts/BytesLib.sol\";\nimport \"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\";\nimport \"./interfaces/IW12Crowdsale.sol\";\nimport \"./interfaces/IW12Fund.sol\";\nimport \"./libs/Percent.sol\";\nimport \"./versioning/Versionable.sol\";\nimport \"./token/WToken.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\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 WToken public token;\n ERC20 public originToken;\n uint public price;\n uint public serviceFee;\n uint public WTokenSaleFeePercent;\n address public serviceWallet;\n address public swap;\n IW12Fund public fund;\n\n Stage[] public stages;\n Milestone[] public milestones;\n\n event TokenPurchase(address indexed buyer, uint amountPaid, uint tokensBought, uint change);\n event StagesUpdated();\n event StageUpdated(uint index);\n event MilestonesUpdated();\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 )\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\n __setParameters(_price, _serviceWallet);\n\n token = WToken(_token);\n originToken = ERC20(_originToken);\n serviceFee = _serviceFee;\n swap = _swap;\n WTokenSaleFeePercent = _WTokenSaleFeePercent;\n fund = _fund;\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 )\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 _setStages(\n parametersOfStages,\n bonusConditionsOfStages\n );\n\n _setMilestones(\n parametersOfMilestones,\n nameAndDescriptionsOffsetOfMilestones,\n nameAndDescriptionsOfMilestones\n );\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() payable public nonReentrant onlyWhenSaleActive {\n require(msg.value > 0);\n\n (uint index, ) = getCurrentStageIndex();\n\n uint discount = stages[index].discount;\n uint32 vesting = stages[index].vesting;\n uint volumeBonus = getSaleVolumeBonus(msg.value);\n\n (uint tokenAmount, uint weiCost, uint change, ) = _purchaseOrder(msg.value, discount, volumeBonus);\n\n if (WTokenSaleFeePercent > 0) {\n uint tokensFee = tokenAmount.percent(WTokenSaleFeePercent);\n\n require(originToken.transferFrom(swap, serviceWallet, tokensFee));\n require(token.transfer(swap, tokensFee));\n }\n\n require(token.vestingTransfer(msg.sender, tokenAmount, vesting));\n\n if (change > 0) {\n msg.sender.transfer(change);\n }\n\n if(serviceFee > 0)\n serviceWallet.transfer(weiCost.percent(serviceFee));\n\n fund.recordPurchase.value(address(this).balance).gas(100000)(msg.sender, tokenAmount);\n\n emit TokenPurchase(msg.sender, weiCost, tokenAmount, change);\n }\n\n function _purchaseOrder(uint _wei, uint discount, uint volumeBonus)\n internal view returns (uint tokens, uint weiCost, uint change, uint actualPrice)\n {\n weiCost = _wei;\n\n uint balance = token.balanceOf(address(this));\n\n require(balance >= 10 ** uint(token.decimals()));\n\n actualPrice = discount > 0\n ? price.percent(Percent.MAX() - discount)\n : price;\n\n tokens = _wei\n .mul(Percent.MAX() + volumeBonus)\n .mul(10 ** uint(token.decimals()))\n .div(actualPrice)\n .div(Percent.MAX());\n\n if (balance < tokens) {\n weiCost = _wei\n .mul(balance)\n .div(tokens);\n change = _wei - weiCost;\n tokens = balance;\n }\n }\n\n function getWToken() external view returns(WToken) {\n return token;\n }\n\n function getFund() external view returns(IW12Fund) {\n return fund;\n }\n\n function getSaleVolumeBonus(uint value) public view returns(uint bonus) {\n (uint index, bool found) = getCurrentStageIndex();\n\n if (!found) return 0;\n\n Stage storage stage = stages[index];\n\n for(uint i = 0; i < stage.volumeBoundaries.length; i++) {\n if (value >= stage.volumeBoundaries[i]) {\n bonus = stage.volumeBonuses[i];\n } else {\n break;\n }\n }\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 function() payable external {\n buyTokens();\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", - "sourcePath": "/home/circleci/code/contracts/W12Crowdsale.sol", + "bytecode": "0x608060405260016002553480156200001657600080fd5b5060405161014080620047f383398101604090815281516020830151918301516060840151608085015160a086015160c087015160e088015161010089015161012090990151600088905560018054600160a060020a03191633179055969895969495939492939192909190600160a060020a03891615156200009857600080fd5b600160a060020a0388161515620000ae57600080fd5b620000c78464010000000062003c116200020b82021704565b8015620000ec57506064620000ea85640100000000620044476200024882021704565b105b1515620000f857600080fd5b620001118364010000000062003c116200020b82021704565b801562000136575060646200013484640100000000620044476200024882021704565b105b15156200014257600080fd5b600160a060020a03821615156200015857600080fd5b600160a060020a03851615156200016e57600080fd5b600160a060020a03811615156200018457600080fd5b6200019987876401000000006200029a810204565b60038054600160a060020a0319908116600160a060020a039a8b16179091556004805482169a8a169a909a17909955600893909355600b80548916948816949094179093556009556005805487169286169290921790915560068054909516931692909217909255506200033f915050565b600062000220640100000000620002e5810204565b82101580156200024257506200023e640100000000620002ea810204565b8211155b92915050565b60006200025e826401000000006200020b810204565b15156200026a57600080fd5b620002426200028164010000000062000307810204565b8390600a0a6401000000006200405f6200030c82021704565b60008211620002a857600080fd5b600160a060020a0381161515620002be57600080fd5b600791909155600a8054600160a060020a031916600160a060020a03909216919091179055565b600090565b6000620002ff64010000000062000322810204565b600a0a905090565b600290565b600081838115156200031a57fe5b049392505050565b60006200033764010000000062000307810204565b600201905090565b6144a4806200034f6000396000f3006080604052600436106101a85763ffffffff60e060020a60003504166307f5d63381146101ad57806311eb8c9f146101bd57806313096a41146101e957806314f66d341461021a578063208853c9146102485780632442e1cb146102725780632e325020146103a85780632fbe599014610499578063313602d4146104ae5780633baba4d7146104c35780634090cb64146104d857806343f48fbd146104ed57806354fd4d5014610502578063550fd742146105175780635641f3c31461057c578063564566a814610591578063715018a6146105a6578063792c02ea146105bb5780638119c065146105d0578063845ddcb2146105e55780638abdf5aa1461062e5780638aea2af8146106435780638da5cb5b146106965780638edd6eb6146106ab578063a035b1fe146106c0578063a4fd6f56146106d5578063b1356488146106ea578063b60d428814610718578063d250185c1461072d578063d5b226231461075f578063d6d65f3d146107bb578063daa4cf88146107d0578063e89e4ed6146107e5578063e93b0540146107fd578063f2fde38b14610815578063fc0c546a14610836575b600080fd5b6101bb60043560243561084b565b005b3480156101c957600080fd5b506101d5600435610a52565b604080519115158252519081900360200190f35b3480156101f557600080fd5b506101fe610a6b565b60408051600160a060020a039092168252519081900360200190f35b34801561022657600080fd5b5061022f610a7a565b6040805192835290151560208301528051918290030190f35b34801561025457600080fd5b50610260600435610aad565b60408051918252519081900360200190f35b34801561027e57600080fd5b5061028a600435610ba3565b604051808763ffffffff1663ffffffff1681526020018681526020018563ffffffff1663ffffffff1681526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019080838360005b838110156103075781810151838201526020016102ef565b50505050905090810190601f1680156103345780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b8381101561036757818101518382015260200161034f565b50505050905090810190601f1680156103945780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b3480156103b457600080fd5b506103c0600435610dd0565b604051808763ffffffff1663ffffffff1681526020018663ffffffff1663ffffffff1681526020018581526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015610440578181015183820152602001610428565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561047f578181015183820152602001610467565b505050509050019850505050505050505060405180910390f35b3480156104a557600080fd5b50610260610f76565b3480156104ba57600080fd5b506101bb610f7c565b3480156104cf57600080fd5b5061026061112b565b3480156104e457600080fd5b506101fe611132565b3480156104f957600080fd5b506101fe611141565b34801561050e57600080fd5b50610260611150565b34801561052357600080fd5b5061052c611156565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610568578181015183820152602001610550565b505050509050019250505060405180910390f35b34801561058857600080fd5b506101fe611167565b34801561059d57600080fd5b506101d5611176565b3480156105b257600080fd5b506101bb61118c565b3480156105c757600080fd5b506102606111fa565b3480156105dc57600080fd5b506101fe611200565b3480156105f157600080fd5b506105fd60043561120f565b6040805163ffffffff9586168152938516602085015283810192909252909216606082015290519081900360800190f35b34801561063a57600080fd5b50610260611255565b34801561064f57600080fd5b5061065e60043560243561125b565b604051808260a080838360005b8381101561068357818101518382015260200161066b565b5050505090500191505060405180910390f35b3480156106a257600080fd5b506101fe61171a565b3480156106b757600080fd5b506101fe611729565b3480156106cc57600080fd5b50610260611738565b3480156106e157600080fd5b506101d561173e565b3480156106f657600080fd5b506106ff611785565b6040805163ffffffff9092168252519081900360200190f35b34801561072457600080fd5b506101fe6117cc565b34801561073957600080fd5b506107486004356024356117db565b60408051825181529081908390808383602061066b565b34801561076b57600080fd5b506101bb602460048035828101929082013591813580830192908201359160443580830192908201359160643580830192908201359160843580830192908201359160a4359182019101356117fa565b3480156107c757600080fd5b5061022f611aff565b3480156107dc57600080fd5b5061022f611b7a565b3480156107f157600080fd5b5061028a600435611bfd565b34801561080957600080fd5b506101bb600435611d6b565b34801561082157600080fd5b506101bb600160a060020a0360043516611dd9565b34801561084257600080fd5b506101fe611df9565b60006108556141ac565b61085d6141cb565b60025460011461086c57600080fd5b60028055610878611176565b15156108e557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f53616c65206973206e6f74207374617274656420796574000000000000000000604482015290519081900360640190fd5b846108ee611e08565b14610983576006546040805160e460020a630b12e441028152600481018890529051600092600160a060020a03169163b12e441091602480830192602092919082900301818787803b15801561094357600080fd5b505af1158015610957573d6000803e3d6000fd5b505050506040513d602081101561096d57600080fd5b5051600160a060020a0316141561098357600080fd5b61098b611b7a565b509250610998858561125b565b805160208201519193506109ab916117db565b90506109b78186611e2c565b6109eb8282600e868154811015156109cb57fe5b600091825260209091206002600590920201015463ffffffff1688611f7a565b6109f68282876120b9565b8151602080840151606080860151604080519586529385019290925283830191909152905133927f347f5f0051b895093800553e6e78ef332849e2552639a4f5ffe66535788ae07892908290030190a250506001600255505050565b6000610a65600c8363ffffffff61237716565b92915050565b600454600160a060020a031681565b600f5460009081901580610a935750610a9161173e565b155b15610a9d57610aa9565b5050600f546000190160015b9091565b600080600080610abb611b7a565b92509250811515610acb57610b9b565b600e805484908110610ad957fe5b90600052602060002090600502019050610b988582600301805480602002602001604051908101604052809291908181526020018280548015610b3b57602002820191906000526020600020905b815481526020019060010190808311610b27575b505050505083600401805480602002602001604051908101604052809291908181526020018280548015610b8e57602002820191906000526020600020905b815481526020019060010190808311610b7a575b5050505050612390565b93505b505050919050565b600080600080606080600f87815481101515610bbb57fe5b6000918252602090912060059091020154600f805463ffffffff9092169189908110610be357fe5b906000526020600020906005020160010154600f89815481101515610c0457fe5b6000918252602090912060026005909202010154600f805463ffffffff909216918b908110610c2f57fe5b906000526020600020906005020160020160049054906101000a900463ffffffff16600f8b815481101515610c6057fe5b9060005260206000209060050201600301600f8c815481101515610c8057fe5b9060005260206000209060050201600401818054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d265780601f10610cfb57610100808354040283529160200191610d26565b820191906000526020600020905b815481529060010190602001808311610d0957829003601f168201915b5050845460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815295975086945092508401905082828015610db45780601f10610d8957610100808354040283529160200191610db4565b820191906000526020600020905b815481529060010190602001808311610d9757829003601f168201915b5050505050905095509550955095509550955091939550919395565b600080600080606080600e87815481101515610de857fe5b6000918252602090912060059091020154600e805463ffffffff9092169189908110610e1057fe5b906000526020600020906005020160000160049054906101000a900463ffffffff16600e89815481101515610e4157fe5b906000526020600020906005020160010154600e8a815481101515610e6257fe5b6000918252602090912060026005909202010154600e805463ffffffff909216918c908110610e8d57fe5b9060005260206000209060050201600301600e8c815481101515610ead57fe5b906000526020600020906005020160040181805480602002602001604051908101604052809291908181526020018280548015610f0957602002820191906000526020600020905b815481526020019060010190808311610ef5575b5050505050915080805480602002602001604051908101604052809291908181526020018280548015610db457602002820191906000526020600020905b815481526020019060010190808311610f47575050505050905095509550955095509550955091939550919395565b60095481565b600154600090600160a060020a03163314610f9657600080fd5b610f9e61173e565b1515610fa957600080fd5b600354604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b15801561100f57600080fd5b505af1158015611023573d6000803e3d6000fd5b505050506040513d602081101561103957600080fd5b5051600354600154604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a03928316600482015260248101859052905193945091169163a9059cbb916044808201926020929091908290030181600087803b1580156110af57600080fd5b505af11580156110c3573d6000803e3d6000fd5b505050506040513d60208110156110d957600080fd5b505115156110e657600080fd5b600154604080518381529051600160a060020a03909216917f26ffb867a6b19bc0240d4e732ed6cfb0f0b6d93143a99cfb24ba5873308861f89181900360200190a250565b600f545b90565b600354600160a060020a031690565b600654600160a060020a031681565b60005481565b6060611162600c6123ef565b905090565b600a54600160a060020a031681565b600080611181611b7a565b9150508091505b5090565b600154600160a060020a031633146111a357600080fd5b600154604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26001805473ffffffffffffffffffffffffffffffffffffffff19169055565b600e5490565b600b54600160a060020a031681565b600e80548290811061121d57fe5b600091825260209091206005909102018054600182015460029092015463ffffffff8083169450640100000000909204821692911684565b60085481565b6112636141ac565b60008061126e611b7a565b9150915080151561127e57611712565b84611287611e08565b1461131c576006546040805160e460020a630b12e441028152600481018890529051600092600160a060020a03169163b12e441091602480830192602092919082900301818787803b1580156112dc57600080fd5b505af11580156112f0573d6000803e3d6000fd5b505050506040513d602081101561130657600080fd5b5051600160a060020a0316141561131c57611712565b61170f8585600e8581548110151561133057fe5b906000526020600020906005020160010154600e8681548110151561135157fe5b90600052602060002090600502016003018054806020026020016040519081016040528092919081815260200182805480156113ac57602002820191906000526020600020905b815481526020019060010190808311611398575b5050505050600e878154811015156113c057fe5b906000526020600020906005020160040180548060200260200160405190810160405280929190818152602001828054801561141b57602002820191906000526020600020905b815481526020019060010190808311611407575b5050505050600660009054906101000a9004600160a060020a0316600160a060020a0316638eaa6ac08c6040518263ffffffff1660e060020a028152600401808260001916600019168152602001915050602060405180830381600087803b15801561148657600080fd5b505af115801561149a573d6000803e3d6000fd5b505050506040513d60208110156114b057600080fd5b5051600754600354604080517f313ce5670000000000000000000000000000000000000000000000000000000081529051600160a060020a039092169163313ce567916004808201926020929091908290030181600087803b15801561151557600080fd5b505af1158015611529573d6000803e3d6000fd5b505050506040513d602081101561153f57600080fd5b505160ff168d61154d611e08565b1461167557600660009054906101000a9004600160a060020a0316600160a060020a031663b12e44108f6040518263ffffffff1660e060020a028152600401808260001916600019168152602001915050602060405180830381600087803b1580156115b857600080fd5b505af11580156115cc573d6000803e3d6000fd5b505050506040513d60208110156115e257600080fd5b5051604080517f313ce5670000000000000000000000000000000000000000000000000000000081529051600160a060020a039092169163313ce567916004808201926020929091908290030181600087803b15801561164157600080fd5b505af1158015611655573d6000803e3d6000fd5b505050506040513d602081101561166b57600080fd5b505160ff16611678565b60125b600354604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b1580156116de57600080fd5b505af11580156116f2573d6000803e3d6000fd5b505050506040513d602081101561170857600080fd5b505161244c565b92505b505092915050565b600154600160a060020a031681565b600554600160a060020a031690565b60075481565b600e5460009015806111625750600e8054429190600019810190811061176057fe5b6000918252602090912060059091020154640100000000900463ffffffff1610919050565b600e54600090811061179657600080fd5b600e805460001981019081106117a857fe5b6000918252602090912060059091020154640100000000900463ffffffff16919050565b600554600160a060020a031681565b6117e36141cb565b6117f38383600854600954612887565b9392505050565b600154600090600160a060020a0316331461181457600080fd5b600e54600010156118515742600e600081548110151561183057fe5b600091825260209091206005909102015463ffffffff161161185157600080fd5b8b151561185d57600080fd5b60ff8c111561186b57600080fd5b60ff88111561187957600080fd5b60028604881461188857600080fd5b6002840488111561189857600080fd5b8115156118a457600080fd5b5060005b8181101561195057600654600160a060020a0316637d20abf88484848181106118cd57fe5b6040805160e060020a63ffffffff87160281526020928302949094013560048501525160248085019492935090918290030181600087803b15801561191157600080fd5b505af1158015611925573d6000803e3d6000fd5b505050506040513d602081101561193b57600080fd5b5051151561194857600080fd5b6001016118a8565b6119e98d8d808060200260200160405190810160405280939291908181526020016000905b828210156119b1576040805160c08181019092529080840287019060069083908390808284375050509183525050600190910190602001611975565b50505050508c8c80806020026020016040519081016040528093929190818152602001838360200280828437506128d2945050505050565b611ab08989808060200260200160405190810160405280939291908181526020016000905b82821015611a4a576040805160808181019092529080840287019060049083908390808284375050509183525050600190910190602001611a0e565b50505050508888808060200260200160405190810160405280939291908181526020018383602002808284375050604080516020601f8e018190048102820181019092528c815294508c93508b9250829150840183828082843750612ddb945050505050565b611af083838080602002602001604051908101604052809392919081815260200183836020028082843750600c9594505063ffffffff6133391692505050565b50505050505050505050505050565b600f5460009081901580611b185750611b1661173e565b155b15611b2257610aa9565b5060015b600f546000190182108015611b6a5750600f805483908110611b4457fe5b6000918252602090912060059091020160020154640100000000900463ffffffff164210155b15610aa957600190910190611b26565b60008080805b600e54821015611bef57600e805483908110611b9857fe5b6000918252602090912060059091020180549091504263ffffffff90911611801590611bd3575080544264010000000090910463ffffffff16115b15611be45781600193509350611bf7565b600190910190611b80565b600093508392505b50509091565b600f805482908110611c0b57fe5b60009182526020918290206005919091020180546001808301546002808501546003860180546040805161010097831615979097026000190190911693909304601f810189900489028601890190935282855263ffffffff9586169850929685821696640100000000909204909516949093929190830182828015611cd15780601f10611ca657610100808354040283529160200191611cd1565b820191906000526020600020905b815481529060010190602001808311611cb457829003601f168201915b5050505060048301805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152949594935090830182828015611d615780601f10611d3657610100808354040283529160200191611d61565b820191906000526020600020905b815481529060010190602001808311611d4457829003601f168201915b5050505050905086565b600154600160a060020a03163314611d8257600080fd5b600e5460001015611dbf5742600e6000815481101515611d9e57fe5b600091825260209091206005909102015463ffffffff1611611dbf57600080fd5b600a54611dd6908290600160a060020a031661340a565b50565b600154600160a060020a03163314611df057600080fd5b611dd681613460565b600354600160a060020a031681565b7f455448000000000000000000000000000000000000000000000000000000000090565b600654604080517fcfec719f000000000000000000000000000000000000000000000000000000008152600481018490529051611f769285928592600160a060020a039092169163cfec719f916024808201926020929091908290030181600087803b158015611e9b57600080fd5b505af1158015611eaf573d6000803e3d6000fd5b505050506040513d6020811015611ec557600080fd5b5051611ed2576000611f50565b6006546040805160e460020a630b12e441028152600481018790529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b158015611f2357600080fd5b505af1158015611f37573d6000803e3d6000fd5b505050506040513d6020811015611f4d57600080fd5b50515b600354600454600b54600a54600160a060020a03938416939283169291821691166134de565b5050565b600654604080517fcfec719f0000000000000000000000000000000000000000000000000000000081526004810184905290516120b3928792879287928792600160a060020a039091169163cfec719f916024808201926020929091908290030181600087803b158015611fed57600080fd5b505af1158015612001573d6000803e3d6000fd5b505050506040513d602081101561201757600080fd5b50516120245760006120a2565b6006546040805160e460020a630b12e441028152600481018990529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b15801561207557600080fd5b505af1158015612089573d6000803e3d6000fd5b505050506040513d602081101561209f57600080fd5b50515b600354600160a060020a031661386d565b50505050565b6120c1611e08565b81141561219557600554600160a060020a031663d0baf2f56120f984600160200201518660015b60200201519063ffffffff613b5d16565b855160208601513391908690612111908a60016120e8565b89600260200201516040805160e060020a63ffffffff8a16028152600160a060020a03909616600487015260248601949094526044850192909252606484015260848301525160a480830192600092919082900301818588803b15801561217757600080fd5b505af115801561218b573d6000803e3d6000fd5b5050505050612372565b6006546040805160e460020a630b12e441028152600481018490529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b1580156121e657600080fd5b505af11580156121fa573d6000803e3d6000fd5b505050506040513d602081101561221057600080fd5b5051600554600160a060020a039182169163a9059cbb911661223c8560015b60200201518760016120e8565b6040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801561228e57600080fd5b505af11580156122a2573d6000803e3d6000fd5b505050506040513d60208110156122b857600080fd5b505115156122c557600080fd5b600554600160a060020a031663d0baf2f5338560006020020151846122f387600160200201518960016120e8565b88600260200201516040805160e060020a63ffffffff8916028152600160a060020a03909616600487015260248601949094526044850192909252606484015260848301525160a480830192600092919082900301818387803b15801561235957600080fd5b505af115801561236d573d6000803e3d6000fd5b505050505b505050565b6000908152600191909101602052604090205460ff1690565b6000805b83518110156123e75783818151811015156123ab57fe5b6020908102909101015185106123da5782818151811015156123c957fe5b9060200190602002015191506123df565b6123e7565b600101612394565b509392505050565b60608160000180548060200260200160405190810160405280929190818152602001828054801561244057602002820191906000526020600020905b8154815260019091019060200180831161242b575b50505050509050919050565b6124546141ac565b60006124658c8c8989878a8a613b6f565b151561247057600080fd5b73__Utils_________________________________6376ba78988c868a6040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b1580156124d257600080fd5b505af41580156124e6573d6000803e3d6000fd5b505050506040513d60208110156124fc57600080fd5b50516040830181905286111561251157600080fd5b6040820151612521908a8a612390565b905060008a1161253157856125b7565b6125b78a73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b15801561257c57600080fd5b505af4158015612590573d6000803e3d6000fd5b505050506040513d60208110156125a657600080fd5b50518891900363ffffffff613bc716565b82600460200201818152505073__Utils_________________________________63a5a55fcf61266e6126638473__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b15801561262b57600080fd5b505af415801561263f573d6000803e3d6000fd5b505050506040513d602081101561265557600080fd5b50519063ffffffff613bf016565b604086015190613bfd565b8785600460200201516040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b1580156126bc57600080fd5b505af41580156126d0573d6000803e3d6000fd5b505050506040513d60208110156126e657600080fd5b50518083528310156127a5576080820151604080517f76ba7898000000000000000000000000000000000000000000000000000000008152600481018690526024810188905260448101929092525173__Utils_________________________________916376ba7898916064808301926020929190829003018186803b15801561277057600080fd5b505af4158015612784573d6000803e3d6000fd5b505050506040513d602081101561279a57600080fd5b505160408301528282525b73__Utils_________________________________63a5a55fcf8360026020020151868a6040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b15801561280e57600080fd5b505af4158015612822573d6000803e3d6000fd5b505050506040513d602081101561283857600080fd5b505160208301819052158061284c57508151155b156128635760008083526020830181905260408301525b6020820151612873908c90613b5d565b6060830152509a9950505050505050505050565b61288f6141cb565b60008311156128ab576128a8858463ffffffff613bfd16565b81525b60008211156128ca576128c4848363ffffffff613bfd16565b60208201525b949350505050565b600f5460009081101561292f578251839060001981019081106128f157fe5b6020908102919091018101510151600f8054600090811061290e57fe5b600091825260209091206005909102015463ffffffff161161292f57600080fd5b61293b600e60006141e6565b5060005b82518160ff161015612dad57825163ffffffff90849060ff841690811061296257fe5b602090810291909101015151111561297957600080fd5b825163ffffffff90849060ff841690811061299057fe5b602090810291909101810151015111156129a957600080fd5b825163ffffffff90849060ff84169081106129c057fe5b60209081029190910101516060015111156129da57600080fd5b825160ff9084908383169081106129ed57fe5b6020908102919091010151608001511115612a0757600080fd5b825160ff908490838316908110612a1a57fe5b602090810291909101015160a001511115612a3457600080fd5b42838260ff16815181101515612a4657fe5b60209081029190910101515111612a5c57600080fd5b828160ff16815181101515612a6d57fe5b60209081029190910181015101518351849060ff8416908110612a8c57fe5b60209081029190910101515110612aa257600080fd5b60008160ff161115612af957828160ff16815181101515612abf57fe5b6020908102919091010151518351849060ff600019850116908110612ae057fe5b60209081029190910181015101511115612af957600080fd5b612b24838260ff16815181101515612b0d57fe5b6020908102909101015160025b6020020151613c11565b1515612b2f57600080fd5b73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015612b7657600080fd5b505af4158015612b8a573d6000803e3d6000fd5b505050506040513d6020811015612ba057600080fd5b50518351849060ff8416908110612bb357fe5b60209081029190910101516040015110612bcc57600080fd5b600e60c060405190810160405280858460ff16815181101515612beb57fe5b6020908102919091018101515163ffffffff1682528651910190869060ff8616908110612c1457fe5b602090810290910101516001602002015163ffffffff168152602001858460ff16815181101515612c4157fe5b60209081029091010151600260200201518152602001858460ff16815181101515612c6857fe5b6020908102919091018101516060015163ffffffff16825260408051600080825281840183528484019190915281518181529283018252920191509052815460018082018085556000948552602094859020845160059094020180548587015163ffffffff1991821663ffffffff9687161767ffffffff000000001916640100000000918716919091021782556040860151938201939093556060850151600282018054909416941693909317909155608083015180519194612d3392600385019290910190614207565b5060a08201518051612d4f916004840191602090910190614207565b50505050612da56001600e8054905003848360ff16815181101515612d7057fe5b6020908102919091010151608001518551869060ff8616908110612d9057fe5b602090810291909101015160a0015185613c36565b60010161293f565b6040517f743961f4e677d1146fbf85d75565b1c5474fd083eb166f8b9595cf5d01a4d6e690600090a1505050565b6000806000806060806000600e805490501115612e4857886000815181101515612e0157fe5b602090810291909101015151600e80546000198101908110612e1f57fe5b6000918252602090912060059091020154640100000000900463ffffffff1610612e4857600080fd5b612e54600f600061424e565b600095506000945060009350600092505b88518360ff16101561328757885163ffffffff908a9060ff8616908110612e8857fe5b6020908102919091010151511115612e9f57600080fd5b885163ffffffff908a9060ff8616908110612eb657fe5b60209081029190910181015101511115612ecf57600080fd5b885163ffffffff908a9060ff8616908110612ee657fe5b6020908102919091010151604001511115612f0057600080fd5b42898460ff16815181101515612f1257fe5b60209081029190910101515111612f2857600080fd5b888360ff16815181101515612f3957fe5b60209081029190910101515189518a9060ff8616908110612f5657fe5b602090810291909101810151015111612f6e57600080fd5b888360ff16815181101515612f7f57fe5b602090810291909101810151015189518a9060ff8616908110612f9e57fe5b60209081029190910101516040015111612fb757600080fd5b60008360ff16111561300e57888360ff16815181101515612fd457fe5b60209081029190910101515189518a9060ff600019870116908110612ff557fe5b6020908102919091010151604001511061300e57600080fd5b613033898460ff1681518110151561302257fe5b602090810290910101516003612b1a565b151561303e57600080fd5b61307086898781518110151561305057fe5b9060200190602002015163ffffffff1689613fa39092919063ffffffff16565b91506130a2888681518110151561308357fe5b9060200190602002015163ffffffff1687613bf090919063ffffffff16565b95506130b986898760010181518110151561305057fe5b90506130cf888660010181518110151561308357fe5b95506130e285600263ffffffff613bf016565b945061310e898460ff168151811015156130f857fe5b6020908102919091010151606001518590613bf0565b9350600f60c0604051908101604052808b8660ff1681518110151561312f57fe5b6020908102919091018101515163ffffffff1682528c519101908c9060ff881690811061315857fe5b602090810290910101516003602002015181526020018b8660ff1681518110151561317f57fe5b602090810290910101516001602002015163ffffffff1681526020018b8660ff168151811015156131ac57fe5b6020908102909101015160026020908102919091015163ffffffff90811683528282018790526040928301869052845460018181018088556000978852968490208651600590930201805492841663ffffffff19938416178155868501519181019190915593850151600285018054606088015185166401000000000267ffffffff000000001993909516931692909217169190911790556080830151805161325b926003850192019061426f565b5060a0820151805161327791600484019160209091019061426f565b505060019094019350612e659050565b73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b1580156132ce57600080fd5b505af41580156132e2573d6000803e3d6000fd5b505050506040513d60208110156132f857600080fd5b5051841461330557600080fd5b6040517f56d9a2e016027a3725bf162ef2779c8b28d4dbec97c679cfba02dbb31a34c7ca90600090a1505050505050505050565b81546000901561339c575060005b825481101561339c576000836001016000856000018481548110151561336957fe5b60009182526020808320919091015483528201929092526040019020805460ff1916911515919091179055600101613347565b81516133ae90849060208501906142dc565b50815115612372575060005b815181101561237257600183600101600084848151811015156133d957fe5b6020908102919091018101518252810191909152604001600020805460ff19169115159190911790556001016133ba565b6000821161341757600080fd5b600160a060020a038116151561342c57600080fd5b600791909155600a805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600160a060020a038116151561347557600080fd5b600154604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a03831615156134f357600080fd5b600160a060020a038416151561350857600080fd5b600160a060020a038216151561351d57600080fd5b600160a060020a038116151561353257600080fd5b6020870151600010801561354d5750613549611e08565b8614155b1561356757600160a060020a038516151561356757600080fd5b8651600010156136c5578651604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152848116602483015260448201939093529051918516916323b872dd916064808201926020929091908290030181600087803b1580156135e857600080fd5b505af11580156135fc573d6000803e3d6000fd5b505050506040513d602081101561361257600080fd5b5051151561361f57600080fd5b8651604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152602482019390935290519186169163a9059cbb916044808201926020929091908290030181600087803b15801561368e57600080fd5b505af11580156136a2573d6000803e3d6000fd5b505050506040513d60208110156136b857600080fd5b505115156136c557600080fd5b60208701516000101561236d576136da611e08565b861415613720576020870151604051600160a060020a0383169180156108fc02916000818181858888f1935050505015801561371a573d6000803e3d6000fd5b5061236d565b602080880151604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290519192600160a060020a0389169263dd62ed3e9260448082019392918290030181600087803b15801561378c57600080fd5b505af11580156137a0573d6000803e3d6000fd5b505050506040513d60208110156137b657600080fd5b505110156137c357600080fd5b602080880151604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a03858116602483015260448201939093529051918816926323b872dd926064808401938290030181600087803b15801561383657600080fd5b505af115801561384a573d6000803e3d6000fd5b505050506040513d602081101561386057600080fd5b5051151561236d57600080fd5b600160a060020a038116151561388257600080fd5b8551151561388f57600080fd5b6020860151151561389f57600080fd5b84518651116138ad57600080fd5b60208086015190870151116138c157600080fd5b6138c9611e08565b8314156138e15760208601513410156138e157600080fd5b6138e9611e08565b8314613a5c57600160a060020a038216151561390457600080fd5b61390f85600161222f565b604080517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523360048201523060248201529051600160a060020a0385169163dd62ed3e9160448083019260209291908290030181600087803b15801561397657600080fd5b505af115801561398a573d6000803e3d6000fd5b505050506040513d60208110156139a057600080fd5b505110156139ad57600080fd5b600160a060020a0382166323b872dd33306139d189600160200201518b60016120e8565b6040805160e060020a63ffffffff8716028152600160a060020a0394851660048201529290931660248301526044820152905160648083019260209291908290030181600087803b158015613a2557600080fd5b505af1158015613a39573d6000803e3d6000fd5b505050506040513d6020811015613a4f57600080fd5b50511515613a5c57600080fd5b8551604080517f9d2e4777000000000000000000000000000000000000000000000000000000008152336004820152602481019290925263ffffffff8616604483015251600160a060020a03831691639d2e47779160648083019260209291908290030181600087803b158015613ad257600080fd5b505af1158015613ae6573d6000803e3d6000fd5b505050506040513d6020811015613afc57600080fd5b50511515613b0957600080fd5b606086015160001015613b5557613b1e611e08565b831415613b55576060860151604051339180156108fc02916000818181858888f1935050505015801561236d573d6000803e3d6000fd5b505050505050565b600082821115613b6957fe5b50900390565b60008087118015613b805750600086115b8015613b8c5750600085115b8015613b9b575082600a0a8410155b9050613ba5611e08565b881415613bbc57808015613bb95750816012145b90505b979650505050505050565b60006117f3613bd4614024565b613be4858563ffffffff61403616565b9063ffffffff61405f16565b81810182811015610a6557fe5b60006117f38383613c0c614024565b614074565b6000613c1b614190565b8210158015610a655750613c2d614024565b90911115919050565b606080600060ff8616158015613c4d575060ff8516155b15613cdb57604080516000815260208101909152600e805460ff8a16908110613c7257fe5b90600052602060002090600502016003019080519060200190613c96929190614207565b50604080516000815260208101909152600e805460ff8a16908110613cb757fe5b9060005260206000209060050201600401908051906020019061371a929190614207565b835160ff86161115613cec57600080fd5b60ff80861690871610613cfe57600080fd5b6001861615613d0c57600080fd5b6001851615613d1a57600080fd5b600260ff878703160460ff16604051908082528060200260200182016040528015613d4f578160200160208202803883390190505b509250600260ff878703160460ff16604051908082528060200260200182016040528015613d87578160200160208202803883390190505b509150600090505b8460ff168660ff161015613f2a57613dc3848760010160ff16815181101515613db457fe5b90602001906020020151613c11565b1515613dce57600080fd5b73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015613e1557600080fd5b505af4158015613e29573d6000803e3d6000fd5b505050506040513d6020811015613e3f57600080fd5b50518451859060ff60018a0116908110613e5557fe5b6020908102909101015110613e6957600080fd5b6000811115613eb257838660ff16815181101515613e8357fe5b906020019060200201518360018303815181101515613e9e57fe5b6020908102909101015110613eb257600080fd5b838660ff16815181101515613ec357fe5b906020019060200201518382815181101515613edb57fe5b602090810290910101528351849060ff6001890116908110613ef957fe5b906020019060200201518282815181101515613f1157fe5b6020908102909101015260029590950194600101613d8f565b82600e8860ff16815481101515613f3d57fe5b90600052602060002090600502016003019080519060200190613f61929190614207565b5081600e8860ff16815481101515613f7557fe5b90600052602060002090600502016004019080519060200190613f99929190614207565b5050505050505050565b606080828401855110151515613fb857600080fd5b82158015613fd15760405191506020820160405261401b565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561400a578051835260209283019201613ff2565b5050858452601f01601f1916604052505b50949350505050565b600061402e614195565b600a0a905090565b600082151561404757506000610a65565b5081810281838281151561405757fe5b0414610a6557fe5b6000818381151561406c57fe5b049392505050565b60008080808085151561408357fe5b87158061408e575086155b1561409857614185565b6140aa6000198863ffffffff61405f16565b92508288116140ce576140c786613be48a8a63ffffffff61403616565b9450614185565b858814156140de57869450614185565b858714156140ee57879450614185565b871561416f578783116141015782614103565b875b9150614115828863ffffffff61403616565b905061413761412a828863ffffffff61405f16565b869063ffffffff613bf016565b9450614156868281151561414757fe5b8691900663ffffffff613bf016565b9350614168888363ffffffff613b5d16565b97506140ee565b61418261412a858863ffffffff61405f16565b94505b505050509392505050565b600090565b600061419f6141a7565b600201905090565b600290565b60a0604051908101604052806005906020820280388339509192915050565b60408051808201825290600290829080388339509192915050565b5080546000825560050290600052602060002090810190611dd69190614319565b828054828255906000526020600020908101928215614242579160200282015b82811115614242578251825591602001919060010190614227565b50611188929150614372565b5080546000825560050290600052602060002090810190611dd6919061438c565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106142b057805160ff1916838001178555614242565b828001600101855582156142425791820182811115614242578251825591602001919060010190614227565b828054828255906000526020600020908101928215614242579160200282015b8281111561424257825182556020909201916001909101906142fc565b61112f91905b8082111561118857805467ffffffffffffffff1916815560006001820181905560028201805463ffffffff1916905561435b60038301826143e5565b6143696004830160006143e5565b5060050161431f565b61112f91905b808211156111885760008155600101614378565b61112f91905b8082111561118857805463ffffffff1916815560006001820181905560028201805467ffffffffffffffff191690556143ce6003830182614403565b6143dc600483016000614403565b50600501614392565b5080546000825590600052602060002090810190611dd69190614372565b50805460018160011615610100020316600290046000825580601f106144295750611dd6565b601f016020900490600052602060002090810190611dd69190614372565b600061445282613c11565b151561445d57600080fd5b610a656144686141a7565b8390600a0a63ffffffff61405f165600a165627a7a723058202342b88ad61b0780c18df5bad6bf46006e8ba44f4e4efd9edf7cf615b579c9400029", + "deployedBytecode": "0x6080604052600436106101a85763ffffffff60e060020a60003504166307f5d63381146101ad57806311eb8c9f146101bd57806313096a41146101e957806314f66d341461021a578063208853c9146102485780632442e1cb146102725780632e325020146103a85780632fbe599014610499578063313602d4146104ae5780633baba4d7146104c35780634090cb64146104d857806343f48fbd146104ed57806354fd4d5014610502578063550fd742146105175780635641f3c31461057c578063564566a814610591578063715018a6146105a6578063792c02ea146105bb5780638119c065146105d0578063845ddcb2146105e55780638abdf5aa1461062e5780638aea2af8146106435780638da5cb5b146106965780638edd6eb6146106ab578063a035b1fe146106c0578063a4fd6f56146106d5578063b1356488146106ea578063b60d428814610718578063d250185c1461072d578063d5b226231461075f578063d6d65f3d146107bb578063daa4cf88146107d0578063e89e4ed6146107e5578063e93b0540146107fd578063f2fde38b14610815578063fc0c546a14610836575b600080fd5b6101bb60043560243561084b565b005b3480156101c957600080fd5b506101d5600435610a52565b604080519115158252519081900360200190f35b3480156101f557600080fd5b506101fe610a6b565b60408051600160a060020a039092168252519081900360200190f35b34801561022657600080fd5b5061022f610a7a565b6040805192835290151560208301528051918290030190f35b34801561025457600080fd5b50610260600435610aad565b60408051918252519081900360200190f35b34801561027e57600080fd5b5061028a600435610ba3565b604051808763ffffffff1663ffffffff1681526020018681526020018563ffffffff1663ffffffff1681526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019080838360005b838110156103075781810151838201526020016102ef565b50505050905090810190601f1680156103345780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b8381101561036757818101518382015260200161034f565b50505050905090810190601f1680156103945780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b3480156103b457600080fd5b506103c0600435610dd0565b604051808763ffffffff1663ffffffff1681526020018663ffffffff1663ffffffff1681526020018581526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015610440578181015183820152602001610428565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561047f578181015183820152602001610467565b505050509050019850505050505050505060405180910390f35b3480156104a557600080fd5b50610260610f76565b3480156104ba57600080fd5b506101bb610f7c565b3480156104cf57600080fd5b5061026061112b565b3480156104e457600080fd5b506101fe611132565b3480156104f957600080fd5b506101fe611141565b34801561050e57600080fd5b50610260611150565b34801561052357600080fd5b5061052c611156565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610568578181015183820152602001610550565b505050509050019250505060405180910390f35b34801561058857600080fd5b506101fe611167565b34801561059d57600080fd5b506101d5611176565b3480156105b257600080fd5b506101bb61118c565b3480156105c757600080fd5b506102606111fa565b3480156105dc57600080fd5b506101fe611200565b3480156105f157600080fd5b506105fd60043561120f565b6040805163ffffffff9586168152938516602085015283810192909252909216606082015290519081900360800190f35b34801561063a57600080fd5b50610260611255565b34801561064f57600080fd5b5061065e60043560243561125b565b604051808260a080838360005b8381101561068357818101518382015260200161066b565b5050505090500191505060405180910390f35b3480156106a257600080fd5b506101fe61171a565b3480156106b757600080fd5b506101fe611729565b3480156106cc57600080fd5b50610260611738565b3480156106e157600080fd5b506101d561173e565b3480156106f657600080fd5b506106ff611785565b6040805163ffffffff9092168252519081900360200190f35b34801561072457600080fd5b506101fe6117cc565b34801561073957600080fd5b506107486004356024356117db565b60408051825181529081908390808383602061066b565b34801561076b57600080fd5b506101bb602460048035828101929082013591813580830192908201359160443580830192908201359160643580830192908201359160843580830192908201359160a4359182019101356117fa565b3480156107c757600080fd5b5061022f611aff565b3480156107dc57600080fd5b5061022f611b7a565b3480156107f157600080fd5b5061028a600435611bfd565b34801561080957600080fd5b506101bb600435611d6b565b34801561082157600080fd5b506101bb600160a060020a0360043516611dd9565b34801561084257600080fd5b506101fe611df9565b60006108556141ac565b61085d6141cb565b60025460011461086c57600080fd5b60028055610878611176565b15156108e557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f53616c65206973206e6f74207374617274656420796574000000000000000000604482015290519081900360640190fd5b846108ee611e08565b14610983576006546040805160e460020a630b12e441028152600481018890529051600092600160a060020a03169163b12e441091602480830192602092919082900301818787803b15801561094357600080fd5b505af1158015610957573d6000803e3d6000fd5b505050506040513d602081101561096d57600080fd5b5051600160a060020a0316141561098357600080fd5b61098b611b7a565b509250610998858561125b565b805160208201519193506109ab916117db565b90506109b78186611e2c565b6109eb8282600e868154811015156109cb57fe5b600091825260209091206002600590920201015463ffffffff1688611f7a565b6109f68282876120b9565b8151602080840151606080860151604080519586529385019290925283830191909152905133927f347f5f0051b895093800553e6e78ef332849e2552639a4f5ffe66535788ae07892908290030190a250506001600255505050565b6000610a65600c8363ffffffff61237716565b92915050565b600454600160a060020a031681565b600f5460009081901580610a935750610a9161173e565b155b15610a9d57610aa9565b5050600f546000190160015b9091565b600080600080610abb611b7a565b92509250811515610acb57610b9b565b600e805484908110610ad957fe5b90600052602060002090600502019050610b988582600301805480602002602001604051908101604052809291908181526020018280548015610b3b57602002820191906000526020600020905b815481526020019060010190808311610b27575b505050505083600401805480602002602001604051908101604052809291908181526020018280548015610b8e57602002820191906000526020600020905b815481526020019060010190808311610b7a575b5050505050612390565b93505b505050919050565b600080600080606080600f87815481101515610bbb57fe5b6000918252602090912060059091020154600f805463ffffffff9092169189908110610be357fe5b906000526020600020906005020160010154600f89815481101515610c0457fe5b6000918252602090912060026005909202010154600f805463ffffffff909216918b908110610c2f57fe5b906000526020600020906005020160020160049054906101000a900463ffffffff16600f8b815481101515610c6057fe5b9060005260206000209060050201600301600f8c815481101515610c8057fe5b9060005260206000209060050201600401818054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d265780601f10610cfb57610100808354040283529160200191610d26565b820191906000526020600020905b815481529060010190602001808311610d0957829003601f168201915b5050845460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815295975086945092508401905082828015610db45780601f10610d8957610100808354040283529160200191610db4565b820191906000526020600020905b815481529060010190602001808311610d9757829003601f168201915b5050505050905095509550955095509550955091939550919395565b600080600080606080600e87815481101515610de857fe5b6000918252602090912060059091020154600e805463ffffffff9092169189908110610e1057fe5b906000526020600020906005020160000160049054906101000a900463ffffffff16600e89815481101515610e4157fe5b906000526020600020906005020160010154600e8a815481101515610e6257fe5b6000918252602090912060026005909202010154600e805463ffffffff909216918c908110610e8d57fe5b9060005260206000209060050201600301600e8c815481101515610ead57fe5b906000526020600020906005020160040181805480602002602001604051908101604052809291908181526020018280548015610f0957602002820191906000526020600020905b815481526020019060010190808311610ef5575b5050505050915080805480602002602001604051908101604052809291908181526020018280548015610db457602002820191906000526020600020905b815481526020019060010190808311610f47575050505050905095509550955095509550955091939550919395565b60095481565b600154600090600160a060020a03163314610f9657600080fd5b610f9e61173e565b1515610fa957600080fd5b600354604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b15801561100f57600080fd5b505af1158015611023573d6000803e3d6000fd5b505050506040513d602081101561103957600080fd5b5051600354600154604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a03928316600482015260248101859052905193945091169163a9059cbb916044808201926020929091908290030181600087803b1580156110af57600080fd5b505af11580156110c3573d6000803e3d6000fd5b505050506040513d60208110156110d957600080fd5b505115156110e657600080fd5b600154604080518381529051600160a060020a03909216917f26ffb867a6b19bc0240d4e732ed6cfb0f0b6d93143a99cfb24ba5873308861f89181900360200190a250565b600f545b90565b600354600160a060020a031690565b600654600160a060020a031681565b60005481565b6060611162600c6123ef565b905090565b600a54600160a060020a031681565b600080611181611b7a565b9150508091505b5090565b600154600160a060020a031633146111a357600080fd5b600154604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26001805473ffffffffffffffffffffffffffffffffffffffff19169055565b600e5490565b600b54600160a060020a031681565b600e80548290811061121d57fe5b600091825260209091206005909102018054600182015460029092015463ffffffff8083169450640100000000909204821692911684565b60085481565b6112636141ac565b60008061126e611b7a565b9150915080151561127e57611712565b84611287611e08565b1461131c576006546040805160e460020a630b12e441028152600481018890529051600092600160a060020a03169163b12e441091602480830192602092919082900301818787803b1580156112dc57600080fd5b505af11580156112f0573d6000803e3d6000fd5b505050506040513d602081101561130657600080fd5b5051600160a060020a0316141561131c57611712565b61170f8585600e8581548110151561133057fe5b906000526020600020906005020160010154600e8681548110151561135157fe5b90600052602060002090600502016003018054806020026020016040519081016040528092919081815260200182805480156113ac57602002820191906000526020600020905b815481526020019060010190808311611398575b5050505050600e878154811015156113c057fe5b906000526020600020906005020160040180548060200260200160405190810160405280929190818152602001828054801561141b57602002820191906000526020600020905b815481526020019060010190808311611407575b5050505050600660009054906101000a9004600160a060020a0316600160a060020a0316638eaa6ac08c6040518263ffffffff1660e060020a028152600401808260001916600019168152602001915050602060405180830381600087803b15801561148657600080fd5b505af115801561149a573d6000803e3d6000fd5b505050506040513d60208110156114b057600080fd5b5051600754600354604080517f313ce5670000000000000000000000000000000000000000000000000000000081529051600160a060020a039092169163313ce567916004808201926020929091908290030181600087803b15801561151557600080fd5b505af1158015611529573d6000803e3d6000fd5b505050506040513d602081101561153f57600080fd5b505160ff168d61154d611e08565b1461167557600660009054906101000a9004600160a060020a0316600160a060020a031663b12e44108f6040518263ffffffff1660e060020a028152600401808260001916600019168152602001915050602060405180830381600087803b1580156115b857600080fd5b505af11580156115cc573d6000803e3d6000fd5b505050506040513d60208110156115e257600080fd5b5051604080517f313ce5670000000000000000000000000000000000000000000000000000000081529051600160a060020a039092169163313ce567916004808201926020929091908290030181600087803b15801561164157600080fd5b505af1158015611655573d6000803e3d6000fd5b505050506040513d602081101561166b57600080fd5b505160ff16611678565b60125b600354604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b1580156116de57600080fd5b505af11580156116f2573d6000803e3d6000fd5b505050506040513d602081101561170857600080fd5b505161244c565b92505b505092915050565b600154600160a060020a031681565b600554600160a060020a031690565b60075481565b600e5460009015806111625750600e8054429190600019810190811061176057fe5b6000918252602090912060059091020154640100000000900463ffffffff1610919050565b600e54600090811061179657600080fd5b600e805460001981019081106117a857fe5b6000918252602090912060059091020154640100000000900463ffffffff16919050565b600554600160a060020a031681565b6117e36141cb565b6117f38383600854600954612887565b9392505050565b600154600090600160a060020a0316331461181457600080fd5b600e54600010156118515742600e600081548110151561183057fe5b600091825260209091206005909102015463ffffffff161161185157600080fd5b8b151561185d57600080fd5b60ff8c111561186b57600080fd5b60ff88111561187957600080fd5b60028604881461188857600080fd5b6002840488111561189857600080fd5b8115156118a457600080fd5b5060005b8181101561195057600654600160a060020a0316637d20abf88484848181106118cd57fe5b6040805160e060020a63ffffffff87160281526020928302949094013560048501525160248085019492935090918290030181600087803b15801561191157600080fd5b505af1158015611925573d6000803e3d6000fd5b505050506040513d602081101561193b57600080fd5b5051151561194857600080fd5b6001016118a8565b6119e98d8d808060200260200160405190810160405280939291908181526020016000905b828210156119b1576040805160c08181019092529080840287019060069083908390808284375050509183525050600190910190602001611975565b50505050508c8c80806020026020016040519081016040528093929190818152602001838360200280828437506128d2945050505050565b611ab08989808060200260200160405190810160405280939291908181526020016000905b82821015611a4a576040805160808181019092529080840287019060049083908390808284375050509183525050600190910190602001611a0e565b50505050508888808060200260200160405190810160405280939291908181526020018383602002808284375050604080516020601f8e018190048102820181019092528c815294508c93508b9250829150840183828082843750612ddb945050505050565b611af083838080602002602001604051908101604052809392919081815260200183836020028082843750600c9594505063ffffffff6133391692505050565b50505050505050505050505050565b600f5460009081901580611b185750611b1661173e565b155b15611b2257610aa9565b5060015b600f546000190182108015611b6a5750600f805483908110611b4457fe5b6000918252602090912060059091020160020154640100000000900463ffffffff164210155b15610aa957600190910190611b26565b60008080805b600e54821015611bef57600e805483908110611b9857fe5b6000918252602090912060059091020180549091504263ffffffff90911611801590611bd3575080544264010000000090910463ffffffff16115b15611be45781600193509350611bf7565b600190910190611b80565b600093508392505b50509091565b600f805482908110611c0b57fe5b60009182526020918290206005919091020180546001808301546002808501546003860180546040805161010097831615979097026000190190911693909304601f810189900489028601890190935282855263ffffffff9586169850929685821696640100000000909204909516949093929190830182828015611cd15780601f10611ca657610100808354040283529160200191611cd1565b820191906000526020600020905b815481529060010190602001808311611cb457829003601f168201915b5050505060048301805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152949594935090830182828015611d615780601f10611d3657610100808354040283529160200191611d61565b820191906000526020600020905b815481529060010190602001808311611d4457829003601f168201915b5050505050905086565b600154600160a060020a03163314611d8257600080fd5b600e5460001015611dbf5742600e6000815481101515611d9e57fe5b600091825260209091206005909102015463ffffffff1611611dbf57600080fd5b600a54611dd6908290600160a060020a031661340a565b50565b600154600160a060020a03163314611df057600080fd5b611dd681613460565b600354600160a060020a031681565b7f455448000000000000000000000000000000000000000000000000000000000090565b600654604080517fcfec719f000000000000000000000000000000000000000000000000000000008152600481018490529051611f769285928592600160a060020a039092169163cfec719f916024808201926020929091908290030181600087803b158015611e9b57600080fd5b505af1158015611eaf573d6000803e3d6000fd5b505050506040513d6020811015611ec557600080fd5b5051611ed2576000611f50565b6006546040805160e460020a630b12e441028152600481018790529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b158015611f2357600080fd5b505af1158015611f37573d6000803e3d6000fd5b505050506040513d6020811015611f4d57600080fd5b50515b600354600454600b54600a54600160a060020a03938416939283169291821691166134de565b5050565b600654604080517fcfec719f0000000000000000000000000000000000000000000000000000000081526004810184905290516120b3928792879287928792600160a060020a039091169163cfec719f916024808201926020929091908290030181600087803b158015611fed57600080fd5b505af1158015612001573d6000803e3d6000fd5b505050506040513d602081101561201757600080fd5b50516120245760006120a2565b6006546040805160e460020a630b12e441028152600481018990529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b15801561207557600080fd5b505af1158015612089573d6000803e3d6000fd5b505050506040513d602081101561209f57600080fd5b50515b600354600160a060020a031661386d565b50505050565b6120c1611e08565b81141561219557600554600160a060020a031663d0baf2f56120f984600160200201518660015b60200201519063ffffffff613b5d16565b855160208601513391908690612111908a60016120e8565b89600260200201516040805160e060020a63ffffffff8a16028152600160a060020a03909616600487015260248601949094526044850192909252606484015260848301525160a480830192600092919082900301818588803b15801561217757600080fd5b505af115801561218b573d6000803e3d6000fd5b5050505050612372565b6006546040805160e460020a630b12e441028152600481018490529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b1580156121e657600080fd5b505af11580156121fa573d6000803e3d6000fd5b505050506040513d602081101561221057600080fd5b5051600554600160a060020a039182169163a9059cbb911661223c8560015b60200201518760016120e8565b6040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801561228e57600080fd5b505af11580156122a2573d6000803e3d6000fd5b505050506040513d60208110156122b857600080fd5b505115156122c557600080fd5b600554600160a060020a031663d0baf2f5338560006020020151846122f387600160200201518960016120e8565b88600260200201516040805160e060020a63ffffffff8916028152600160a060020a03909616600487015260248601949094526044850192909252606484015260848301525160a480830192600092919082900301818387803b15801561235957600080fd5b505af115801561236d573d6000803e3d6000fd5b505050505b505050565b6000908152600191909101602052604090205460ff1690565b6000805b83518110156123e75783818151811015156123ab57fe5b6020908102909101015185106123da5782818151811015156123c957fe5b9060200190602002015191506123df565b6123e7565b600101612394565b509392505050565b60608160000180548060200260200160405190810160405280929190818152602001828054801561244057602002820191906000526020600020905b8154815260019091019060200180831161242b575b50505050509050919050565b6124546141ac565b60006124658c8c8989878a8a613b6f565b151561247057600080fd5b73__Utils_________________________________6376ba78988c868a6040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b1580156124d257600080fd5b505af41580156124e6573d6000803e3d6000fd5b505050506040513d60208110156124fc57600080fd5b50516040830181905286111561251157600080fd5b6040820151612521908a8a612390565b905060008a1161253157856125b7565b6125b78a73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b15801561257c57600080fd5b505af4158015612590573d6000803e3d6000fd5b505050506040513d60208110156125a657600080fd5b50518891900363ffffffff613bc716565b82600460200201818152505073__Utils_________________________________63a5a55fcf61266e6126638473__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b15801561262b57600080fd5b505af415801561263f573d6000803e3d6000fd5b505050506040513d602081101561265557600080fd5b50519063ffffffff613bf016565b604086015190613bfd565b8785600460200201516040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b1580156126bc57600080fd5b505af41580156126d0573d6000803e3d6000fd5b505050506040513d60208110156126e657600080fd5b50518083528310156127a5576080820151604080517f76ba7898000000000000000000000000000000000000000000000000000000008152600481018690526024810188905260448101929092525173__Utils_________________________________916376ba7898916064808301926020929190829003018186803b15801561277057600080fd5b505af4158015612784573d6000803e3d6000fd5b505050506040513d602081101561279a57600080fd5b505160408301528282525b73__Utils_________________________________63a5a55fcf8360026020020151868a6040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b15801561280e57600080fd5b505af4158015612822573d6000803e3d6000fd5b505050506040513d602081101561283857600080fd5b505160208301819052158061284c57508151155b156128635760008083526020830181905260408301525b6020820151612873908c90613b5d565b6060830152509a9950505050505050505050565b61288f6141cb565b60008311156128ab576128a8858463ffffffff613bfd16565b81525b60008211156128ca576128c4848363ffffffff613bfd16565b60208201525b949350505050565b600f5460009081101561292f578251839060001981019081106128f157fe5b6020908102919091018101510151600f8054600090811061290e57fe5b600091825260209091206005909102015463ffffffff161161292f57600080fd5b61293b600e60006141e6565b5060005b82518160ff161015612dad57825163ffffffff90849060ff841690811061296257fe5b602090810291909101015151111561297957600080fd5b825163ffffffff90849060ff841690811061299057fe5b602090810291909101810151015111156129a957600080fd5b825163ffffffff90849060ff84169081106129c057fe5b60209081029190910101516060015111156129da57600080fd5b825160ff9084908383169081106129ed57fe5b6020908102919091010151608001511115612a0757600080fd5b825160ff908490838316908110612a1a57fe5b602090810291909101015160a001511115612a3457600080fd5b42838260ff16815181101515612a4657fe5b60209081029190910101515111612a5c57600080fd5b828160ff16815181101515612a6d57fe5b60209081029190910181015101518351849060ff8416908110612a8c57fe5b60209081029190910101515110612aa257600080fd5b60008160ff161115612af957828160ff16815181101515612abf57fe5b6020908102919091010151518351849060ff600019850116908110612ae057fe5b60209081029190910181015101511115612af957600080fd5b612b24838260ff16815181101515612b0d57fe5b6020908102909101015160025b6020020151613c11565b1515612b2f57600080fd5b73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015612b7657600080fd5b505af4158015612b8a573d6000803e3d6000fd5b505050506040513d6020811015612ba057600080fd5b50518351849060ff8416908110612bb357fe5b60209081029190910101516040015110612bcc57600080fd5b600e60c060405190810160405280858460ff16815181101515612beb57fe5b6020908102919091018101515163ffffffff1682528651910190869060ff8616908110612c1457fe5b602090810290910101516001602002015163ffffffff168152602001858460ff16815181101515612c4157fe5b60209081029091010151600260200201518152602001858460ff16815181101515612c6857fe5b6020908102919091018101516060015163ffffffff16825260408051600080825281840183528484019190915281518181529283018252920191509052815460018082018085556000948552602094859020845160059094020180548587015163ffffffff1991821663ffffffff9687161767ffffffff000000001916640100000000918716919091021782556040860151938201939093556060850151600282018054909416941693909317909155608083015180519194612d3392600385019290910190614207565b5060a08201518051612d4f916004840191602090910190614207565b50505050612da56001600e8054905003848360ff16815181101515612d7057fe5b6020908102919091010151608001518551869060ff8616908110612d9057fe5b602090810291909101015160a0015185613c36565b60010161293f565b6040517f743961f4e677d1146fbf85d75565b1c5474fd083eb166f8b9595cf5d01a4d6e690600090a1505050565b6000806000806060806000600e805490501115612e4857886000815181101515612e0157fe5b602090810291909101015151600e80546000198101908110612e1f57fe5b6000918252602090912060059091020154640100000000900463ffffffff1610612e4857600080fd5b612e54600f600061424e565b600095506000945060009350600092505b88518360ff16101561328757885163ffffffff908a9060ff8616908110612e8857fe5b6020908102919091010151511115612e9f57600080fd5b885163ffffffff908a9060ff8616908110612eb657fe5b60209081029190910181015101511115612ecf57600080fd5b885163ffffffff908a9060ff8616908110612ee657fe5b6020908102919091010151604001511115612f0057600080fd5b42898460ff16815181101515612f1257fe5b60209081029190910101515111612f2857600080fd5b888360ff16815181101515612f3957fe5b60209081029190910101515189518a9060ff8616908110612f5657fe5b602090810291909101810151015111612f6e57600080fd5b888360ff16815181101515612f7f57fe5b602090810291909101810151015189518a9060ff8616908110612f9e57fe5b60209081029190910101516040015111612fb757600080fd5b60008360ff16111561300e57888360ff16815181101515612fd457fe5b60209081029190910101515189518a9060ff600019870116908110612ff557fe5b6020908102919091010151604001511061300e57600080fd5b613033898460ff1681518110151561302257fe5b602090810290910101516003612b1a565b151561303e57600080fd5b61307086898781518110151561305057fe5b9060200190602002015163ffffffff1689613fa39092919063ffffffff16565b91506130a2888681518110151561308357fe5b9060200190602002015163ffffffff1687613bf090919063ffffffff16565b95506130b986898760010181518110151561305057fe5b90506130cf888660010181518110151561308357fe5b95506130e285600263ffffffff613bf016565b945061310e898460ff168151811015156130f857fe5b6020908102919091010151606001518590613bf0565b9350600f60c0604051908101604052808b8660ff1681518110151561312f57fe5b6020908102919091018101515163ffffffff1682528c519101908c9060ff881690811061315857fe5b602090810290910101516003602002015181526020018b8660ff1681518110151561317f57fe5b602090810290910101516001602002015163ffffffff1681526020018b8660ff168151811015156131ac57fe5b6020908102909101015160026020908102919091015163ffffffff90811683528282018790526040928301869052845460018181018088556000978852968490208651600590930201805492841663ffffffff19938416178155868501519181019190915593850151600285018054606088015185166401000000000267ffffffff000000001993909516931692909217169190911790556080830151805161325b926003850192019061426f565b5060a0820151805161327791600484019160209091019061426f565b505060019094019350612e659050565b73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b1580156132ce57600080fd5b505af41580156132e2573d6000803e3d6000fd5b505050506040513d60208110156132f857600080fd5b5051841461330557600080fd5b6040517f56d9a2e016027a3725bf162ef2779c8b28d4dbec97c679cfba02dbb31a34c7ca90600090a1505050505050505050565b81546000901561339c575060005b825481101561339c576000836001016000856000018481548110151561336957fe5b60009182526020808320919091015483528201929092526040019020805460ff1916911515919091179055600101613347565b81516133ae90849060208501906142dc565b50815115612372575060005b815181101561237257600183600101600084848151811015156133d957fe5b6020908102919091018101518252810191909152604001600020805460ff19169115159190911790556001016133ba565b6000821161341757600080fd5b600160a060020a038116151561342c57600080fd5b600791909155600a805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600160a060020a038116151561347557600080fd5b600154604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a03831615156134f357600080fd5b600160a060020a038416151561350857600080fd5b600160a060020a038216151561351d57600080fd5b600160a060020a038116151561353257600080fd5b6020870151600010801561354d5750613549611e08565b8614155b1561356757600160a060020a038516151561356757600080fd5b8651600010156136c5578651604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152848116602483015260448201939093529051918516916323b872dd916064808201926020929091908290030181600087803b1580156135e857600080fd5b505af11580156135fc573d6000803e3d6000fd5b505050506040513d602081101561361257600080fd5b5051151561361f57600080fd5b8651604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152602482019390935290519186169163a9059cbb916044808201926020929091908290030181600087803b15801561368e57600080fd5b505af11580156136a2573d6000803e3d6000fd5b505050506040513d60208110156136b857600080fd5b505115156136c557600080fd5b60208701516000101561236d576136da611e08565b861415613720576020870151604051600160a060020a0383169180156108fc02916000818181858888f1935050505015801561371a573d6000803e3d6000fd5b5061236d565b602080880151604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290519192600160a060020a0389169263dd62ed3e9260448082019392918290030181600087803b15801561378c57600080fd5b505af11580156137a0573d6000803e3d6000fd5b505050506040513d60208110156137b657600080fd5b505110156137c357600080fd5b602080880151604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a03858116602483015260448201939093529051918816926323b872dd926064808401938290030181600087803b15801561383657600080fd5b505af115801561384a573d6000803e3d6000fd5b505050506040513d602081101561386057600080fd5b5051151561236d57600080fd5b600160a060020a038116151561388257600080fd5b8551151561388f57600080fd5b6020860151151561389f57600080fd5b84518651116138ad57600080fd5b60208086015190870151116138c157600080fd5b6138c9611e08565b8314156138e15760208601513410156138e157600080fd5b6138e9611e08565b8314613a5c57600160a060020a038216151561390457600080fd5b61390f85600161222f565b604080517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523360048201523060248201529051600160a060020a0385169163dd62ed3e9160448083019260209291908290030181600087803b15801561397657600080fd5b505af115801561398a573d6000803e3d6000fd5b505050506040513d60208110156139a057600080fd5b505110156139ad57600080fd5b600160a060020a0382166323b872dd33306139d189600160200201518b60016120e8565b6040805160e060020a63ffffffff8716028152600160a060020a0394851660048201529290931660248301526044820152905160648083019260209291908290030181600087803b158015613a2557600080fd5b505af1158015613a39573d6000803e3d6000fd5b505050506040513d6020811015613a4f57600080fd5b50511515613a5c57600080fd5b8551604080517f9d2e4777000000000000000000000000000000000000000000000000000000008152336004820152602481019290925263ffffffff8616604483015251600160a060020a03831691639d2e47779160648083019260209291908290030181600087803b158015613ad257600080fd5b505af1158015613ae6573d6000803e3d6000fd5b505050506040513d6020811015613afc57600080fd5b50511515613b0957600080fd5b606086015160001015613b5557613b1e611e08565b831415613b55576060860151604051339180156108fc02916000818181858888f1935050505015801561236d573d6000803e3d6000fd5b505050505050565b600082821115613b6957fe5b50900390565b60008087118015613b805750600086115b8015613b8c5750600085115b8015613b9b575082600a0a8410155b9050613ba5611e08565b881415613bbc57808015613bb95750816012145b90505b979650505050505050565b60006117f3613bd4614024565b613be4858563ffffffff61403616565b9063ffffffff61405f16565b81810182811015610a6557fe5b60006117f38383613c0c614024565b614074565b6000613c1b614190565b8210158015610a655750613c2d614024565b90911115919050565b606080600060ff8616158015613c4d575060ff8516155b15613cdb57604080516000815260208101909152600e805460ff8a16908110613c7257fe5b90600052602060002090600502016003019080519060200190613c96929190614207565b50604080516000815260208101909152600e805460ff8a16908110613cb757fe5b9060005260206000209060050201600401908051906020019061371a929190614207565b835160ff86161115613cec57600080fd5b60ff80861690871610613cfe57600080fd5b6001861615613d0c57600080fd5b6001851615613d1a57600080fd5b600260ff878703160460ff16604051908082528060200260200182016040528015613d4f578160200160208202803883390190505b509250600260ff878703160460ff16604051908082528060200260200182016040528015613d87578160200160208202803883390190505b509150600090505b8460ff168660ff161015613f2a57613dc3848760010160ff16815181101515613db457fe5b90602001906020020151613c11565b1515613dce57600080fd5b73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015613e1557600080fd5b505af4158015613e29573d6000803e3d6000fd5b505050506040513d6020811015613e3f57600080fd5b50518451859060ff60018a0116908110613e5557fe5b6020908102909101015110613e6957600080fd5b6000811115613eb257838660ff16815181101515613e8357fe5b906020019060200201518360018303815181101515613e9e57fe5b6020908102909101015110613eb257600080fd5b838660ff16815181101515613ec357fe5b906020019060200201518382815181101515613edb57fe5b602090810290910101528351849060ff6001890116908110613ef957fe5b906020019060200201518282815181101515613f1157fe5b6020908102909101015260029590950194600101613d8f565b82600e8860ff16815481101515613f3d57fe5b90600052602060002090600502016003019080519060200190613f61929190614207565b5081600e8860ff16815481101515613f7557fe5b90600052602060002090600502016004019080519060200190613f99929190614207565b5050505050505050565b606080828401855110151515613fb857600080fd5b82158015613fd15760405191506020820160405261401b565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561400a578051835260209283019201613ff2565b5050858452601f01601f1916604052505b50949350505050565b600061402e614195565b600a0a905090565b600082151561404757506000610a65565b5081810281838281151561405757fe5b0414610a6557fe5b6000818381151561406c57fe5b049392505050565b60008080808085151561408357fe5b87158061408e575086155b1561409857614185565b6140aa6000198863ffffffff61405f16565b92508288116140ce576140c786613be48a8a63ffffffff61403616565b9450614185565b858814156140de57869450614185565b858714156140ee57879450614185565b871561416f578783116141015782614103565b875b9150614115828863ffffffff61403616565b905061413761412a828863ffffffff61405f16565b869063ffffffff613bf016565b9450614156868281151561414757fe5b8691900663ffffffff613bf016565b9350614168888363ffffffff613b5d16565b97506140ee565b61418261412a858863ffffffff61405f16565b94505b505050509392505050565b600090565b600061419f6141a7565b600201905090565b600290565b60a0604051908101604052806005906020820280388339509192915050565b60408051808201825290600290829080388339509192915050565b5080546000825560050290600052602060002090810190611dd69190614319565b828054828255906000526020600020908101928215614242579160200282015b82811115614242578251825591602001919060010190614227565b50611188929150614372565b5080546000825560050290600052602060002090810190611dd6919061438c565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106142b057805160ff1916838001178555614242565b828001600101855582156142425791820182811115614242578251825591602001919060010190614227565b828054828255906000526020600020908101928215614242579160200282015b8281111561424257825182556020909201916001909101906142fc565b61112f91905b8082111561118857805467ffffffffffffffff1916815560006001820181905560028201805463ffffffff1916905561435b60038301826143e5565b6143696004830160006143e5565b5060050161431f565b61112f91905b808211156111885760008155600101614378565b61112f91905b8082111561118857805463ffffffff1916815560006001820181905560028201805467ffffffffffffffff191690556143ce6003830182614403565b6143dc600483016000614403565b50600501614392565b5080546000825590600052602060002090810190611dd69190614372565b50805460018160011615610100020316600290046000825580601f106144295750611dd6565b601f016020900490600052602060002090810190611dd69190614372565b600061445282613c11565b151561445d57600080fd5b610a656144686141a7565b8390600a0a63ffffffff61405f165600a165627a7a723058202342b88ad61b0780c18df5bad6bf46006e8ba44f4e4efd9edf7cf615b579c9400029", + "sourceMap": "667:16186:5:-;;;487:1:41;657:51;;1916:983:5;8:9:-1;5:2;;;30:1;27;20:12;5:2;1916:983:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;123:7:37;:18;;;567:5:45;:18;;-1:-1:-1;;;;;;567:18:45;575:10;567:18;;;1916:983:5;;;;;;;;;;;;;;;-1:-1:-1;;;;;2254:26:5;;;;2246:35;;;;;;-1:-1:-1;;;;;2299:20:5;;;;2291:29;;;;;;2338:23;:11;:21;;;;;;:23;:::i;:::-;:58;;;;-1:-1:-1;2393:3:5;2365:25;:11;:23;;;;;;:25;:::i;:::-;:31;2338:58;2330:67;;;;;;;;2415:33;:21;:31;;;;;;:33;:::i;:::-;:78;;;;-1:-1:-1;2490:3:5;2452:35;:21;:33;;;;;;:35;:::i;:::-;:41;2415:78;2407:87;;;;;;;;-1:-1:-1;;;;;2512:19:5;;;;2504:28;;;;;;-1:-1:-1;;;;;2550:19:5;;;;2542:28;;;;;;-1:-1:-1;;;;;2588:20:5;;;;2580:29;;;;;;2620:39;2636:6;2644:14;2620:15;;;;:39;:::i;:::-;2670:5;:23;;-1:-1:-1;;;;;;2670:23:5;;;-1:-1:-1;;;;;2670:23:5;;;;;;;2703:11;:33;;;;;;;;;;;;;;2746:10;:24;;;;2780:4;:12;;;;;;;;;;;;;;2802:20;:44;2856:4;:12;;;;;;;;;;;;;;-1:-1:-1;2878:14:5;;;;;;;;;;;;;;-1:-1:-1;667:16186:5;;-1:-1:-1;;667:16186: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;4661:219:5:-;4759:1;4750:10;;4742:19;;;;;;-1:-1:-1;;;;;4779:28:5;;;;4771:37;;;;;;4819:5;:14;;;;4843:13;:30;;-1:-1:-1;;;;;;4843:30:5;-1:-1:-1;;;;;4843:30:5;;;;;;;;;4661: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:16186:5:-;;;;;;;", + "deployedSourceMap": "667:16186:5:-;;;;;;;;-1:-1:-1;;;667:16186:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12072:654;;;;;;;;;;14257:135;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14257: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;;;;;;;;;;;;;;4450:205;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4450:205:5;;;;;;;;;;;;;;;;;;;;;;;;;;;15427:310;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;15427:310:5;;;;;;;;;;;;;;;;;;;;;3105:388;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3105: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;3105:388:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3105: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;3105:388:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3499:359;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3499: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;3499: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;3499:359:5;;;;;;;;;;;;;;;;;;;;;;;1050:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1050:32:5;;;;16080:240;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16080:240:5;;;;3001:98;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3001:98:5;;;;13968:81;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13968: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;;;;14140:111:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14140: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;14140:111:5;;;;;;;;;;;;;;;;;1088:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1088:28:5;;;;16463:130;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16463:130:5;;;;1001:111:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1001:111:45;;;;2905:90:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2905: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;;;;14398:844;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14398:844: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;14398:844:5;;;;;;;;;;;;;;;;238:20:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:45;;;;14055:79:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14055:79:5;;;;999:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;999:17:5;;;;16326:131;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16326:131:5;;;;3864:147;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3864:147:5;;;;;;;;;;;;;;;;;;;;;;;948:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;948:20:5;;;;15248:173;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;15248:173:5;;;;;;;;;;;84:18:-1;;64:39;;15248:173:5;;;;;;;;52:2:-1;8:100;;5087:1344:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5087:1344:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4097:347;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4097:347:5;;;;15743:331;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15743:331:5;;;;1250:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1250:29:5;;;;;4886:126;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4886: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;;;892:20:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;892:20:5;;;;12072:654;12312:10;12375:22;;:::i;:::-;12436:18;;:::i;:::-;1128:14:41;;487:1;1128:39;1120:48;;;;;;584:1;1174:40;;16790:14:5;:12;:14::i;:::-;16782:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12216:6;12181:31;:29;:31::i;:::-;:41;12177:124;;12246:5;;:29;;;-1:-1:-1;;;;;12246:29:5;;;;;;;;;;-1:-1:-1;;;;;;;12246:5:5;;:21;;:29;;;;;;;;;;;;;;-1:-1:-1;12246:5:5;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;12246:29:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12246:29:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12246:29:5;-1:-1:-1;;;;;12246:43:5;;;12238:52;;;;;;12342:22;:20;:22::i;:::-;12311:53;;;12400:26;12411:6;12419;12400:10;:26::i;:::-;12464:10;;;12476;;;12375:51;;-1:-1:-1;12457:30:5;;:6;:30::i;:::-;12436:51;;12498:25;12511:3;12516:6;12498:12;:25::i;:::-;12533:62;12551:7;12560:3;12565:6;12572:5;12565:13;;;;;;;;;;;;;;;;;;:21;:13;;;;;:21;;;;12588:6;12533:17;:62::i;:::-;12605:37;12621:7;12630:3;12635:6;12605:15;:37::i;:::-;12684:10;;;12696;;;;12708;;;;;12658:61;;;;;;;;;;;;;;;;;;;;;;12672:10;;12658:61;;;;;;;;;-1:-1:-1;;487:1:41;1227:14;:38;-1:-1:-1;;;12072:654:5:o;14257:135::-;14329:4;14352:33;:14;14377:7;14352:33;:24;:33;:::i;:::-;14345:40;14257:135;-1:-1:-1;;14257:135:5:o;918:24::-;;;-1:-1:-1;;;;;918:24:5;;:::o;4450:205::-;4542:10;:17;4504:10;;;;4542:22;;:36;;;4569:9;:7;:9::i;:::-;4568:10;4542:36;4538:49;;;4580:7;;4538:49;-1:-1:-1;;4627:10:5;:17;-1:-1:-1;;4627:21:5;4605:4;4450:205;;;:::o;15427:310::-;15487:10;15510;15522;15598:19;15536:22;:20;:22::i;:::-;15509:49;;;;15574:5;15573:6;15569:19;;;15581:7;;15569:19;15620:6;:13;;15627:5;;15620:13;;;;;;;;;;;;;;;;15598:35;;15651:79;15679:5;15686;:22;;15651:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15710:5;:19;;15651:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:27;:79::i;:::-;15644:86;;15427:310;;;;;;;:::o;3105:388::-;3160:6;3168:4;3174:6;3182;3190:5;3197;3235:10;3246:5;3235:17;;;;;;;;;;;;;;;;;;;;;;;:25;3274:10;:17;;3235:25;;;;;3285:5;;3274:17;;;;;;;;;;;;;;;;:32;;;3320:10;3331:5;3320:17;;;;;;;;;;;;;;;;;;:29;:17;;;;;:29;;3363:10;:17;;3320:29;;;;;3374:5;;3363:17;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;3411:10;3422:5;3411:17;;;;;;;;;;;;;;;;;;;;:22;;3447:10;3458:5;3447:17;;;;;;;;;;;;;;;;;;;;:29;;3214:272;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3214:272:5;;;;;;;;;;;;;-1:-1:-1;;3214:272:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3214:272:5;;-1:-1:-1;3214:272:5;-1:-1:-1;3214:272:5;;;-1:-1:-1;3214:272:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3105:388;;;;;;;:::o;3499:359::-;3550:6;3558;3566:4;3572:6;3580;3588;3627;3634:5;3627:13;;;;;;;;;;;;;;;;;;;;;;;:23;3664:6;:13;;3627:23;;;;;3671:5;;3664:13;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;3699:6;3706:5;3699:13;;;;;;;;;;;;;;;;;;;;:22;;;3735:6;3742:5;3735:13;;;;;;;;;;;;;;;;;;:21;:13;;;;;:21;;3770:6;:13;;3735:21;;;;;3777:5;;3770:13;;;;;;;;;;;;;;;;:30;;3814:6;3821:5;3814:13;;;;;;;;;;;;;;;;;;;;:27;;3606:245;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3499:359;;;;;;;:::o;1050:32::-;;;;:::o;16080:240::-;719:5:45;;16170:11:5;;-1:-1:-1;;;;;719:5:45;705:10;:19;697:28;;;;;;16149:9:5;:7;:9::i;:::-;16141:18;;;;;;;;16184:5;;:30;;;;;;16208:4;16184:30;;;;;;-1:-1:-1;;;;;16184:5:5;;;;:15;;:30;;;;;;;;;;;;;;;-1:-1:-1;16184:5:5;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;16184:30:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16184:30:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16184:30:5;16233:5;;;16248;16233:29;;;;;;-1:-1:-1;;;;;16248:5:5;;;16233:29;;;;;;;;;;;;16184:30;;-1:-1:-1;16233:5:5;;;:14;;:29;;;;;16184:30;;16233:29;;;;;;;;-1:-1:-1;16233:5:5;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;16233:29:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16233:29:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16233:29:5;16225:38;;;;;;;;16299:5;;16279:34;;;;;;;;-1:-1:-1;;;;;16299:5:5;;;;16279:34;;;;;;;;;16080:240;:::o;3001:98::-;3075:10;:17;3001:98;;:::o;13968:81::-;14037:5;;-1:-1:-1;;;;;14037:5:5;;13968:81::o;974:19::-;;;-1:-1:-1;;;;;974:19:5;;:::o;53::37:-;;;;:::o;14140:111:5:-;14195:9;14223:21;:14;:19;:21::i;:::-;14216:28;;14140:111;:::o;1088:28::-;;;-1:-1:-1;;;;;1088:28:5;;:::o;16463:130::-;16508:4;16527:10;16541:22;:20;:22::i;:::-;16524:39;;;16581:5;16574:12;;16463: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;2905:90:5:-;2975:6;:13;2905:90;:::o;1122:19::-;;;-1:-1:-1;;;;;1122:19:5;;:::o;1223:21::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1223:21:5;;;;;;;;;;:::o;1022:22::-;;;;:::o;14398:844::-;14468:7;;:::i;:::-;14488:10;14500;14514:22;:20;:22::i;:::-;14487:49;;;;14552:5;14551:6;14547:19;;;14559:7;;14547:19;14615:6;14580:31;:29;:31::i;:::-;:41;14576:159;;14641:5;;:29;;;-1:-1:-1;;;;;14641:29:5;;;;;;;;;;-1:-1:-1;;;;;;;14641:5:5;;:21;;:29;;;;;;;;;;;;;;-1:-1:-1;14641:5:5;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;14641:29:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14641:29:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14641:29:5;-1:-1:-1;;;;;14641:43:5;;14637:88;;;14704:7;;14637:88;14752:483;14792:6;14812;14832;14839:5;14832:13;;;;;;;;;;;;;;;;;;;;:22;;;14868:6;14875:5;14868:13;;;;;;;;;;;;;;;;;;;;:30;;14752:483;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14912:6;14919:5;14912:13;;;;;;;;;;;;;;;;;;;;:27;;14752:483;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14953:5;;;;;;;;;-1:-1:-1;;;;;14953:5:5;-1:-1:-1;;;;;14953:9:5;;14963:6;14953:17;;;;;-1:-1:-1;;;14953:17:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14953:17:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14953:17:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14953:17:5;14984:5;;15008;;:16;;;;;;;;-1:-1:-1;;;;;15008:5:5;;;;:14;;:16;;;;;14953:17;;15008:16;;;;;;;;:5;;:16;;;5:2:-1;;;;30:1;27;20:12;5:2;15008:16:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15008:16:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15008:16:5;15003:22;;15074:6;15039:31;:29;:31::i;:::-;:41;:142;;15139:5;;;;;;;;;-1:-1:-1;;;;;15139:5:5;-1:-1:-1;;;;;15139:21:5;;15161:6;15139:29;;;;;-1:-1:-1;;;15139:29:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15139:29:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15139:29:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15139:29:5;15125:55;;;;;;;;-1:-1:-1;;;;;15125:53:5;;;;;;:55;;;;;15139:29;;15125:55;;;;;;;;;:53;:55;;;5:2:-1;;;;30:1;27;20:12;5:2;15125:55:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15125:55:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15125:55:5;15120:61;;15039:142;;;15099:2;15039:142;15195:5;;:30;;;;;;15219:4;15195:30;;;;;;-1:-1:-1;;;;;15195:5:5;;;;:15;;:30;;;;;;;;;;;;;;;-1:-1:-1;15195:5:5;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;15195:30:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15195:30:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15195:30:5;14752:26;:483::i;:::-;14745:490;;14398:844;;;;;;;:::o;238:20:45:-;;;-1:-1:-1;;;;;238:20:45;;:::o;14055:79:5:-;14123:4;;-1:-1:-1;;;;;14123:4:5;;14055:79::o;999:17::-;;;;:::o;16326:131::-;16389:6;:13;16366:4;;16389:18;;:61;;-1:-1:-1;16411:6:5;16418:13;;16447:3;;16411:6;-1:-1:-1;;16418:17:5;;;16411:25;;;;;;;;;;;;;;;;;;;:33;;;;;;:39;;16326:131;-1:-1:-1;16326:131:5:o;3864:147::-;3935:6;:13;3909:6;;3935:17;-1:-1:-1;3927:26:5;;;;;;3971:6;3978:13;;-1:-1:-1;;3978:17:5;;;3971:25;;;;;;;;;;;;;;;;;;;:33;;;;;;;3864:147;-1:-1:-1;3864:147:5:o;948:20::-;;;-1:-1:-1;;;;;948:20:5;;:::o;15248:173::-;15313:7;;:::i;:::-;15339:75;15362:11;15375:4;15381:10;;15393:20;;15339:22;:75::i;:::-;15332:82;15248:173;-1:-1:-1;;;15248:173:5:o;5087:1344::-;719:5:45;;5986:6:5;;-1:-1:-1;;;;;719:5:45;705:10;:19;697:28;;;;;;16640:6:5;:13;16656:1;-1:-1:-1;16636:82:5;;;16703:3;16681:6;16688:1;16681:9;;;;;;;;;;;;;;;;;;;;;;;:19;;;:25;16673:34;;;;;;5483:30;;;5475:39;;;;;;5532;;;;5524:48;;;;;;5644:43;;;;5636:52;;;;;;5786:1;5739:37;:48;5706:81;;5698:90;;;;;;5880:1;5839:31;:42;5806:75;;;5798:84;;;;;;5939:30;;;5931:39;;;;;;-1:-1:-1;5995:1:5;5981:125;5998:29;;;5981:125;;;6056:5;;-1:-1:-1;;;;;6056:5:5;:15;6072:18;;6091:1;6072:21;;;;;;;6056:38;;;;;;-1:-1:-1;;;6056:38:5;;;6072:21;;;;;;;;;6056:38;;;;;;;;;;6072:21;;-1:-1:-1;6056:38:5;;;;;;;-1:-1:-1;6056:38:5;;;;5:2:-1;;;;30:1;27;20:12;5:2;6056:38:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6056:38:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6056:38:5;6048:47;;;;;;;;6029:3;;5981:125;;;6116:89;6140:18;;6116:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6116:89:5;;;-1:-1:-1;;6116:89:5;;;;;;;;;;;;;;;6172:23;;6116:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6116:10:5;;-1:-1:-1;;;;;6116:89:5:i;:::-;6216:156;6244:22;;6216:156;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6216:156:5;;;-1:-1:-1;;6216:156:5;;;;;;;;;;;;;;;6280:37;;6216:156;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6216:156:5;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6331:31:5;;-1:-1:-1;6331:31:5;;-1:-1:-1;6331:31:5;;-1:-1:-1;6216:156:5;;6331:31;;;;6216:156;;-1:-1:-1;6216:14:5;;-1:-1:-1;;;;;6216:156:5:i;:::-;6383:41;6405:18;;6383:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6383:14:5;;:41;-1:-1:-1;;6383:41:5;:21;:41;;-1:-1:-1;;;6383:41:5:i;:::-;5087:1344;;;;;;;;;;;;;:::o;4097:347::-;4191:10;:17;4154:10;;;;4191:22;;:36;;;4218:9;:7;:9::i;:::-;4217:10;4191:36;4188:48;;;4229:7;;4188:48;-1:-1:-1;4254:4:5;4324:114;4338:10;:17;-1:-1:-1;;4338:21:5;4330:29;;:74;;;;-1:-1:-1;4370:10:5;:17;;4381:5;;4370:17;;;;;;;;;;;;;;;;;;;:34;;;;;;;;4363:3;:41;;4330:74;4324:114;;;4420:7;;;;;4324:114;;15743:331;15796:10;;;;15830:210;15850:6;:13;15846:17;;15830:210;;;15906:6;:9;;15913:1;;15906:9;;;;;;;;;;;;;;;;;;;15934:15;;15906:9;;-1:-1:-1;15953:3:5;15934:15;;;;:22;;;;:45;;-1:-1:-1;15960:13:5;;15976:3;15960:13;;;;;;:19;15934:45;15930:100;;;16007:1;16010:4;15999:16;;;;;;15930:100;15865:3;;;;;15830:210;;;16058:1;;-1:-1:-1;16058:1:5;;-1:-1:-1;15743: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;4886:126::-;719:5:45;;-1:-1:-1;;;;;719:5:45;705:10;:19;697:28;;;;;;16640:6:5;:13;16656:1;-1:-1:-1;16636:82:5;;;16703:3;16681:6;16688:1;16681:9;;;;;;;;;;;;;;;;;;;;;;;:19;;;:25;16673:34;;;;;;4991:13;;4967:38;;4983:6;;-1:-1:-1;;;;;4991:13:5;4967:15;:38::i;:::-;4886: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;892:20:5:-;;;-1:-1:-1;;;;;892:20:5;;:::o;319:78:15:-;381:14;319:78;:::o;12732:343:5:-;12885:5;;:21;;;;;;;;;;;;;;12803:265;;12847:4;;12885:21;;-1:-1:-1;;;;;12885:5:5;;;;:13;;:21;;;;;;;;;;;;;;;-1:-1:-1;12885:5:5;:21;;;5:2:-1;;;;30:1;27;20:12;5:2;12885:21:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12885:21:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12885:21:5;:66;;12949:1;12885:66;;;12909:5;;:29;;;-1:-1:-1;;;;;12909:29:5;;;;;;;;;;-1:-1:-1;;;;;12909:5:5;;;;:21;;:29;;;;;;;;;;;;;;;-1:-1:-1;12909:5:5;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;12909:29:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12909:29:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12909:29:5;12885:66;12973:5;;13001:11;;13027:4;;13045:13;;-1:-1:-1;;;;;12973:5:5;;;;13001:11;;;;13027:4;;;;13045:13;12803:30;:265::i;:::-;12732:343;;:::o;13081:351::-;13321:5;;:21;;;;;;;;;;;;;;13191:234;;13240:8;;13262:4;;13280:7;;13321:21;;-1:-1:-1;;;;;13321:5:5;;;;:13;;:21;;;;;;;;;;;;;;;-1:-1:-1;13321:5:5;:21;;;5:2:-1;;;;30:1;27;20:12;5:2;13321:21:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13321:21:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13321:21:5;:66;;13385:1;13321:66;;;13345:5;;:29;;;-1:-1:-1;;;;;13345:29:5;;;;;;;;;;-1:-1:-1;;;;;13345:5:5;;;;:21;;:29;;;;;;;;;;;;;;;-1:-1:-1;13345:5:5;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;13345:29:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13345:29:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13345:29:5;13321:66;13409:5;;-1:-1:-1;;;;;13409:5:5;13191:35;:234::i;:::-;13081:351;;;;:::o;13438:524::-;13544:31;:29;:31::i;:::-;13534:41;;13530:426;;;13591:4;;13633:7;;;;-1:-1:-1;;;;;13591:4:5;;;;:19;;13617:24;;:8;-1:-1:-1;13617:11:5;;;;;;:24;:15;:24;:::i;:::-;13655:11;;;13692:7;;;13643:10;;13655:11;13668:6;;13676:24;;13655:8;13697:1;13676:11;;:24;13702:11;;;;;13591:123;;;;;-1:-1:-1;;;13591:123:5;;;-1:-1:-1;;;;;13591:123:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13591:123:5;;;;;;;;;;;;5:2:-1;;;;30:1;27;20:12;5:2;13591:123:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13591:123:5;;;;;13530:426;;;13759:5;;:29;;;-1:-1:-1;;;;;13759:29:5;;;;;;;;;;-1:-1:-1;;;;;13759:5:5;;;;:21;;:29;;;;;;;;;;;;;;;-1:-1:-1;13759:5:5;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;13759:29:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13759:29:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13759:29:5;13807:4;;-1:-1:-1;;;;;13753:45:5;;;;;;13807:4;13814:24;13830:4;-1:-1:-1;13830:7:5;;;;;13814:8;13823:1;13814:11;;:24;13753:86;;;-1:-1:-1;;;13753:86:5;;;;;;-1:-1:-1;;;;;13753:86:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13753:86:5;;;;5:2:-1;;;;30:1;27;20:12;5:2;13753:86:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13753:86:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13753:86:5;13745:95;;;;;;;;13854:4;;13886:11;;;13923:7;;;-1:-1:-1;;;;;13854:4:5;;;;:19;;13874:10;;13899:6;;13907:24;;13886:8;-1:-1:-1;13907:11:5;;:24;13933:11;;;;;13854:91;;;;;-1:-1:-1;;;13854:91:5;;;-1:-1:-1;;;;;13854:91:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13854:91:5;;;;;;;-1:-1:-1;13854:91:5;;;;5:2:-1;;;;30:1;27;20:12;5:2;13854:91:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13854:91:5;;;;13530:426;13438:524;;;:::o;628:140:12:-;712:4;735:26;;;:17;;;;;:26;;;;;;;;;628:140::o;6332:337:15:-;6431:10;;6453:210;6474:16;:23;6470:1;:27;6453:210;;;6531:16;6548:1;6531:19;;;;;;;;;;;;;;;;;;;6522:28;;6518:135;;6578:13;6592:1;6578:16;;;;;;;;;;;;;;;;;;6570:24;;6518:135;;;6633:5;;6518:135;6499:3;;6453:210;;;6332:337;;;;;;:::o;774:111:12:-;836:9;864:8;:14;;857:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;774:111;;;:::o;1989:1980:15:-;2329:14;;:::i;:::-;2840:10;2367:218;2398:6;2418:13;2445;2472:12;2498:22;2534:13;2561:14;2367:17;:218::i;:::-;2359:227;;;;;;;;2628:118;;;;;;;;;;;;;;;;;;;;;;;;;;:5;;:26;;:118;;;;;;;;;;;;;;:5;:118;;;5:2:-1;;;;30:1;27;20:12;5:2;2628:118:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2628:118:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2628:118:15;2616:9;;;:130;;;2803:25;-1:-1:-1;2803:25:15;2795:34;;;;;;2862:9;;;;2853:52;;2873:16;2891:13;2853:8;:52::i;:::-;2840:65;;2959:1;2948:8;:12;:100;;3036:12;2948:100;;;2975:46;3012:8;2996:7;:11;:13;;;;;-1:-1:-1;;;2996:13:15;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2996:13:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2996:13:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2996:13:15;2975:12;;2996:24;;2975:46;:20;:46;:::i;:::-;2936:6;2943:1;2936:9;;;:112;;;;;3089:5;:33;3136:47;3158:24;3176:5;3158:7;:11;:13;;;;;-1:-1:-1;;;3158:13:15;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3158:13:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3158:13:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3158:13:15;;:24;:17;:24;:::i;:::-;3136:9;;;;;:21;:47::i;:::-;3197:13;3224:6;3231:1;3224:9;;;;3089:154;;;;;-1:-1:-1;;;3089:154:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3089:154:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3089:154:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3089:154:15;3077:166;;;3302:34;;3298:263;;;3479:9;;;;3364:138;;;;;;3486:1;3364:138;;;;;;;;;;;;;;;;;;;:5;;:26;;:138;;;;;3479:9;;3364:138;;;;;;;:5;:138;;;5:2:-1;;;;30:1;27;20:12;5:2;3364:138:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3364:138:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3364:138:15;3352:9;;;:150;3516:34;;;3298:263;3646:9;;;;;3599:121;;;;;;;;;;;;;;;;;;;;;;;;;;:5;;:33;;:121;;;;;3646:9;;3599:121;;;;;;;:5;:121;;;5:2:-1;;;;30:1;27;20:12;5:2;3599:121:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3599:121:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3599:121:15;3587:9;;;:133;;;3768:14;;:32;;-1:-1:-1;3786:9:15;;:14;3768:32;3764:130;;;3828:1;3816:13;;;:9;3843;;:13;;;3870:9;;;:13;3764:130;3952:9;;;;3934:28;;:13;;:17;:28::i;:::-;3922:9;;;:40;-1:-1:-1;3922:6:15;1989:1980;-1:-1:-1;;;;;;;;;;1989:1980:15:o;3975:265::-;4072:14;;:::i;:::-;4113:1;4102:8;:12;4098:63;;;4128:33;:11;4152:8;4128:33;:23;:33;:::i;:::-;4116:45;;4098:63;4189:1;4175:11;:15;4171:62;;;4204:29;:4;4221:11;4204:29;:16;:29;:::i;:::-;4192:9;;;:41;4171:62;3975:265;;;;;;:::o;6832:1641:5:-;6921:10;:17;7163:7;;6921:21;-1:-1:-1;6917:207:5;;;7087:17;;;;-1:-1:-1;;7087:21:5;;;7076:33;;;;;;;;;;;;;;;;;:36;;7052:10;:13;;7063:1;;7052:13;;;;;;;;;;;;;;;;;;;:21;;;:60;7044:69;;;;;;7134:13;7141:6;;7134:13;:::i;:::-;-1:-1:-1;7173:1:5;7158:1278;7180:10;:17;7176:1;:21;;;7158:1278;;;7256:13;;:30;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;:30;;7248:39;;;;;;7309:13;;:30;;:10;;:13;;;;;;;;;;;;;;;;;;;;;:16;;:30;;7301:39;;;;;;7362:13;;:30;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;;;:30;;7354:39;;;;;;7415:13;;:29;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;;;:29;;7407:38;;;;;;7467:13;;:29;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;;;:29;;7459:38;;;;;;7566:3;7547:10;7558:1;7547:13;;;;;;;;;;;;;;;;;;;;;;:16;:22;7539:31;;;;;;7611:10;7622:1;7611:13;;;;;;;;;;;;;;;;;;;;;;;:16;;7592:13;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;:35;7584:44;;;;;;7651:1;7647;:5;;;7643:93;;;7704:10;7715:1;7704:13;;;;;;;;;;;;;;;;;;;;;;:16;7680:17;;;;-1:-1:-1;;7691:5:5;;7680:17;;;;;;;;;;;;;;;;;;;;:20;;:40;;7672:49;;;;;;7788:28;:10;7799:1;7788:13;;;;;;;;;;;;;;;;;;;;;7802:1;7788:16;;;;;:26;:28::i;:::-;7780:37;;;;;;;;7858:7;:11;:13;;;;;-1:-1:-1;;;7858:13:5;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7858:13:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7858:13:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7858:13:5;7839;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;;;:32;7831:41;;;;;;7887:6;7899:315;;;;;;;;;7941:10;7952:1;7941:13;;;;;;;;;;;;;;;;;;;;;;;:16;7899:315;;;;7992:13;;7899:315;;;7992:10;;:13;;;;;;;;;;;;;;;;;;;8006:1;7992:16;;;;7899:315;;;;;;8037:10;8048:1;8037:13;;;;;;;;;;;;;;;;;;;;;8051:1;8037:16;;;;7899:315;;;;8087:10;8098:1;8087:13;;;;;;;;;;;;;;;;;;;;;;;:16;;;;;7899:315;;;;;;8140:13;;;8151:1;8140:13;;;;;;;;7899:315;;;;;;;8186:13;;;;;;;;;;7899:315;;;;;;;27:10:-1;;39:1;23:18;;;45:23;;;7887:328:5;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7887:328:5;;;-1:-1:-1;;7887:328:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;7887:328:5;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;8230:195;8294:1;8278:6;:13;;;;:17;8320:10;8331:1;8320:13;;;;;;;;;;;;;;;;;;;;;;:16;;;8361:13;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;;;8396:15;8230:24;:195::i;:::-;7199:3;;7158:1278;;;8451:15;;;;;;;6832:1641;;;:::o;10264:1802::-;10564:11;10589:6;10609:18;10647:7;11278:17;11403:24;10437:1;10421:6;:13;;;;:17;10417:109;;;10498:10;10509:1;10498:13;;;;;;;;;;;;;;;;;;;;:16;10462:6;10469:13;;-1:-1:-1;;10469:17:5;;;10462:25;;;;;;;;;;;;;;;;;;;:33;;;;;;:52;10454:61;;;;;;10536:17;10543:10;;10536:17;:::i;:::-;10578:1;10564:15;;10598:1;10589:10;;10630:1;10609:22;;10657:1;10647:11;;10642:1333;10664:10;:17;10660:1;:21;;;10642:1333;;;10740:13;;:31;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;:31;;10732:40;;;;;;10794:13;;:31;;:10;;:13;;;;;;;;;;;;;;;;;;;;;:16;;:31;;10786:40;;;;;;10848:13;;:31;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;;;:31;;10840:40;;;;;;10949:3;10930:10;10941:1;10930:13;;;;;;;;;;;;;;;;;;;;;;:16;:22;10922:31;;;;;;10994:10;11005:1;10994:13;;;;;;;;;;;;;;;;;;;;;;:16;10975:13;;:10;;:13;;;;;;;;;;;;;;;;;;;;;:16;;:35;10967:44;;;;;;11052:10;11063:1;11052:13;;;;;;;;;;;;;;;;;;;;;;;:16;;11033:13;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;;;:35;11025:44;;;;;;11092:1;11088;:5;;;11084:92;;;11144:10;11155:1;11144:13;;;;;;;;;;;;;;;;;;;;;;:16;11121:17;;;;-1:-1:-1;;11132:5:5;;11121:17;;;;;;;;;;;;;;;;;;;:20;;;:39;11113:48;;;;;;11234:28;:10;11245:1;11234:13;;;;;;;;;;;;;;;;;;;;;11248:1;11234:16;;:28;11226:37;;;;;;;;11298:46;11325:6;11333:7;11341:1;11333:10;;;;;;;;;;;;;;;;;;11298:46;;:20;:26;;:46;;;;;:::i;:::-;11278:66;;11367:22;11378:7;11386:1;11378:10;;;;;;;;;;;;;;;;;;11367:22;;:6;:10;;:22;;;;:::i;:::-;11358:31;;11430:50;11457:6;11465:7;11473:1;11477;11473:5;11465:14;;;;;;;;;11430:50;11403:77;;11503:26;11514:7;11522:1;11526;11522:5;11514:14;;;;;;;;;11503:26;11494:35;-1:-1:-1;11547:8:5;:1;11553;11547:8;:5;:8;:::i;:::-;11543:12;;11586:35;11604:10;11615:1;11604:13;;;;;;;;;;;;;;;;;;;;;;:16;;;11586:13;;:17;:35::i;:::-;11570:51;;11636:10;11652:311;;;;;;;;;11696:10;11707:1;11696:13;;;;;;;;;;;;;;;;;;;;;;;:16;11652:311;;;;11747:13;;11652:311;;;11747:10;;:13;;;;;;;;;;;;;;;;;;;11761:1;11747:16;;;;11652:311;;;;11801:10;11812:1;11801:13;;;;;;;;;;;;;;;;;;;;;11815:1;11801:16;;;;11652:311;;;;;;11861:10;11872:1;11861:13;;;;;;;;;;;;;;;;;;;;;11875:1;11861:16;;;;;;;;;11652:311;;;;;;;;;;;;;;;;;;;27:10:-1;;39:1;23:18;;;45:23;;;-1:-1;11636:328:5;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11636:328:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11636:328:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;11636:328:5;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;10683:3:5;;;;;-1:-1:-1;10642:1333:5;;-1:-1:-1;10642:1333:5;;12010:7;:11;:13;;;;;-1:-1:-1;;;12010:13:5;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12010:13:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12010:13:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12010:13:5;11993:30;;11985:39;;;;;;12040:19;;;;;;;10264: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;;4661:219:5;4759:1;4750:10;;4742:19;;;;;;-1:-1:-1;;;;;4779:28:5;;;;4771:37;;;;;;4819:5;:14;;;;4843:13;:30;;-1:-1:-1;;4843:30:5;-1:-1:-1;;;;;4843:30:5;;;;;;;;;4661: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;4246:1052:15:-;-1:-1:-1;;;;;4485:25:15;;;;4477:34;;;;;;-1:-1:-1;;;;;4529:19:15;;;;4521:28;;;;;;-1:-1:-1;;;;;4567:23:15;;;;4559:32;;;;;;-1:-1:-1;;;;;4609:27:15;;;;4601:36;;;;;;4652:7;;;;4662:1;-1:-1:-1;4652:37:15;;;;;4677:12;:10;:12::i;:::-;4667:22;;;4652:37;4648:102;;;-1:-1:-1;;;;;4713:25:15;;;;4705:34;;;;;;4764:7;;4774:1;-1:-1:-1;4760:181:15;;;4857:7;;4799:66;;;;;;-1:-1:-1;;;;;4799:66:15;;;;;;;;;;;;;;;;;;;;;;;:31;;;;;;:66;;;;;4857:7;;4799:66;;;;;;;;-1:-1:-1;4799:31:15;:66;;;5:2:-1;;;;30:1;27;20:12;5:2;4799:66:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4799:66:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4799:66:15;4791:75;;;;;;;;4921:7;;4888:41;;;;;;-1:-1:-1;;;;;4888:41:15;;;;;;;;;;;;;;;;:21;;;;;;:41;;;;;4921:7;;4888:41;;;;;;;;-1:-1:-1;4888:21:15;:41;;;5:2:-1;;;;30:1;27;20:12;5:2;4888:41:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4888:41:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4888:41:15;4880:50;;;;;;;;4955:7;;;;4965:1;-1:-1:-1;4951:341:15;;;4996:12;:10;:12::i;:::-;4986:22;;4982:300;;;5051:7;;;;5028:31;;-1:-1:-1;;;;;5028:22:15;;;:31;;;;;;;;;5051:7;5028:22;:31;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5028:31:15;4982:300;;;5165:7;;;;;5106:55;;;;;;5135:10;5106:55;;;;5155:4;5106:55;;;;;;5165:7;;-1:-1:-1;;;;;5106:28:15;;;;;:55;;;;;5165:7;5106:55;;;;;;-1:-1:-1;5106:28:15;:55;;;5:2:-1;;;;30:1;27;20:12;5:2;5106:55:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5106:55:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5106:55:15;:66;;5098:75;;;;;;5258:7;;;;;5199:67;;;;;;5231:10;5199:67;;;;-1:-1:-1;;;;;5199:67:15;;;;;;;;;;;;;;;;:31;;;;;;:67;;;;;;;;;;-1:-1:-1;5199:31:15;:67;;;5:2:-1;;;;30:1;27;20:12;5:2;5199:67:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5199:67:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5199:67:15;5191:76;;;;;;;5304:1022;-1:-1:-1;;;;;5511:19:15;;;;5503:28;;;;;;5549:11;;:16;;5541:25;;;;;;5584:11;;;;:16;;5576:25;;;;;;5633:7;;5619:11;;:21;5611:30;;;;;;5673:7;;;;;5659:11;;;;:21;5651:30;;;;;;5706:12;:10;:12::i;:::-;5696:22;;5692:86;;;5755:11;;;;5742:9;:24;;5734:33;;;;;;5802:12;:10;:12::i;:::-;5792:22;;5788:300;;-1:-1:-1;;;;;5838:25:15;;;;5830:34;;;;;;5945:24;5961:4;5966:1;5961:7;;5945:24;5886:55;;;;;;5915:10;5886:55;;;;5935:4;5886:55;;;;;;-1:-1:-1;;;;;5886:28:15;;;;;:55;;;;;;;;;;;;;;-1:-1:-1;5886:28:15;:55;;;5:2:-1;;;;30:1;27;20:12;5:2;5886:55:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5886:55:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5886:55:15;:83;;5878:92;;;;;;6067:7;;;;-1:-1:-1;;;;;5992:31:15;;;;;6024:10;;6044:4;;6051:24;;:8;-1:-1:-1;6051:11:15;;:24;5992:84;;;;;;-1:-1:-1;;;5992:84:15;;;-1:-1:-1;;;;;5992:84:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5992:84:15;;;;5:2:-1;;;;30:1;27;20:12;5:2;5992:84:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5992:84:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5992:84:15;5984:93;;;;;;;;6149:11;;6106:64;;;;;;6137:10;6106:64;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6106:30:15;;;;;:64;;;;;6149:11;;6106:64;;;;;;;-1:-1:-1;6106:30:15;:64;;;5:2:-1;;;;30:1;27;20:12;5:2;6106:64:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6106:64:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6106:64:15;6098:73;;;;;;;;6186:11;;;;6200:1;-1:-1:-1;6182:138:15;;;6231:12;:10;:12::i;:::-;6221:22;;6217:93;;;6283:11;;;;6263:32;;:10;;:32;;;;;;;;;6283:11;6263:10;:32;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;6217:93:15;5304:1022;;;;;;:::o;1060:116:44:-;1120:7;1142:8;;;;1135:16;;;;-1:-1:-1;1164:7:44;;;1060:116::o;403:540:15:-;659:11;707:1;691:13;:17;:50;;;;;740:1;724:13;:17;691:50;:82;;;;;772:1;757:12;:16;691:82;:143;;;;;821:13;815:2;:19;789:22;:45;;691:143;682:152;;859:12;:10;:12::i;:::-;849:22;;845:92;;;896:6;:30;;;;;906:14;924:2;906:20;896:30;887:39;;845:92;403:540;;;;;;;;;:::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;8645:1196:5:-;9104:24;;9233:6;8768:10;;;;:22;;;;-1:-1:-1;8782:8:5;;;;8768:22;8764:187;;;8844:13;;;8855:1;8844:13;;;;;;;;8806:6;:18;;;;;;;;;;;;;;;;;;;;;;:35;;:51;;;;;;;;;;;;:::i;:::-;-1:-1:-1;8906:13:5;;;8917:1;8906:13;;;;;;;;8871:6;:18;;;;;;;;;;;;;;;;;;;;;;:32;;:48;;;;;;;;;;;;:::i;8764:187::-;8976:22;;8969:29;;;;;8961:38;;;;;;9017:11;;;;;;;;9009:20;;;;;;9047:9;;;:14;9039:23;;;;;;9080:7;;;:12;9072:21;;;;;;9158:1;9142:17;9143:11;;;9142:17;;9131:29;;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;9131:29:5;-1:-1:-1;9104:56:5;-1:-1:-1;9221:1:5;9205:17;9206:11;;;9205:17;;9194:29;;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;9194:29:5;;9170:53;;9242:1;9233:10;;9254:470;9269:3;9261:11;;:5;:11;;;9254:470;;;9323:38;:15;9339:5;9347:1;9339:9;9323:26;;;;;;;;;;;;;;;;;;;;:36;:38::i;:::-;9315:47;;;;;;;;9413:7;:11;:13;;;;;-1:-1:-1;;;9413:13:5;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9413:13:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9413:13:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9413:13:5;9384:26;;:15;;:26;9408:1;9400:9;;9384:26;;;;;;;;;;;;;;;;;:42;9376:51;;;;;;9480:1;9476;:5;9472:95;;;9529:15;9545:5;9529:22;;;;;;;;;;;;;;;;;;;;9509:10;9524:1;9520;:5;9509:17;;;;;;;;;;;;;;;;;;;:42;9501:51;;;;;;9597:15;9613:5;9597:22;;;;;;;;;;;;;;;;;;;;9581:10;9592:1;9581:13;;;;;;;;;;;;;;;;;;:38;9646:26;;:15;;:26;9670:1;9662:9;;9646:26;;;;;;;;;;;;;;;;9633:7;9641:1;9633:10;;;;;;;;;;;;;;;;;;:39;9712:1;9703:10;;;;;9686:3;;9254:470;;;9772:10;9734:6;9741:10;9734:18;;;;;;;;;;;;;;;;;;;;;;:35;;:48;;;;;;;;;;;;:::i;:::-;;9827:7;9792:6;9799:10;9792:18;;;;;;;;;;;;;;;;;;;;;;:32;;:42;;;;;;;;;;;;:::i;:::-;;8645: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:16186:5:-;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;667:16186:5;;;-1:-1:-1;;667:16186:5:o;:::-;;;;;;;;;;;;;;;105:10:-1;667:16186:5;88:34:-1;-1:-1;667:16186:5;;;-1:-1:-1;;667:16186:5:o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;667:16186:5;;;-1:-1:-1;667:16186:5;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;667:16186:5;;;-1:-1:-1;;667:16186:5;;;;;;;;;;-1:-1:-1;;667:16186:5;;;;;;;-1:-1:-1;667:16186:5;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;667:16186:5;;;-1:-1:-1;;667:16186:5;;;;;;;;;;-1:-1:-1;;667:16186:5;;;;;;;-1:-1:-1;667:16186: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 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\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.getTokenAddress(method) == address(0)) {\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 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", + "sourcePath": "/home/circleci/code/contracts/crowdsale/W12Crowdsale.sol", "ast": { - "absolutePath": "/home/circleci/code/contracts/W12Crowdsale.sol", + "absolutePath": "/home/circleci/code/contracts/crowdsale/W12Crowdsale.sol", "exportedSymbols": { "W12Crowdsale": [ - 1809 + 3168 ] }, - "id": 1810, + "id": 3169, "nodeType": "SourceUnit", "nodes": [ { - "id": 66, + "id": 1243, "literals": [ "solidity", "^", @@ -716,115 +821,159 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:1" + "src": "0:24:5" }, { "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 67, + "id": 1244, "nodeType": "ImportDirective", - "scope": 1810, - "sourceUnit": 6941, - "src": "26:63:1", + "scope": 3169, + "sourceUnit": 9689, + "src": "26:63:5", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "openzeppelin-solidity/contracts/ReentrancyGuard.sol", "file": "openzeppelin-solidity/contracts/ReentrancyGuard.sol", - "id": 68, + "id": 1245, "nodeType": "ImportDirective", - "scope": 1810, - "sourceUnit": 6691, - "src": "90:61:1", + "scope": 3169, + "sourceUnit": 9332, + "src": "90:61:5", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 69, + "id": 1246, + "nodeType": "ImportDirective", + "scope": 3169, + "sourceUnit": 9603, + "src": "152:59:5", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", + "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", + "id": 1247, + "nodeType": "ImportDirective", + "scope": 3169, + "sourceUnit": 9766, + "src": "212:63:5", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/DetailedERC20.sol", + "file": "openzeppelin-solidity/contracts/token/ERC20/DetailedERC20.sol", + "id": 1248, "nodeType": "ImportDirective", - "scope": 1810, - "sourceUnit": 6855, - "src": "152:59:1", + "scope": 3169, + "sourceUnit": 9723, + "src": "276:71:5", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "solidity-bytes-utils/contracts/BytesLib.sol", "file": "solidity-bytes-utils/contracts/BytesLib.sol", - "id": 70, + "id": 1249, "nodeType": "ImportDirective", - "scope": 1810, - "sourceUnit": 7280, - "src": "212:53:1", + "scope": 3169, + "sourceUnit": 10028, + "src": "348:53:5", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "id": 71, + "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Crowdsale.sol", + "file": "./IW12Crowdsale.sol", + "id": 1250, "nodeType": "ImportDirective", - "scope": 1810, - "sourceUnit": 7018, - "src": "266:63:1", + "scope": 3169, + "sourceUnit": 1205, + "src": "402:29:5", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/home/circleci/code/contracts/interfaces/IW12Crowdsale.sol", - "file": "./interfaces/IW12Crowdsale.sol", - "id": 72, + "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Fund.sol", + "file": "./IW12Fund.sol", + "id": 1251, "nodeType": "ImportDirective", - "scope": 1810, - "sourceUnit": 4427, - "src": "330:40:1", + "scope": 3169, + "sourceUnit": 1242, + "src": "432:24:5", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/home/circleci/code/contracts/interfaces/IW12Fund.sol", - "file": "./interfaces/IW12Fund.sol", - "id": 73, + "absolutePath": "/home/circleci/code/contracts/rates/IRates.sol", + "file": "../rates/IRates.sol", + "id": 1252, "nodeType": "ImportDirective", - "scope": 1810, - "sourceUnit": 4485, - "src": "371:35:1", + "scope": 3169, + "sourceUnit": 7016, + "src": "457:29:5", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/libs/Percent.sol", - "file": "./libs/Percent.sol", - "id": 74, + "file": "../libs/Percent.sol", + "id": 1253, + "nodeType": "ImportDirective", + "scope": 3169, + "sourceUnit": 5104, + "src": "487:29:5", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/libs/PaymentMethods.sol", + "file": "../libs/PaymentMethods.sol", + "id": 1254, + "nodeType": "ImportDirective", + "scope": 3169, + "sourceUnit": 4959, + "src": "517:36:5", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/libs/PurchaseProcessing.sol", + "file": "../libs/PurchaseProcessing.sol", + "id": 1255, "nodeType": "ImportDirective", - "scope": 1810, - "sourceUnit": 4632, - "src": "407:28:1", + "scope": 3169, + "sourceUnit": 5855, + "src": "554:40:5", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/versioning/Versionable.sol", - "file": "./versioning/Versionable.sol", - "id": 75, + "file": "../versioning/Versionable.sol", + "id": 1256, "nodeType": "ImportDirective", - "scope": 1810, - "sourceUnit": 6510, - "src": "436:38:1", + "scope": 3169, + "sourceUnit": 9071, + "src": "595:39:5", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/home/circleci/code/contracts/token/WToken.sol", - "file": "./token/WToken.sol", - "id": 76, + "absolutePath": "/home/circleci/code/contracts/token/IWToken.sol", + "file": "../token/IWToken.sol", + "id": 1257, "nodeType": "ImportDirective", - "scope": 1810, - "sourceUnit": 5926, - "src": "475:28:1", + "scope": 3169, + "sourceUnit": 7631, + "src": "635:30:5", "symbolAliases": [], "unitAlias": "" }, @@ -834,116 +983,116 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 77, + "id": 1258, "name": "Versionable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6509, - "src": "530:11:1", + "referencedDeclaration": 9070, + "src": "692:11:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Versionable_$6509", + "typeIdentifier": "t_contract$_Versionable_$9070", "typeString": "contract Versionable" } }, - "id": 78, + "id": 1259, "nodeType": "InheritanceSpecifier", - "src": "530:11:1" + "src": "692:11:5" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 79, + "id": 1260, "name": "IW12Crowdsale", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4426, - "src": "543:13:1", + "referencedDeclaration": 1204, + "src": "705:13:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } }, - "id": 80, + "id": 1261, "nodeType": "InheritanceSpecifier", - "src": "543:13:1" + "src": "705:13:5" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 81, + "id": 1262, "name": "Ownable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6940, - "src": "558:7:1", + "referencedDeclaration": 9688, + "src": "720:7:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$6940", + "typeIdentifier": "t_contract$_Ownable_$9688", "typeString": "contract Ownable" } }, - "id": 82, + "id": 1263, "nodeType": "InheritanceSpecifier", - "src": "558:7:1" + "src": "720:7:5" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 83, + "id": 1264, "name": "ReentrancyGuard", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6690, - "src": "567:15:1", + "referencedDeclaration": 9331, + "src": "729:15:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_ReentrancyGuard_$6690", + "typeIdentifier": "t_contract$_ReentrancyGuard_$9331", "typeString": "contract ReentrancyGuard" } }, - "id": 84, + "id": 1265, "nodeType": "InheritanceSpecifier", - "src": "567:15:1" + "src": "729:15:5" } ], "contractDependencies": [ - 4426, - 6509, - 6690, - 6940 + 1204, + 9070, + 9331, + 9688 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 1809, + "id": 3168, "linearizedBaseContracts": [ - 1809, - 6690, - 6940, - 4426, - 6509 + 3168, + 9331, + 9688, + 1204, + 9070 ], "name": "W12Crowdsale", "nodeType": "ContractDefinition", "nodes": [ { - "id": 87, + "id": 1268, "libraryName": { "contractScope": null, - "id": 85, + "id": 1266, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6854, - "src": "595:8:1", + "referencedDeclaration": 9602, + "src": "757:8:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$6854", + "typeIdentifier": "t_contract$_SafeMath_$9602", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "589:24:1", + "src": "751:24:5", "typeName": { - "id": 86, + "id": 1267, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "608:4:1", + "src": "770:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -951,26 +1100,26 @@ } }, { - "id": 90, + "id": 1271, "libraryName": { "contractScope": null, - "id": 88, + "id": 1269, "name": "Percent", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4631, - "src": "624:7:1", + "referencedDeclaration": 5103, + "src": "786:7:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Percent_$4631", + "typeIdentifier": "t_contract$_Percent_$5103", "typeString": "library Percent" } }, "nodeType": "UsingForDirective", - "src": "618:23:1", + "src": "780:23:5", "typeName": { - "id": 89, + "id": 1270, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "636:4:1", + "src": "798:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -978,43 +1127,418 @@ } }, { - "id": 93, + "id": 1274, "libraryName": { "contractScope": null, - "id": 91, + "id": 1272, "name": "BytesLib", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7279, - "src": "652:8:1", + "referencedDeclaration": 10027, + "src": "814:8:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_BytesLib_$7279", + "typeIdentifier": "t_contract$_BytesLib_$10027", "typeString": "library BytesLib" } }, "nodeType": "UsingForDirective", - "src": "646:25:1", + "src": "808:25:5", "typeName": { - "id": 92, + "id": 1273, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "665:5:1", + "src": "827:5:5", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } } }, + { + "id": 1277, + "libraryName": { + "contractScope": null, + "id": 1275, + "name": "PaymentMethods", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4958, + "src": "844:14:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_PaymentMethods_$4958", + "typeString": "library PaymentMethods" + } + }, + "nodeType": "UsingForDirective", + "src": "838:48:5", + "typeName": { + "contractScope": null, + "id": 1276, + "name": "PaymentMethods.Methods", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4851, + "src": "863:22:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Methods_$4851_storage_ptr", + "typeString": "struct PaymentMethods.Methods" + } + } + }, + { + "constant": false, + "id": 1279, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 3168, + "src": "892:20:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" + }, + "typeName": { + "contractScope": null, + "id": 1278, + "name": "IWToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7630, + "src": "892:7:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 1281, + "name": "originToken", + "nodeType": "VariableDeclaration", + "scope": 3168, + "src": "918:24:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$9765", + "typeString": "contract ERC20" + }, + "typeName": { + "contractScope": null, + "id": 1280, + "name": "ERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9765, + "src": "918:5:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$9765", + "typeString": "contract ERC20" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 1283, + "name": "fund", + "nodeType": "VariableDeclaration", + "scope": 3168, + "src": "948:20:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1241", + "typeString": "contract IW12Fund" + }, + "typeName": { + "contractScope": null, + "id": 1282, + "name": "IW12Fund", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1241, + "src": "948:8:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1241", + "typeString": "contract IW12Fund" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 1285, + "name": "rates", + "nodeType": "VariableDeclaration", + "scope": 3168, + "src": "974:19:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + }, + "typeName": { + "contractScope": null, + "id": 1284, + "name": "IRates", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7015, + "src": "974:6:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 1287, + "name": "price", + "nodeType": "VariableDeclaration", + "scope": 3168, + "src": "999:17:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1286, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "999:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 1289, + "name": "serviceFee", + "nodeType": "VariableDeclaration", + "scope": 3168, + "src": "1022:22:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1288, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1022:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 1291, + "name": "WTokenSaleFeePercent", + "nodeType": "VariableDeclaration", + "scope": 3168, + "src": "1050:32:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1290, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1050:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 1293, + "name": "serviceWallet", + "nodeType": "VariableDeclaration", + "scope": 3168, + "src": "1088:28:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1292, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1088:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 1295, + "name": "swap", + "nodeType": "VariableDeclaration", + "scope": 3168, + "src": "1122:19:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1294, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1122:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 1297, + "name": "paymentMethods", + "nodeType": "VariableDeclaration", + "scope": 3168, + "src": "1179:37:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Methods_$4851_storage", + "typeString": "struct PaymentMethods.Methods" + }, + "typeName": { + "contractScope": null, + "id": 1296, + "name": "PaymentMethods.Methods", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4851, + "src": "1179:22:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Methods_$4851_storage_ptr", + "typeString": "struct PaymentMethods.Methods" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1300, + "name": "stages", + "nodeType": "VariableDeclaration", + "scope": 3168, + "src": "1223:21:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", + "typeString": "struct W12Crowdsale.Stage[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 1298, + "name": "Stage", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1318, + "src": "1223:5:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Stage_$1318_storage_ptr", + "typeString": "struct W12Crowdsale.Stage" + } + }, + "id": 1299, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1223:7:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage_ptr", + "typeString": "struct W12Crowdsale.Stage[]" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 1303, + "name": "milestones", + "nodeType": "VariableDeclaration", + "scope": 3168, + "src": "1250:29:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Milestone_$1331_storage_$dyn_storage", + "typeString": "struct W12Crowdsale.Milestone[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 1301, + "name": "Milestone", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1331, + "src": "1250:9:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Milestone_$1331_storage_ptr", + "typeString": "struct W12Crowdsale.Milestone" + } + }, + "id": 1302, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1250:11:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Milestone_$1331_storage_$dyn_storage_ptr", + "typeString": "struct W12Crowdsale.Milestone[]" + } + }, + "value": null, + "visibility": "public" + }, { "canonicalName": "W12Crowdsale.Stage", - "id": 108, + "id": 1318, "members": [ { "constant": false, - "id": 95, + "id": 1305, "name": "startDate", "nodeType": "VariableDeclaration", - "scope": 108, - "src": "700:16:1", + "scope": 1318, + "src": "1309:16:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1022,10 +1546,10 @@ "typeString": "uint32" }, "typeName": { - "id": 94, + "id": 1304, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "700:6:1", + "src": "1309:6:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -1036,11 +1560,11 @@ }, { "constant": false, - "id": 97, + "id": 1307, "name": "endDate", "nodeType": "VariableDeclaration", - "scope": 108, - "src": "726:14:1", + "scope": 1318, + "src": "1335:14:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1048,10 +1572,10 @@ "typeString": "uint32" }, "typeName": { - "id": 96, + "id": 1306, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "726:6:1", + "src": "1335:6:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -1062,11 +1586,11 @@ }, { "constant": false, - "id": 99, + "id": 1309, "name": "discount", "nodeType": "VariableDeclaration", - "scope": 108, - "src": "750:13:1", + "scope": 1318, + "src": "1359:13:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1074,10 +1598,10 @@ "typeString": "uint256" }, "typeName": { - "id": 98, + "id": 1308, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "750:4:1", + "src": "1359:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1088,11 +1612,11 @@ }, { "constant": false, - "id": 101, + "id": 1311, "name": "vesting", "nodeType": "VariableDeclaration", - "scope": 108, - "src": "773:14:1", + "scope": 1318, + "src": "1382:14:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1100,10 +1624,10 @@ "typeString": "uint32" }, "typeName": { - "id": 100, + "id": 1310, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "773:6:1", + "src": "1382:6:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -1114,11 +1638,11 @@ }, { "constant": false, - "id": 104, + "id": 1314, "name": "volumeBoundaries", "nodeType": "VariableDeclaration", - "scope": 108, - "src": "797:23:1", + "scope": 1318, + "src": "1406:23:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1127,19 +1651,19 @@ }, "typeName": { "baseType": { - "id": 102, + "id": 1312, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "797:4:1", + "src": "1406:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 103, + "id": 1313, "length": null, "nodeType": "ArrayTypeName", - "src": "797:6:1", + "src": "1406:6:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -1150,11 +1674,11 @@ }, { "constant": false, - "id": 107, + "id": 1317, "name": "volumeBonuses", "nodeType": "VariableDeclaration", - "scope": 108, - "src": "830:20:1", + "scope": 1318, + "src": "1439:20:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1163,19 +1687,19 @@ }, "typeName": { "baseType": { - "id": 105, + "id": 1315, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "830:4:1", + "src": "1439:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 106, + "id": 1316, "length": null, "nodeType": "ArrayTypeName", - "src": "830:6:1", + "src": "1439:6:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -1187,21 +1711,21 @@ ], "name": "Stage", "nodeType": "StructDefinition", - "scope": 1809, - "src": "677:180:1", + "scope": 3168, + "src": "1286:180:5", "visibility": "public" }, { "canonicalName": "W12Crowdsale.Milestone", - "id": 121, + "id": 1331, "members": [ { "constant": false, - "id": 110, + "id": 1320, "name": "endDate", "nodeType": "VariableDeclaration", - "scope": 121, - "src": "890:14:1", + "scope": 1331, + "src": "1499:14:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1209,10 +1733,10 @@ "typeString": "uint32" }, "typeName": { - "id": 109, + "id": 1319, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "890:6:1", + "src": "1499:6:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -1223,11 +1747,11 @@ }, { "constant": false, - "id": 112, + "id": 1322, "name": "tranchePercent", "nodeType": "VariableDeclaration", - "scope": 121, - "src": "914:20:1", + "scope": 1331, + "src": "1523:19:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1235,10 +1759,10 @@ "typeString": "uint256" }, "typeName": { - "id": 111, + "id": 1321, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "914:4:1", + "src": "1523:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1249,11 +1773,11 @@ }, { "constant": false, - "id": 114, + "id": 1324, "name": "voteEndDate", "nodeType": "VariableDeclaration", - "scope": 121, - "src": "944:18:1", + "scope": 1331, + "src": "1552:18:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1261,10 +1785,10 @@ "typeString": "uint32" }, "typeName": { - "id": 113, + "id": 1323, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "944:6:1", + "src": "1552:6:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -1275,11 +1799,11 @@ }, { "constant": false, - "id": 116, + "id": 1326, "name": "withdrawalWindow", "nodeType": "VariableDeclaration", - "scope": 121, - "src": "972:23:1", + "scope": 1331, + "src": "1580:23:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1287,10 +1811,10 @@ "typeString": "uint32" }, "typeName": { - "id": 115, + "id": 1325, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "972:6:1", + "src": "1580:6:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -1301,11 +1825,11 @@ }, { "constant": false, - "id": 118, + "id": 1328, "name": "name", "nodeType": "VariableDeclaration", - "scope": 121, - "src": "1005:10:1", + "scope": 1331, + "src": "1613:10:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1313,10 +1837,10 @@ "typeString": "bytes" }, "typeName": { - "id": 117, + "id": 1327, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1005:5:1", + "src": "1613:5:5", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1327,11 +1851,11 @@ }, { "constant": false, - "id": 120, + "id": 1330, "name": "description", "nodeType": "VariableDeclaration", - "scope": 121, - "src": "1025:17:1", + "scope": 1331, + "src": "1633:17:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1339,10 +1863,10 @@ "typeString": "bytes" }, "typeName": { - "id": 119, + "id": 1329, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1025:5:1", + "src": "1633:5:5", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1354,318 +1878,28 @@ ], "name": "Milestone", "nodeType": "StructDefinition", - "scope": 1809, - "src": "863:186:1", - "visibility": "public" - }, - { - "constant": false, - "id": 123, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 1809, - "src": "1055:19:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" - }, - "typeName": { - "contractScope": null, - "id": 122, - "name": "WToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5925, - "src": "1055:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 125, - "name": "originToken", - "nodeType": "VariableDeclaration", - "scope": 1809, - "src": "1080:24:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", - "typeString": "contract ERC20" - }, - "typeName": { - "contractScope": null, - "id": 124, - "name": "ERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7017, - "src": "1080:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", - "typeString": "contract ERC20" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 127, - "name": "price", - "nodeType": "VariableDeclaration", - "scope": 1809, - "src": "1110:17:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 126, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1110:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 129, - "name": "serviceFee", - "nodeType": "VariableDeclaration", - "scope": 1809, - "src": "1133:22:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 128, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1133:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 131, - "name": "WTokenSaleFeePercent", - "nodeType": "VariableDeclaration", - "scope": 1809, - "src": "1161:32:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 130, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1161:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 133, - "name": "serviceWallet", - "nodeType": "VariableDeclaration", - "scope": 1809, - "src": "1199:28:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 132, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1199:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 135, - "name": "swap", - "nodeType": "VariableDeclaration", - "scope": 1809, - "src": "1233:19:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 134, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1233:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 137, - "name": "fund", - "nodeType": "VariableDeclaration", - "scope": 1809, - "src": "1258:20:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", - "typeString": "contract IW12Fund" - }, - "typeName": { - "contractScope": null, - "id": 136, - "name": "IW12Fund", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4484, - "src": "1258:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", - "typeString": "contract IW12Fund" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 140, - "name": "stages", - "nodeType": "VariableDeclaration", - "scope": 1809, - "src": "1285:21:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$108_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 138, - "name": "Stage", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 108, - "src": "1285:5:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$108_storage_ptr", - "typeString": "struct W12Crowdsale.Stage" - } - }, - "id": 139, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1285:7:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$108_storage_$dyn_storage_ptr", - "typeString": "struct W12Crowdsale.Stage[]" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 143, - "name": "milestones", - "nodeType": "VariableDeclaration", - "scope": 1809, - "src": "1312:29:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$121_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Milestone[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 141, - "name": "Milestone", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 121, - "src": "1312:9:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$121_storage_ptr", - "typeString": "struct W12Crowdsale.Milestone" - } - }, - "id": 142, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1312:11:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$121_storage_$dyn_storage_ptr", - "typeString": "struct W12Crowdsale.Milestone[]" - } - }, - "value": null, + "scope": 3168, + "src": "1472:185:5", "visibility": "public" }, { "anonymous": false, "documentation": null, - "id": 153, + "id": 1341, "name": "TokenPurchase", "nodeType": "EventDefinition", "parameters": { - "id": 152, + "id": 1340, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 145, + "id": 1333, "indexed": true, "name": "buyer", "nodeType": "VariableDeclaration", - "scope": 153, - "src": "1368:21:1", + "scope": 1341, + "src": "1683:21:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1673,10 +1907,10 @@ "typeString": "address" }, "typeName": { - "id": 144, + "id": 1332, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1368:7:1", + "src": "1683:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1687,12 +1921,12 @@ }, { "constant": false, - "id": 147, + "id": 1335, "indexed": false, - "name": "amountPaid", + "name": "tokensBought", "nodeType": "VariableDeclaration", - "scope": 153, - "src": "1391:15:1", + "scope": 1341, + "src": "1706:17:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1700,10 +1934,10 @@ "typeString": "uint256" }, "typeName": { - "id": 146, + "id": 1334, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1391:4:1", + "src": "1706:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1714,12 +1948,12 @@ }, { "constant": false, - "id": 149, + "id": 1337, "indexed": false, - "name": "tokensBought", + "name": "cost", "nodeType": "VariableDeclaration", - "scope": 153, - "src": "1408:17:1", + "scope": 1341, + "src": "1725:9:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1727,10 +1961,10 @@ "typeString": "uint256" }, "typeName": { - "id": 148, + "id": 1336, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1408:4:1", + "src": "1725:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1741,12 +1975,12 @@ }, { "constant": false, - "id": 151, + "id": 1339, "indexed": false, "name": "change", "nodeType": "VariableDeclaration", - "scope": 153, - "src": "1427:11:1", + "scope": 1341, + "src": "1736:11:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1754,10 +1988,10 @@ "typeString": "uint256" }, "typeName": { - "id": 150, + "id": 1338, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1427:4:1", + "src": "1736:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1767,42 +2001,42 @@ "visibility": "internal" } ], - "src": "1367:72:1" + "src": "1682:66:5" }, - "src": "1348:92:1" + "src": "1663:86:5" }, { "anonymous": false, "documentation": null, - "id": 155, + "id": 1343, "name": "StagesUpdated", "nodeType": "EventDefinition", "parameters": { - "id": 154, + "id": 1342, "nodeType": "ParameterList", "parameters": [], - "src": "1464:2:1" + "src": "1773:2:5" }, - "src": "1445:22:1" + "src": "1754:22:5" }, { "anonymous": false, "documentation": null, - "id": 159, + "id": 1347, "name": "StageUpdated", "nodeType": "EventDefinition", "parameters": { - "id": 158, + "id": 1346, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 157, + "id": 1345, "indexed": false, "name": "index", "nodeType": "VariableDeclaration", - "scope": 159, - "src": "1491:10:1", + "scope": 1347, + "src": "1800:10:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1810,10 +2044,10 @@ "typeString": "uint256" }, "typeName": { - "id": 156, + "id": 1344, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1491:4:1", + "src": "1800:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1823,42 +2057,42 @@ "visibility": "internal" } ], - "src": "1490:12:1" + "src": "1799:12:5" }, - "src": "1472:31:1" + "src": "1781:31:5" }, { "anonymous": false, "documentation": null, - "id": 161, + "id": 1349, "name": "MilestonesUpdated", "nodeType": "EventDefinition", "parameters": { - "id": 160, + "id": 1348, "nodeType": "ParameterList", "parameters": [], - "src": "1531:2:1" + "src": "1840:2:5" }, - "src": "1508:26:1" + "src": "1817:26:5" }, { "anonymous": false, "documentation": null, - "id": 167, + "id": 1355, "name": "UnsoldTokenReturned", "nodeType": "EventDefinition", "parameters": { - "id": 166, + "id": 1354, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 163, + "id": 1351, "indexed": true, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 167, - "src": "1565:21:1", + "scope": 1355, + "src": "1874:21:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1866,10 +2100,10 @@ "typeString": "address" }, "typeName": { - "id": 162, + "id": 1350, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1565:7:1", + "src": "1874:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1880,12 +2114,12 @@ }, { "constant": false, - "id": 165, + "id": 1353, "indexed": false, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 167, - "src": "1588:11:1", + "scope": 1355, + "src": "1897:11:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1893,10 +2127,10 @@ "typeString": "uint256" }, "typeName": { - "id": 164, + "id": 1352, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1588:4:1", + "src": "1897:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1906,15 +2140,15 @@ "visibility": "internal" } ], - "src": "1564:36:1" + "src": "1873:36:5" }, - "src": "1539:62:1" + "src": "1848:62:5" }, { "body": { - "id": 280, + "id": 1482, "nodeType": "Block", - "src": "1904:599:1", + "src": "2236:663:5", "statements": [ { "expression": { @@ -1926,19 +2160,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 196, + "id": 1386, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 192, + "id": 1382, "name": "_originToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 171, - "src": "1922:12:1", + "referencedDeclaration": 1359, + "src": "2254:12:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1952,14 +2186,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 194, + "id": 1384, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1946:1:1", + "src": "2278:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1975,20 +2209,20 @@ "typeString": "int_const 0" } ], - "id": 193, + "id": 1383, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1938:7:1", + "src": "2270:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 195, + "id": 1385, "isConstant": false, "isLValue": false, "isPure": true, @@ -1996,13 +2230,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1938:10:1", + "src": "2270:10:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1922:26:1", + "src": "2254:26:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2016,21 +2250,21 @@ "typeString": "bool" } ], - "id": 191, + "id": 1381, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "1914:7:1", + "referencedDeclaration": 10045, + "src": "2246:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 197, + "id": 1387, "isConstant": false, "isLValue": false, "isPure": false, @@ -2038,15 +2272,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1914:35:1", + "src": "2246:35:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 198, + "id": 1388, "nodeType": "ExpressionStatement", - "src": "1914:35:1" + "src": "2246:35:5" }, { "expression": { @@ -2058,19 +2292,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 204, + "id": 1394, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 200, + "id": 1390, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 173, - "src": "1967:6:1", + "referencedDeclaration": 1361, + "src": "2299:6:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2084,14 +2318,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 202, + "id": 1392, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1985:1:1", + "src": "2317:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2107,20 +2341,20 @@ "typeString": "int_const 0" } ], - "id": 201, + "id": 1391, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1977:7:1", + "src": "2309:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 203, + "id": 1393, "isConstant": false, "isLValue": false, "isPure": true, @@ -2128,13 +2362,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1977:10:1", + "src": "2309:10:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1967:20:1", + "src": "2299:20:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2148,21 +2382,21 @@ "typeString": "bool" } ], - "id": 199, + "id": 1389, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "1959:7:1", + "referencedDeclaration": 10045, + "src": "2291:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 205, + "id": 1395, "isConstant": false, "isLValue": false, "isPure": false, @@ -2170,15 +2404,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1959:29:1", + "src": "2291:29:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 206, + "id": 1396, "nodeType": "ExpressionStatement", - "src": "1959:29:1" + "src": "2291:29:5" }, { "expression": { @@ -2190,7 +2424,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 216, + "id": 1406, "isConstant": false, "isLValue": false, "isPure": false, @@ -2202,32 +2436,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 208, + "id": 1398, "name": "_serviceFee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 181, - "src": "2006:11:1", + "referencedDeclaration": 1369, + "src": "2338:11:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 209, + "id": 1399, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isPercent", "nodeType": "MemberAccess", - "referencedDeclaration": 4586, - "src": "2006:21:1", + "referencedDeclaration": 5058, + "src": "2338:21:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$", "typeString": "function (uint256) pure returns (bool)" } }, - "id": 210, + "id": 1400, "isConstant": false, "isLValue": false, "isPure": false, @@ -2235,7 +2469,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2006:23:1", + "src": "2338:23:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2249,7 +2483,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 215, + "id": 1405, "isConstant": false, "isLValue": false, "isPure": false, @@ -2261,32 +2495,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 211, + "id": 1401, "name": "_serviceFee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 181, - "src": "2033:11:1", + "referencedDeclaration": 1369, + "src": "2365:11:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 212, + "id": 1402, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "fromPercent", "nodeType": "MemberAccess", - "referencedDeclaration": 4630, - "src": "2033:23:1", + "referencedDeclaration": 5102, + "src": "2365:23:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256) pure returns (uint256)" } }, - "id": 213, + "id": 1403, "isConstant": false, "isLValue": false, "isPure": false, @@ -2294,7 +2528,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2033:25:1", + "src": "2365:25:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2305,14 +2539,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "313030", - "id": 214, + "id": 1404, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2061:3:1", + "src": "2393:3:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_100_by_1", @@ -2320,13 +2554,13 @@ }, "value": "100" }, - "src": "2033:31:1", + "src": "2365:31:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2006:58:1", + "src": "2338:58:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2340,21 +2574,21 @@ "typeString": "bool" } ], - "id": 207, + "id": 1397, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "1998:7:1", + "referencedDeclaration": 10045, + "src": "2330:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 217, + "id": 1407, "isConstant": false, "isLValue": false, "isPure": false, @@ -2362,15 +2596,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1998:67:1", + "src": "2330:67:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 218, + "id": 1408, "nodeType": "ExpressionStatement", - "src": "1998:67:1" + "src": "2330:67:5" }, { "expression": { @@ -2382,7 +2616,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 228, + "id": 1418, "isConstant": false, "isLValue": false, "isPure": false, @@ -2394,32 +2628,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 220, + "id": 1410, "name": "_WTokenSaleFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 183, - "src": "2083:21:1", + "referencedDeclaration": 1371, + "src": "2415:21:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 221, + "id": 1411, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isPercent", "nodeType": "MemberAccess", - "referencedDeclaration": 4586, - "src": "2083:31:1", + "referencedDeclaration": 5058, + "src": "2415:31:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$", "typeString": "function (uint256) pure returns (bool)" } }, - "id": 222, + "id": 1412, "isConstant": false, "isLValue": false, "isPure": false, @@ -2427,7 +2661,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2083:33:1", + "src": "2415:33:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2441,7 +2675,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 227, + "id": 1417, "isConstant": false, "isLValue": false, "isPure": false, @@ -2453,32 +2687,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 223, + "id": 1413, "name": "_WTokenSaleFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 183, - "src": "2120:21:1", + "referencedDeclaration": 1371, + "src": "2452:21:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 224, + "id": 1414, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "fromPercent", "nodeType": "MemberAccess", - "referencedDeclaration": 4630, - "src": "2120:33:1", + "referencedDeclaration": 5102, + "src": "2452:33:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256) pure returns (uint256)" } }, - "id": 225, + "id": 1415, "isConstant": false, "isLValue": false, "isPure": false, @@ -2486,7 +2720,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2120:35:1", + "src": "2452:35:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2497,14 +2731,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "313030", - "id": 226, + "id": 1416, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2158:3:1", + "src": "2490:3:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_100_by_1", @@ -2512,13 +2746,13 @@ }, "value": "100" }, - "src": "2120:41:1", + "src": "2452:41:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2083:78:1", + "src": "2415:78:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2532,21 +2766,21 @@ "typeString": "bool" } ], - "id": 219, + "id": 1409, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "2075:7:1", + "referencedDeclaration": 10045, + "src": "2407:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 229, + "id": 1419, "isConstant": false, "isLValue": false, "isPure": false, @@ -2554,15 +2788,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2075:87:1", + "src": "2407:87:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 230, + "id": 1420, "nodeType": "ExpressionStatement", - "src": "2075:87:1" + "src": "2407:87:5" }, { "expression": { @@ -2574,21 +2808,21 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 236, + "id": 1426, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 232, + "id": 1422, "name": "_fund", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 185, - "src": "2180:5:1", + "referencedDeclaration": 1373, + "src": "2512:5:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", + "typeIdentifier": "t_contract$_IW12Fund_$1241", "typeString": "contract IW12Fund" } }, @@ -2600,14 +2834,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 234, + "id": 1424, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2197:1:1", + "src": "2529:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2623,20 +2857,20 @@ "typeString": "int_const 0" } ], - "id": 233, + "id": 1423, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2189:7:1", + "src": "2521:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 235, + "id": 1425, "isConstant": false, "isLValue": false, "isPure": true, @@ -2644,13 +2878,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2189:10:1", + "src": "2521:10:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2180:19:1", + "src": "2512:19:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2664,21 +2898,21 @@ "typeString": "bool" } ], - "id": 231, + "id": 1421, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "2172:7:1", + "referencedDeclaration": 10045, + "src": "2504:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 237, + "id": 1427, "isConstant": false, "isLValue": false, "isPure": false, @@ -2686,15 +2920,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2172:28:1", + "src": "2504:28:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 238, + "id": 1428, "nodeType": "ExpressionStatement", - "src": "2172:28:1" + "src": "2504:28:5" }, { "expression": { @@ -2706,19 +2940,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 244, + "id": 1434, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 240, + "id": 1430, "name": "_swap", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 179, - "src": "2218:5:1", + "referencedDeclaration": 1367, + "src": "2550:5:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2732,14 +2966,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 242, + "id": 1432, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2235:1:1", + "src": "2567:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2755,20 +2989,20 @@ "typeString": "int_const 0" } ], - "id": 241, + "id": 1431, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2227:7:1", + "src": "2559:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 243, + "id": 1433, "isConstant": false, "isLValue": false, "isPure": true, @@ -2776,13 +3010,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2227:10:1", + "src": "2559:10:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2218:19:1", + "src": "2550:19:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2796,21 +3030,21 @@ "typeString": "bool" } ], - "id": 239, + "id": 1429, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "2210:7:1", + "referencedDeclaration": 10045, + "src": "2542:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 245, + "id": 1435, "isConstant": false, "isLValue": false, "isPure": false, @@ -2818,15 +3052,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2210:28:1", + "src": "2542:28:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 246, + "id": 1436, "nodeType": "ExpressionStatement", - "src": "2210:28:1" + "src": "2542:28:5" }, { "expression": { @@ -2834,12 +3068,144 @@ "arguments": [ { "argumentTypes": null, - "id": 248, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1438, + "name": "_rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1375, + "src": "2588:6:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1440, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2606: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": 1439, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2598:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1441, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2598:10:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2588:20:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1437, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "2580:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2580:29:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1444, + "nodeType": "ExpressionStatement", + "src": "2580:29:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1446, "name": "_price", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 175, - "src": "2265:6:1", + "referencedDeclaration": 1363, + "src": "2636:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2847,12 +3213,12 @@ }, { "argumentTypes": null, - "id": 249, + "id": 1447, "name": "_serviceWallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 177, - "src": "2273:14:1", + "referencedDeclaration": 1365, + "src": "2644:14:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2870,18 +3236,18 @@ "typeString": "address" } ], - "id": 247, + "id": 1445, "name": "__setParameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 509, - "src": "2249:15:1", + "referencedDeclaration": 1711, + "src": "2620:15:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$__$", "typeString": "function (uint256,address)" } }, - "id": 250, + "id": 1448, "isConstant": false, "isLValue": false, "isPure": false, @@ -2889,35 +3255,35 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2249:39:1", + "src": "2620:39:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 251, + "id": 1449, "nodeType": "ExpressionStatement", - "src": "2249:39:1" + "src": "2620:39:5" }, { "expression": { "argumentTypes": null, - "id": 256, + "id": 1454, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 252, + "id": 1450, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 123, - "src": "2299:5:1", + "referencedDeclaration": 1279, + "src": "2670:5:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" } }, "nodeType": "Assignment", @@ -2927,12 +3293,12 @@ "arguments": [ { "argumentTypes": null, - "id": 254, + "id": 1452, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 173, - "src": "2314:6:1", + "referencedDeclaration": 1361, + "src": "2686:6:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2946,18 +3312,18 @@ "typeString": "address" } ], - "id": 253, - "name": "WToken", + "id": 1451, + "name": "IWToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5925, - "src": "2307:6:1", + "referencedDeclaration": 7630, + "src": "2678:7:5", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_WToken_$5925_$", - "typeString": "type(contract WToken)" + "typeIdentifier": "t_type$_t_contract$_IWToken_$7630_$", + "typeString": "type(contract IWToken)" } }, - "id": 255, + "id": 1453, "isConstant": false, "isLValue": false, "isPure": false, @@ -2965,40 +3331,40 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2307:14:1", + "src": "2678:15:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" } }, - "src": "2299:22:1", + "src": "2670:23:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" } }, - "id": 257, + "id": 1455, "nodeType": "ExpressionStatement", - "src": "2299:22:1" + "src": "2670:23:5" }, { "expression": { "argumentTypes": null, - "id": 262, + "id": 1460, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 258, + "id": 1456, "name": "originToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 125, - "src": "2331:11:1", + "referencedDeclaration": 1281, + "src": "2703:11:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, @@ -3009,12 +3375,12 @@ "arguments": [ { "argumentTypes": null, - "id": 260, + "id": 1458, "name": "_originToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 171, - "src": "2351:12:1", + "referencedDeclaration": 1359, + "src": "2723:12:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3028,18 +3394,18 @@ "typeString": "address" } ], - "id": 259, + "id": 1457, "name": "ERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7017, - "src": "2345:5:1", + "referencedDeclaration": 9765, + "src": "2717:5:5", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$7017_$", + "typeIdentifier": "t_type$_t_contract$_ERC20_$9765_$", "typeString": "type(contract ERC20)" } }, - "id": 261, + "id": 1459, "isConstant": false, "isLValue": false, "isPure": false, @@ -3047,38 +3413,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2345:19:1", + "src": "2717:19:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, - "src": "2331:33:1", + "src": "2703:33:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, - "id": 263, + "id": 1461, "nodeType": "ExpressionStatement", - "src": "2331:33:1" + "src": "2703:33:5" }, { "expression": { "argumentTypes": null, - "id": 266, + "id": 1464, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 264, + "id": 1462, "name": "serviceFee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 129, - "src": "2374:10:1", + "referencedDeclaration": 1289, + "src": "2746:10:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3088,43 +3454,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 265, + "id": 1463, "name": "_serviceFee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 181, - "src": "2387:11:1", + "referencedDeclaration": 1369, + "src": "2759:11:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2374:24:1", + "src": "2746:24:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 267, + "id": 1465, "nodeType": "ExpressionStatement", - "src": "2374:24:1" + "src": "2746:24:5" }, { "expression": { "argumentTypes": null, - "id": 270, + "id": 1468, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 268, + "id": 1466, "name": "swap", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 135, - "src": "2408:4:1", + "referencedDeclaration": 1295, + "src": "2780:4:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3134,43 +3500,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 269, + "id": 1467, "name": "_swap", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 179, - "src": "2415:5:1", + "referencedDeclaration": 1367, + "src": "2787:5:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2408:12:1", + "src": "2780:12:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 271, + "id": 1469, "nodeType": "ExpressionStatement", - "src": "2408:12:1" + "src": "2780:12:5" }, { "expression": { "argumentTypes": null, - "id": 274, + "id": 1472, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 272, + "id": 1470, "name": "WTokenSaleFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 131, - "src": "2430:20:1", + "referencedDeclaration": 1291, + "src": "2802:20:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3180,45 +3546,45 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 273, + "id": 1471, "name": "_WTokenSaleFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 183, - "src": "2453:21:1", + "referencedDeclaration": 1371, + "src": "2825:21:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2430:44:1", + "src": "2802:44:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 275, + "id": 1473, "nodeType": "ExpressionStatement", - "src": "2430:44:1" + "src": "2802:44:5" }, { "expression": { "argumentTypes": null, - "id": 278, + "id": 1476, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 276, + "id": 1474, "name": "fund", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 137, - "src": "2484:4:1", + "referencedDeclaration": 1283, + "src": "2856:4:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", + "typeIdentifier": "t_contract$_IW12Fund_$1241", "typeString": "contract IW12Fund" } }, @@ -3226,31 +3592,77 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 277, + "id": 1475, "name": "_fund", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 185, - "src": "2491:5:1", + "referencedDeclaration": 1373, + "src": "2863:5:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", + "typeIdentifier": "t_contract$_IW12Fund_$1241", "typeString": "contract IW12Fund" } }, - "src": "2484:12:1", + "src": "2856:12:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", + "typeIdentifier": "t_contract$_IW12Fund_$1241", "typeString": "contract IW12Fund" } }, - "id": 279, + "id": 1477, "nodeType": "ExpressionStatement", - "src": "2484:12:1" + "src": "2856:12:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 1480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1478, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1285, + "src": "2878:5:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1479, + "name": "_rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1375, + "src": "2886:6:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "src": "2878:14:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "id": 1481, + "nodeType": "ExpressionStatement", + "src": "2878:14:5" } ] }, "documentation": null, - "id": 281, + "id": 1483, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -3259,49 +3671,49 @@ "arguments": [ { "argumentTypes": null, - "id": 188, + "id": 1378, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "1884:7:1", + "referencedDeclaration": 1357, + "src": "2216:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 189, + "id": 1379, "modifierName": { "argumentTypes": null, - "id": 187, + "id": 1377, "name": "Versionable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6509, - "src": "1872:11:1", + "referencedDeclaration": 9070, + "src": "2204:11:5", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Versionable_$6509_$", + "typeIdentifier": "t_type$_t_contract$_Versionable_$9070_$", "typeString": "type(contract Versionable)" } }, "nodeType": "ModifierInvocation", - "src": "1872:20:1" + "src": "2204:20:5" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 186, + "id": 1376, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 169, + "id": 1357, "name": "version", "nodeType": "VariableDeclaration", - "scope": 281, - "src": "1629:12:1", + "scope": 1483, + "src": "1938:12:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3309,10 +3721,10 @@ "typeString": "uint256" }, "typeName": { - "id": 168, + "id": 1356, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1629:4:1", + "src": "1938:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3323,11 +3735,11 @@ }, { "constant": false, - "id": 171, + "id": 1359, "name": "_originToken", "nodeType": "VariableDeclaration", - "scope": 281, - "src": "1651:20:1", + "scope": 1483, + "src": "1960:20:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3335,10 +3747,10 @@ "typeString": "address" }, "typeName": { - "id": 170, + "id": 1358, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1651:7:1", + "src": "1960:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3349,11 +3761,11 @@ }, { "constant": false, - "id": 173, + "id": 1361, "name": "_token", "nodeType": "VariableDeclaration", - "scope": 281, - "src": "1681:14:1", + "scope": 1483, + "src": "1990:14:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3361,10 +3773,10 @@ "typeString": "address" }, "typeName": { - "id": 172, + "id": 1360, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1681:7:1", + "src": "1990:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3375,11 +3787,11 @@ }, { "constant": false, - "id": 175, + "id": 1363, "name": "_price", "nodeType": "VariableDeclaration", - "scope": 281, - "src": "1705:11:1", + "scope": 1483, + "src": "2014:11:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3387,10 +3799,10 @@ "typeString": "uint256" }, "typeName": { - "id": 174, + "id": 1362, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1705:4:1", + "src": "2014:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3401,11 +3813,11 @@ }, { "constant": false, - "id": 177, + "id": 1365, "name": "_serviceWallet", "nodeType": "VariableDeclaration", - "scope": 281, - "src": "1726:22:1", + "scope": 1483, + "src": "2035:22:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3413,10 +3825,10 @@ "typeString": "address" }, "typeName": { - "id": 176, + "id": 1364, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1726:7:1", + "src": "2035:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3427,11 +3839,11 @@ }, { "constant": false, - "id": 179, + "id": 1367, "name": "_swap", "nodeType": "VariableDeclaration", - "scope": 281, - "src": "1758:13:1", + "scope": 1483, + "src": "2067:13:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3439,10 +3851,10 @@ "typeString": "address" }, "typeName": { - "id": 178, + "id": 1366, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1758:7:1", + "src": "2067:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3453,11 +3865,11 @@ }, { "constant": false, - "id": 181, + "id": 1369, "name": "_serviceFee", "nodeType": "VariableDeclaration", - "scope": 281, - "src": "1781:16:1", + "scope": 1483, + "src": "2090:16:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3465,10 +3877,10 @@ "typeString": "uint256" }, "typeName": { - "id": 180, + "id": 1368, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1781:4:1", + "src": "2090:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3479,11 +3891,11 @@ }, { "constant": false, - "id": 183, + "id": 1371, "name": "_WTokenSaleFeePercent", "nodeType": "VariableDeclaration", - "scope": 281, - "src": "1807:26:1", + "scope": 1483, + "src": "2116:26:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3491,10 +3903,10 @@ "typeString": "uint256" }, "typeName": { - "id": 182, + "id": 1370, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1807:4:1", + "src": "2116:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3505,71 +3917,99 @@ }, { "constant": false, - "id": 185, + "id": 1373, "name": "_fund", "nodeType": "VariableDeclaration", - "scope": 281, - "src": "1843:14:1", + "scope": 1483, + "src": "2152:14:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", + "typeIdentifier": "t_contract$_IW12Fund_$1241", "typeString": "contract IW12Fund" }, "typeName": { "contractScope": null, - "id": 184, + "id": 1372, "name": "IW12Fund", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4484, - "src": "1843:8:1", + "referencedDeclaration": 1241, + "src": "2152:8:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", + "typeIdentifier": "t_contract$_IW12Fund_$1241", "typeString": "contract IW12Fund" } }, "value": null, "visibility": "internal" + }, + { + "constant": false, + "id": 1375, + "name": "_rates", + "nodeType": "VariableDeclaration", + "scope": 1483, + "src": "2176:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + }, + "typeName": { + "contractScope": null, + "id": 1374, + "name": "IRates", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7015, + "src": "2176:6:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "value": null, + "visibility": "internal" } ], - "src": "1619:244:1" + "src": "1928:267:5" }, "payable": false, "returnParameters": { - "id": 190, + "id": 1380, "nodeType": "ParameterList", "parameters": [], - "src": "1904:0:1" + "src": "2236:0:5" }, - "scope": 1809, - "src": "1607:896:1", + "scope": 3168, + "src": "1916:983:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 289, + "id": 1491, "nodeType": "Block", - "src": "2562:37:1", + "src": "2958:37:5", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 286, + "id": 1488, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "2579:6:1", + "referencedDeclaration": 1300, + "src": "2975:6:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$108_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" } }, - "id": 287, + "id": 1489, "isConstant": false, "isLValue": true, "isPure": false, @@ -3577,21 +4017,21 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2579:13:1", + "src": "2975:13:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 285, - "id": 288, + "functionReturnParameters": 1487, + "id": 1490, "nodeType": "Return", - "src": "2572:20:1" + "src": "2968:20:5" } ] }, "documentation": null, - "id": 290, + "id": 1492, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -3599,23 +4039,23 @@ "name": "stagesLength", "nodeType": "FunctionDefinition", "parameters": { - "id": 282, + "id": 1484, "nodeType": "ParameterList", "parameters": [], - "src": "2530:2:1" + "src": "2926:2:5" }, "payable": false, "returnParameters": { - "id": 285, + "id": 1487, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 284, + "id": 1486, "name": "", "nodeType": "VariableDeclaration", - "scope": 290, - "src": "2556:4:1", + "scope": 1492, + "src": "2952:4:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3623,10 +4063,10 @@ "typeString": "uint256" }, "typeName": { - "id": 283, + "id": 1485, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2556:4:1", + "src": "2952:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3636,37 +4076,37 @@ "visibility": "internal" } ], - "src": "2555:6:1" + "src": "2951:6:5" }, - "scope": 1809, - "src": "2509:90:1", + "scope": 3168, + "src": "2905:90:5", "stateMutability": "view", "superFunction": null, "visibility": "external" }, { "body": { - "id": 298, + "id": 1500, "nodeType": "Block", - "src": "2662:41:1", + "src": "3058:41:5", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 295, + "id": 1497, "name": "milestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 143, - "src": "2679:10:1", + "referencedDeclaration": 1303, + "src": "3075:10:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$121_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Milestone_$1331_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" } }, - "id": 296, + "id": 1498, "isConstant": false, "isLValue": true, "isPure": false, @@ -3674,21 +4114,21 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2679:17:1", + "src": "3075:17:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 294, - "id": 297, + "functionReturnParameters": 1496, + "id": 1499, "nodeType": "Return", - "src": "2672:24:1" + "src": "3068:24:5" } ] }, "documentation": null, - "id": 299, + "id": 1501, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -3696,23 +4136,23 @@ "name": "milestonesLength", "nodeType": "FunctionDefinition", "parameters": { - "id": 291, + "id": 1493, "nodeType": "ParameterList", "parameters": [], - "src": "2630:2:1" + "src": "3026:2:5" }, "payable": false, "returnParameters": { - "id": 294, + "id": 1496, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 293, + "id": 1495, "name": "", "nodeType": "VariableDeclaration", - "scope": 299, - "src": "2656:4:1", + "scope": 1501, + "src": "3052:4:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3720,10 +4160,10 @@ "typeString": "uint256" }, "typeName": { - "id": 292, + "id": 1494, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2656:4:1", + "src": "3052:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3733,19 +4173,19 @@ "visibility": "internal" } ], - "src": "2655:6:1" + "src": "3051:6:5" }, - "scope": 1809, - "src": "2605:98:1", + "scope": 3168, + "src": "3001:98:5", "stateMutability": "view", - "superFunction": 4390, + "superFunction": 1167, "visibility": "external" }, { "body": { - "id": 342, + "id": 1544, "nodeType": "Block", - "src": "2808:289:1", + "src": "3204:289:5", "statements": [ { "expression": { @@ -3757,26 +4197,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 316, + "id": 1518, "name": "milestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 143, - "src": "2839:10:1", + "referencedDeclaration": 1303, + "src": "3235:10:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$121_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Milestone_$1331_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" } }, - "id": 318, + "id": 1520, "indexExpression": { "argumentTypes": null, - "id": 317, + "id": 1519, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 301, - "src": "2850:5:1", + "referencedDeclaration": 1503, + "src": "3246:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3787,21 +4227,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2839:17:1", + "src": "3235:17:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$121_storage", + "typeIdentifier": "t_struct$_Milestone_$1331_storage", "typeString": "struct W12Crowdsale.Milestone storage ref" } }, - "id": 319, + "id": 1521, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "endDate", "nodeType": "MemberAccess", - "referencedDeclaration": 110, - "src": "2839:25:1", + "referencedDeclaration": 1320, + "src": "3235:25:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -3813,26 +4253,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 320, + "id": 1522, "name": "milestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 143, - "src": "2878:10:1", + "referencedDeclaration": 1303, + "src": "3274:10:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$121_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Milestone_$1331_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" } }, - "id": 322, + "id": 1524, "indexExpression": { "argumentTypes": null, - "id": 321, + "id": 1523, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 301, - "src": "2889:5:1", + "referencedDeclaration": 1503, + "src": "3285:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3843,21 +4283,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2878:17:1", + "src": "3274:17:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$121_storage", + "typeIdentifier": "t_struct$_Milestone_$1331_storage", "typeString": "struct W12Crowdsale.Milestone storage ref" } }, - "id": 323, + "id": 1525, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "tranchePercent", "nodeType": "MemberAccess", - "referencedDeclaration": 112, - "src": "2878:32:1", + "referencedDeclaration": 1322, + "src": "3274:32:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3869,26 +4309,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 324, + "id": 1526, "name": "milestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 143, - "src": "2924:10:1", + "referencedDeclaration": 1303, + "src": "3320:10:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$121_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Milestone_$1331_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" } }, - "id": 326, + "id": 1528, "indexExpression": { "argumentTypes": null, - "id": 325, + "id": 1527, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 301, - "src": "2935:5:1", + "referencedDeclaration": 1503, + "src": "3331:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3899,21 +4339,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2924:17:1", + "src": "3320:17:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$121_storage", + "typeIdentifier": "t_struct$_Milestone_$1331_storage", "typeString": "struct W12Crowdsale.Milestone storage ref" } }, - "id": 327, + "id": 1529, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "voteEndDate", "nodeType": "MemberAccess", - "referencedDeclaration": 114, - "src": "2924:29:1", + "referencedDeclaration": 1324, + "src": "3320:29:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -3925,26 +4365,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 328, + "id": 1530, "name": "milestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 143, - "src": "2967:10:1", + "referencedDeclaration": 1303, + "src": "3363:10:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$121_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Milestone_$1331_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" } }, - "id": 330, + "id": 1532, "indexExpression": { "argumentTypes": null, - "id": 329, + "id": 1531, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 301, - "src": "2978:5:1", + "referencedDeclaration": 1503, + "src": "3374:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3955,21 +4395,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2967:17:1", + "src": "3363:17:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$121_storage", + "typeIdentifier": "t_struct$_Milestone_$1331_storage", "typeString": "struct W12Crowdsale.Milestone storage ref" } }, - "id": 331, + "id": 1533, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "withdrawalWindow", "nodeType": "MemberAccess", - "referencedDeclaration": 116, - "src": "2967:34:1", + "referencedDeclaration": 1326, + "src": "3363:34:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -3981,26 +4421,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 332, + "id": 1534, "name": "milestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 143, - "src": "3015:10:1", + "referencedDeclaration": 1303, + "src": "3411:10:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$121_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Milestone_$1331_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" } }, - "id": 334, + "id": 1536, "indexExpression": { "argumentTypes": null, - "id": 333, + "id": 1535, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 301, - "src": "3026:5:1", + "referencedDeclaration": 1503, + "src": "3422:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4011,21 +4451,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3015:17:1", + "src": "3411:17:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$121_storage", + "typeIdentifier": "t_struct$_Milestone_$1331_storage", "typeString": "struct W12Crowdsale.Milestone storage ref" } }, - "id": 335, + "id": 1537, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "name", "nodeType": "MemberAccess", - "referencedDeclaration": 118, - "src": "3015:22:1", + "referencedDeclaration": 1328, + "src": "3411:22:5", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" @@ -4037,26 +4477,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 336, + "id": 1538, "name": "milestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 143, - "src": "3051:10:1", + "referencedDeclaration": 1303, + "src": "3447:10:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$121_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Milestone_$1331_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" } }, - "id": 338, + "id": 1540, "indexExpression": { "argumentTypes": null, - "id": 337, + "id": 1539, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 301, - "src": "3062:5:1", + "referencedDeclaration": 1503, + "src": "3458:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4067,49 +4507,49 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3051:17:1", + "src": "3447:17:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$121_storage", + "typeIdentifier": "t_struct$_Milestone_$1331_storage", "typeString": "struct W12Crowdsale.Milestone storage ref" } }, - "id": 339, + "id": 1541, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "description", "nodeType": "MemberAccess", - "referencedDeclaration": 120, - "src": "3051:29:1", + "referencedDeclaration": 1330, + "src": "3447:29:5", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } } ], - "id": 340, + "id": 1542, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "2825:265:1", + "src": "3221: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": 315, - "id": 341, + "functionReturnParameters": 1517, + "id": 1543, "nodeType": "Return", - "src": "2818:272:1" + "src": "3214:272:5" } ] }, "documentation": null, - "id": 343, + "id": 1545, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -4117,16 +4557,16 @@ "name": "getMilestone", "nodeType": "FunctionDefinition", "parameters": { - "id": 302, + "id": 1504, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 301, + "id": 1503, "name": "index", "nodeType": "VariableDeclaration", - "scope": 343, - "src": "2731:10:1", + "scope": 1545, + "src": "3127:10:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4134,10 +4574,10 @@ "typeString": "uint256" }, "typeName": { - "id": 300, + "id": 1502, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2731:4:1", + "src": "3127:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4147,20 +4587,20 @@ "visibility": "internal" } ], - "src": "2730:12:1" + "src": "3126:12:5" }, "payable": false, "returnParameters": { - "id": 315, + "id": 1517, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 304, + "id": 1506, "name": "", "nodeType": "VariableDeclaration", - "scope": 343, - "src": "2764:6:1", + "scope": 1545, + "src": "3160:6:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4168,10 +4608,10 @@ "typeString": "uint32" }, "typeName": { - "id": 303, + "id": 1505, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "2764:6:1", + "src": "3160:6:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -4182,11 +4622,11 @@ }, { "constant": false, - "id": 306, + "id": 1508, "name": "", "nodeType": "VariableDeclaration", - "scope": 343, - "src": "2772:4:1", + "scope": 1545, + "src": "3168:4:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4194,10 +4634,10 @@ "typeString": "uint256" }, "typeName": { - "id": 305, + "id": 1507, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2772:4:1", + "src": "3168:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4208,11 +4648,11 @@ }, { "constant": false, - "id": 308, + "id": 1510, "name": "", "nodeType": "VariableDeclaration", - "scope": 343, - "src": "2778:6:1", + "scope": 1545, + "src": "3174:6:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4220,10 +4660,10 @@ "typeString": "uint32" }, "typeName": { - "id": 307, + "id": 1509, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "2778:6:1", + "src": "3174:6:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -4234,11 +4674,11 @@ }, { "constant": false, - "id": 310, + "id": 1512, "name": "", "nodeType": "VariableDeclaration", - "scope": 343, - "src": "2786:6:1", + "scope": 1545, + "src": "3182:6:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4246,10 +4686,10 @@ "typeString": "uint32" }, "typeName": { - "id": 309, + "id": 1511, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "2786:6:1", + "src": "3182:6:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -4260,11 +4700,11 @@ }, { "constant": false, - "id": 312, + "id": 1514, "name": "", "nodeType": "VariableDeclaration", - "scope": 343, - "src": "2794:5:1", + "scope": 1545, + "src": "3190:5:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4272,10 +4712,10 @@ "typeString": "bytes" }, "typeName": { - "id": 311, + "id": 1513, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2794:5:1", + "src": "3190:5:5", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -4286,11 +4726,11 @@ }, { "constant": false, - "id": 314, + "id": 1516, "name": "", "nodeType": "VariableDeclaration", - "scope": 343, - "src": "2801:5:1", + "scope": 1545, + "src": "3197:5:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4298,10 +4738,10 @@ "typeString": "bytes" }, "typeName": { - "id": 313, + "id": 1515, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2801:5:1", + "src": "3197:5:5", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -4311,19 +4751,19 @@ "visibility": "internal" } ], - "src": "2763:44:1" + "src": "3159:44:5" }, - "scope": 1809, - "src": "2709:388:1", + "scope": 3168, + "src": "3105:388:5", "stateMutability": "view", - "superFunction": 4352, + "superFunction": 1129, "visibility": "public" }, { "body": { - "id": 388, + "id": 1590, "nodeType": "Block", - "src": "3200:262:1", + "src": "3596:262:5", "statements": [ { "expression": { @@ -4335,26 +4775,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 362, + "id": 1564, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "3231:6:1", + "referencedDeclaration": 1300, + "src": "3627:6:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$108_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" } }, - "id": 364, + "id": 1566, "indexExpression": { "argumentTypes": null, - "id": 363, + "id": 1565, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 345, - "src": "3238:5:1", + "referencedDeclaration": 1547, + "src": "3634:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4365,21 +4805,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3231:13:1", + "src": "3627:13:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$108_storage", + "typeIdentifier": "t_struct$_Stage_$1318_storage", "typeString": "struct W12Crowdsale.Stage storage ref" } }, - "id": 365, + "id": 1567, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "startDate", "nodeType": "MemberAccess", - "referencedDeclaration": 95, - "src": "3231:23:1", + "referencedDeclaration": 1305, + "src": "3627:23:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -4391,26 +4831,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 366, + "id": 1568, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "3268:6:1", + "referencedDeclaration": 1300, + "src": "3664:6:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$108_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" } }, - "id": 368, + "id": 1570, "indexExpression": { "argumentTypes": null, - "id": 367, + "id": 1569, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 345, - "src": "3275:5:1", + "referencedDeclaration": 1547, + "src": "3671:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4421,21 +4861,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3268:13:1", + "src": "3664:13:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$108_storage", + "typeIdentifier": "t_struct$_Stage_$1318_storage", "typeString": "struct W12Crowdsale.Stage storage ref" } }, - "id": 369, + "id": 1571, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "endDate", "nodeType": "MemberAccess", - "referencedDeclaration": 97, - "src": "3268:21:1", + "referencedDeclaration": 1307, + "src": "3664:21:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -4447,26 +4887,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 370, + "id": 1572, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "3303:6:1", + "referencedDeclaration": 1300, + "src": "3699:6:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$108_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" } }, - "id": 372, + "id": 1574, "indexExpression": { "argumentTypes": null, - "id": 371, + "id": 1573, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 345, - "src": "3310:5:1", + "referencedDeclaration": 1547, + "src": "3706:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4477,21 +4917,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3303:13:1", + "src": "3699:13:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$108_storage", + "typeIdentifier": "t_struct$_Stage_$1318_storage", "typeString": "struct W12Crowdsale.Stage storage ref" } }, - "id": 373, + "id": 1575, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "discount", "nodeType": "MemberAccess", - "referencedDeclaration": 99, - "src": "3303:22:1", + "referencedDeclaration": 1309, + "src": "3699:22:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4503,26 +4943,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 374, + "id": 1576, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "3339:6:1", + "referencedDeclaration": 1300, + "src": "3735:6:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$108_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" } }, - "id": 376, + "id": 1578, "indexExpression": { "argumentTypes": null, - "id": 375, + "id": 1577, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 345, - "src": "3346:5:1", + "referencedDeclaration": 1547, + "src": "3742:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4533,21 +4973,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3339:13:1", + "src": "3735:13:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$108_storage", + "typeIdentifier": "t_struct$_Stage_$1318_storage", "typeString": "struct W12Crowdsale.Stage storage ref" } }, - "id": 377, + "id": 1579, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "vesting", "nodeType": "MemberAccess", - "referencedDeclaration": 101, - "src": "3339:21:1", + "referencedDeclaration": 1311, + "src": "3735:21:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -4559,26 +4999,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 378, + "id": 1580, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "3374:6:1", + "referencedDeclaration": 1300, + "src": "3770:6:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$108_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" } }, - "id": 380, + "id": 1582, "indexExpression": { "argumentTypes": null, - "id": 379, + "id": 1581, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 345, - "src": "3381:5:1", + "referencedDeclaration": 1547, + "src": "3777:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4589,21 +5029,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3374:13:1", + "src": "3770:13:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$108_storage", + "typeIdentifier": "t_struct$_Stage_$1318_storage", "typeString": "struct W12Crowdsale.Stage storage ref" } }, - "id": 381, + "id": 1583, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "volumeBoundaries", "nodeType": "MemberAccess", - "referencedDeclaration": 104, - "src": "3374:30:1", + "referencedDeclaration": 1314, + "src": "3770:30:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" @@ -4615,26 +5055,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 382, + "id": 1584, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "3418:6:1", + "referencedDeclaration": 1300, + "src": "3814:6:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$108_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" } }, - "id": 384, + "id": 1586, "indexExpression": { "argumentTypes": null, - "id": 383, + "id": 1585, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 345, - "src": "3425:5:1", + "referencedDeclaration": 1547, + "src": "3821:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4645,49 +5085,49 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3418:13:1", + "src": "3814:13:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$108_storage", + "typeIdentifier": "t_struct$_Stage_$1318_storage", "typeString": "struct W12Crowdsale.Stage storage ref" } }, - "id": 385, + "id": 1587, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "volumeBonuses", "nodeType": "MemberAccess", - "referencedDeclaration": 107, - "src": "3418:27:1", + "referencedDeclaration": 1317, + "src": "3814:27:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } } ], - "id": 386, + "id": 1588, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "3217:238:1", + "src": "3613: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": 361, - "id": 387, + "functionReturnParameters": 1563, + "id": 1589, "nodeType": "Return", - "src": "3210:245:1" + "src": "3606:245:5" } ] }, "documentation": null, - "id": 389, + "id": 1591, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -4695,16 +5135,16 @@ "name": "getStage", "nodeType": "FunctionDefinition", "parameters": { - "id": 346, + "id": 1548, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 345, + "id": 1547, "name": "index", "nodeType": "VariableDeclaration", - "scope": 389, - "src": "3121:10:1", + "scope": 1591, + "src": "3517:10:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4712,10 +5152,10 @@ "typeString": "uint256" }, "typeName": { - "id": 344, + "id": 1546, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3121:4:1", + "src": "3517:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4725,20 +5165,20 @@ "visibility": "internal" } ], - "src": "3120:12:1" + "src": "3516:12:5" }, "payable": false, "returnParameters": { - "id": 361, + "id": 1563, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 348, + "id": 1550, "name": "", "nodeType": "VariableDeclaration", - "scope": 389, - "src": "3154:6:1", + "scope": 1591, + "src": "3550:6:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4746,10 +5186,10 @@ "typeString": "uint32" }, "typeName": { - "id": 347, + "id": 1549, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "3154:6:1", + "src": "3550:6:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -4760,11 +5200,11 @@ }, { "constant": false, - "id": 350, + "id": 1552, "name": "", "nodeType": "VariableDeclaration", - "scope": 389, - "src": "3162:6:1", + "scope": 1591, + "src": "3558:6:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4772,10 +5212,10 @@ "typeString": "uint32" }, "typeName": { - "id": 349, + "id": 1551, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "3162:6:1", + "src": "3558:6:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -4786,11 +5226,11 @@ }, { "constant": false, - "id": 352, + "id": 1554, "name": "", "nodeType": "VariableDeclaration", - "scope": 389, - "src": "3170:4:1", + "scope": 1591, + "src": "3566:4:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4798,10 +5238,10 @@ "typeString": "uint256" }, "typeName": { - "id": 351, + "id": 1553, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3170:4:1", + "src": "3566:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4812,11 +5252,11 @@ }, { "constant": false, - "id": 354, + "id": 1556, "name": "", "nodeType": "VariableDeclaration", - "scope": 389, - "src": "3176:6:1", + "scope": 1591, + "src": "3572:6:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4824,10 +5264,10 @@ "typeString": "uint32" }, "typeName": { - "id": 353, + "id": 1555, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "3176:6:1", + "src": "3572:6:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -4838,11 +5278,11 @@ }, { "constant": false, - "id": 357, + "id": 1559, "name": "", "nodeType": "VariableDeclaration", - "scope": 389, - "src": "3184:6:1", + "scope": 1591, + "src": "3580:6:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4851,19 +5291,19 @@ }, "typeName": { "baseType": { - "id": 355, + "id": 1557, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3184:4:1", + "src": "3580:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 356, + "id": 1558, "length": null, "nodeType": "ArrayTypeName", - "src": "3184:6:1", + "src": "3580:6:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -4874,11 +5314,11 @@ }, { "constant": false, - "id": 360, + "id": 1562, "name": "", "nodeType": "VariableDeclaration", - "scope": 389, - "src": "3192:6:1", + "scope": 1591, + "src": "3588:6:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4887,19 +5327,19 @@ }, "typeName": { "baseType": { - "id": 358, + "id": 1560, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3192:4:1", + "src": "3588:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 359, + "id": 1561, "length": null, "nodeType": "ArrayTypeName", - "src": "3192:6:1", + "src": "3588:6:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -4909,19 +5349,19 @@ "visibility": "internal" } ], - "src": "3153:46:1" + "src": "3549:46:5" }, - "scope": 1809, - "src": "3103:359:1", + "scope": 3168, + "src": "3499:359:5", "stateMutability": "view", - "superFunction": 4371, + "superFunction": 1148, "visibility": "public" }, { "body": { - "id": 409, + "id": 1611, "nodeType": "Block", - "src": "3521:94:1", + "src": "3917:94:5", "statements": [ { "expression": { @@ -4933,7 +5373,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 398, + "id": 1600, "isConstant": false, "isLValue": false, "isPure": false, @@ -4942,18 +5382,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 395, + "id": 1597, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "3539:6:1", + "referencedDeclaration": 1300, + "src": "3935:6:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$108_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" } }, - "id": 396, + "id": 1598, "isConstant": false, "isLValue": true, "isPure": false, @@ -4961,7 +5401,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3539:13:1", + "src": "3935:13:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4972,14 +5412,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 397, + "id": 1599, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3555:1:1", + "src": "3951:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4987,7 +5427,7 @@ }, "value": "0" }, - "src": "3539:17:1", + "src": "3935:17:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5001,21 +5441,21 @@ "typeString": "bool" } ], - "id": 394, + "id": 1596, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "3531:7:1", + "referencedDeclaration": 10045, + "src": "3927:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 399, + "id": 1601, "isConstant": false, "isLValue": false, "isPure": false, @@ -5023,15 +5463,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3531:26:1", + "src": "3927:26:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 400, + "id": 1602, "nodeType": "ExpressionStatement", - "src": "3531:26:1" + "src": "3927:26:5" }, { "expression": { @@ -5040,25 +5480,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 401, + "id": 1603, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "3575:6:1", + "referencedDeclaration": 1300, + "src": "3971:6:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$108_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" } }, - "id": 406, + "id": 1608, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 405, + "id": 1607, "isConstant": false, "isLValue": false, "isPure": false, @@ -5067,18 +5507,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 402, + "id": 1604, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "3582:6:1", + "referencedDeclaration": 1300, + "src": "3978:6:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$108_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" } }, - "id": 403, + "id": 1605, "isConstant": false, "isLValue": true, "isPure": false, @@ -5086,7 +5526,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3582:13:1", + "src": "3978:13:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5097,14 +5537,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 404, + "id": 1606, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3598:1:1", + "src": "3994:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -5112,7 +5552,7 @@ }, "value": "1" }, - "src": "3582:17:1", + "src": "3978:17:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5123,35 +5563,35 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3575:25:1", + "src": "3971:25:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$108_storage", + "typeIdentifier": "t_struct$_Stage_$1318_storage", "typeString": "struct W12Crowdsale.Stage storage ref" } }, - "id": 407, + "id": 1609, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "endDate", "nodeType": "MemberAccess", - "referencedDeclaration": 97, - "src": "3575:33:1", + "referencedDeclaration": 1307, + "src": "3971:33:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "functionReturnParameters": 393, - "id": 408, + "functionReturnParameters": 1595, + "id": 1610, "nodeType": "Return", - "src": "3568:40:1" + "src": "3964:40:5" } ] }, "documentation": null, - "id": 410, + "id": 1612, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -5159,23 +5599,23 @@ "name": "getEndDate", "nodeType": "FunctionDefinition", "parameters": { - "id": 390, + "id": 1592, "nodeType": "ParameterList", "parameters": [], - "src": "3487:2:1" + "src": "3883:2:5" }, "payable": false, "returnParameters": { - "id": 393, + "id": 1595, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 392, + "id": 1594, "name": "", "nodeType": "VariableDeclaration", - "scope": 410, - "src": "3513:6:1", + "scope": 1612, + "src": "3909:6:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5183,10 +5623,10 @@ "typeString": "uint32" }, "typeName": { - "id": 391, + "id": 1593, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "3513:6:1", + "src": "3909:6:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -5196,19 +5636,19 @@ "visibility": "internal" } ], - "src": "3512:8:1" + "src": "3908:8:5" }, - "scope": 1809, - "src": "3468:147:1", + "scope": 3168, + "src": "3864:147:5", "stateMutability": "view", "superFunction": null, "visibility": "external" }, { "body": { - "id": 449, + "id": 1651, "nodeType": "Block", - "src": "3782:266:1", + "src": "4178:266:5", "statements": [ { "condition": { @@ -5217,7 +5657,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 424, + "id": 1626, "isConstant": false, "isLValue": false, "isPure": false, @@ -5228,7 +5668,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 420, + "id": 1622, "isConstant": false, "isLValue": false, "isPure": false, @@ -5237,18 +5677,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 417, + "id": 1619, "name": "milestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 143, - "src": "3795:10:1", + "referencedDeclaration": 1303, + "src": "4191:10:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$121_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Milestone_$1331_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" } }, - "id": 418, + "id": 1620, "isConstant": false, "isLValue": true, "isPure": false, @@ -5256,7 +5696,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3795:17:1", + "src": "4191:17:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5267,14 +5707,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 419, + "id": 1621, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3816:1:1", + "src": "4212:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5282,7 +5722,7 @@ }, "value": "0" }, - "src": "3795:22:1", + "src": "4191:22:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5292,7 +5732,7 @@ "operator": "||", "rightExpression": { "argumentTypes": null, - "id": 423, + "id": 1625, "isConstant": false, "isLValue": false, "isPure": false, @@ -5300,24 +5740,24 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "3821:10:1", + "src": "4217:10:5", "subExpression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 421, + "id": 1623, "name": "isEnded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1759, - "src": "3822:7:1", + "referencedDeclaration": 3125, + "src": "4218:7:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", "typeString": "function () view returns (bool)" } }, - "id": 422, + "id": 1624, "isConstant": false, "isLValue": false, "isPure": false, @@ -5325,7 +5765,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3822:9:1", + "src": "4218:9:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5336,40 +5776,40 @@ "typeString": "bool" } }, - "src": "3795:36:1", + "src": "4191:36:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 426, + "id": 1628, "nodeType": "IfStatement", - "src": "3792:48:1", + "src": "4188:48:5", "trueBody": { "expression": null, - "functionReturnParameters": 416, - "id": 425, + "functionReturnParameters": 1618, + "id": 1627, "nodeType": "Return", - "src": "3833:7:1" + "src": "4229:7:5" } }, { "expression": { "argumentTypes": null, - "id": 429, + "id": 1631, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 427, + "id": 1629, "name": "found", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "3850:5:1", + "referencedDeclaration": 1617, + "src": "4246:5:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5380,14 +5820,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 428, + "id": 1630, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3858:4:1", + "src": "4254:4:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -5395,26 +5835,26 @@ }, "value": "true" }, - "src": "3850:12:1", + "src": "4246:12:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 430, + "id": 1632, "nodeType": "ExpressionStatement", - "src": "3850:12:1" + "src": "4246:12:5" }, { "body": { - "id": 447, + "id": 1649, "nodeType": "Block", - "src": "4010:32:1", + "src": "4406:32:5", "statements": [ { "expression": { "argumentTypes": null, - "id": 445, + "id": 1647, "isConstant": false, "isLValue": false, "isPure": false, @@ -5422,15 +5862,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "4024:7:1", + "src": "4420:7:5", "subExpression": { "argumentTypes": null, - "id": 444, + "id": 1646, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 413, - "src": "4024:5:1", + "referencedDeclaration": 1615, + "src": "4420:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5441,9 +5881,9 @@ "typeString": "uint256" } }, - "id": 446, + "id": 1648, "nodeType": "ExpressionStatement", - "src": "4024:7:1" + "src": "4420:7:5" } ] }, @@ -5453,7 +5893,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 443, + "id": 1645, "isConstant": false, "isLValue": false, "isPure": false, @@ -5464,19 +5904,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 436, + "id": 1638, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 431, + "id": 1633, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 413, - "src": "3934:5:1", + "referencedDeclaration": 1615, + "src": "4330:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5490,7 +5930,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 435, + "id": 1637, "isConstant": false, "isLValue": false, "isPure": false, @@ -5499,18 +5939,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 432, + "id": 1634, "name": "milestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 143, - "src": "3942:10:1", + "referencedDeclaration": 1303, + "src": "4338:10:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$121_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Milestone_$1331_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" } }, - "id": 433, + "id": 1635, "isConstant": false, "isLValue": true, "isPure": false, @@ -5518,7 +5958,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3942:17:1", + "src": "4338:17:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5529,14 +5969,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 434, + "id": 1636, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3962:1:1", + "src": "4358:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -5544,13 +5984,13 @@ }, "value": "1" }, - "src": "3942:21:1", + "src": "4338:21:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3934:29:1", + "src": "4330:29:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5564,19 +6004,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 442, + "id": 1644, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 437, + "id": 1639, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7296, - "src": "3967:3:1", + "referencedDeclaration": 10044, + "src": "4363:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5590,26 +6030,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 438, + "id": 1640, "name": "milestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 143, - "src": "3974:10:1", + "referencedDeclaration": 1303, + "src": "4370:10:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$121_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Milestone_$1331_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" } }, - "id": 440, + "id": 1642, "indexExpression": { "argumentTypes": null, - "id": 439, + "id": 1641, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 413, - "src": "3985:5:1", + "referencedDeclaration": 1615, + "src": "4381:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5620,46 +6060,46 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3974:17:1", + "src": "4370:17:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$121_storage", + "typeIdentifier": "t_struct$_Milestone_$1331_storage", "typeString": "struct W12Crowdsale.Milestone storage ref" } }, - "id": 441, + "id": 1643, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "withdrawalWindow", "nodeType": "MemberAccess", - "referencedDeclaration": 116, - "src": "3974:34:1", + "referencedDeclaration": 1326, + "src": "4370:34:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "3967:41:1", + "src": "4363:41:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3934:74:1", + "src": "4330:74:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 448, + "id": 1650, "nodeType": "WhileStatement", - "src": "3928:114:1" + "src": "4324:114:5" } ] }, "documentation": "@dev Returns index of active milestone or last milestone", - "id": 450, + "id": 1652, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -5667,23 +6107,23 @@ "name": "getCurrentMilestoneIndex", "nodeType": "FunctionDefinition", "parameters": { - "id": 411, + "id": 1613, "nodeType": "ParameterList", "parameters": [], - "src": "3734:2:1" + "src": "4130:2:5" }, "payable": false, "returnParameters": { - "id": 416, + "id": 1618, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 413, + "id": 1615, "name": "index", "nodeType": "VariableDeclaration", - "scope": 450, - "src": "3758:10:1", + "scope": 1652, + "src": "4154:10:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5691,10 +6131,10 @@ "typeString": "uint256" }, "typeName": { - "id": 412, + "id": 1614, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3758:4:1", + "src": "4154:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5705,11 +6145,11 @@ }, { "constant": false, - "id": 415, + "id": 1617, "name": "found", "nodeType": "VariableDeclaration", - "scope": 450, - "src": "3770:10:1", + "scope": 1652, + "src": "4166:10:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5717,10 +6157,10 @@ "typeString": "bool" }, "typeName": { - "id": 414, + "id": 1616, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3770:4:1", + "src": "4166:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5730,19 +6170,19 @@ "visibility": "internal" } ], - "src": "3757:24:1" + "src": "4153:24:5" }, - "scope": 1809, - "src": "3701:347:1", + "scope": 3168, + "src": "4097:347:5", "stateMutability": "view", - "superFunction": 4378, + "superFunction": 1155, "visibility": "public" }, { "body": { - "id": 478, + "id": 1680, "nodeType": "Block", - "src": "4132:127:1", + "src": "4528:127:5", "statements": [ { "condition": { @@ -5751,7 +6191,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 464, + "id": 1666, "isConstant": false, "isLValue": false, "isPure": false, @@ -5762,7 +6202,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 460, + "id": 1662, "isConstant": false, "isLValue": false, "isPure": false, @@ -5771,18 +6211,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 457, + "id": 1659, "name": "milestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 143, - "src": "4146:10:1", + "referencedDeclaration": 1303, + "src": "4542:10:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$121_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Milestone_$1331_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" } }, - "id": 458, + "id": 1660, "isConstant": false, "isLValue": true, "isPure": false, @@ -5790,7 +6230,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4146:17:1", + "src": "4542:17:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5801,14 +6241,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 459, + "id": 1661, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4167:1:1", + "src": "4563:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5816,7 +6256,7 @@ }, "value": "0" }, - "src": "4146:22:1", + "src": "4542:22:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5826,7 +6266,7 @@ "operator": "||", "rightExpression": { "argumentTypes": null, - "id": 463, + "id": 1665, "isConstant": false, "isLValue": false, "isPure": false, @@ -5834,24 +6274,24 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "4172:10:1", + "src": "4568:10:5", "subExpression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 461, + "id": 1663, "name": "isEnded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1759, - "src": "4173:7:1", + "referencedDeclaration": 3125, + "src": "4569:7:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", "typeString": "function () view returns (bool)" } }, - "id": 462, + "id": 1664, "isConstant": false, "isLValue": false, "isPure": false, @@ -5859,7 +6299,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4173:9:1", + "src": "4569:9:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5870,40 +6310,40 @@ "typeString": "bool" } }, - "src": "4146:36:1", + "src": "4542:36:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 466, + "id": 1668, "nodeType": "IfStatement", - "src": "4142:49:1", + "src": "4538:49:5", "trueBody": { "expression": null, - "functionReturnParameters": 456, - "id": 465, + "functionReturnParameters": 1658, + "id": 1667, "nodeType": "Return", - "src": "4184:7:1" + "src": "4580:7:5" } }, { "expression": { "argumentTypes": null, - "id": 469, + "id": 1671, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 467, + "id": 1669, "name": "found", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 455, - "src": "4201:5:1", + "referencedDeclaration": 1657, + "src": "4597:5:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5914,14 +6354,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 468, + "id": 1670, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "4209:4:1", + "src": "4605:4:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -5929,32 +6369,32 @@ }, "value": "true" }, - "src": "4201:12:1", + "src": "4597:12:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 470, + "id": 1672, "nodeType": "ExpressionStatement", - "src": "4201:12:1" + "src": "4597:12:5" }, { "expression": { "argumentTypes": null, - "id": 476, + "id": 1678, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 471, + "id": 1673, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 453, - "src": "4223:5:1", + "referencedDeclaration": 1655, + "src": "4619:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5968,7 +6408,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 475, + "id": 1677, "isConstant": false, "isLValue": false, "isPure": false, @@ -5977,18 +6417,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 472, + "id": 1674, "name": "milestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 143, - "src": "4231:10:1", + "referencedDeclaration": 1303, + "src": "4627:10:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$121_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Milestone_$1331_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" } }, - "id": 473, + "id": 1675, "isConstant": false, "isLValue": true, "isPure": false, @@ -5996,7 +6436,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4231:17:1", + "src": "4627:17:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6007,14 +6447,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 474, + "id": 1676, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4251:1:1", + "src": "4647:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -6022,26 +6462,26 @@ }, "value": "1" }, - "src": "4231:21:1", + "src": "4627:21:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4223:29:1", + "src": "4619:29:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 477, + "id": 1679, "nodeType": "ExpressionStatement", - "src": "4223:29:1" + "src": "4619:29:5" } ] }, "documentation": null, - "id": 479, + "id": 1681, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -6049,23 +6489,23 @@ "name": "getLastMilestoneIndex", "nodeType": "FunctionDefinition", "parameters": { - "id": 451, + "id": 1653, "nodeType": "ParameterList", "parameters": [], - "src": "4084:2:1" + "src": "4480:2:5" }, "payable": false, "returnParameters": { - "id": 456, + "id": 1658, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 453, + "id": 1655, "name": "index", "nodeType": "VariableDeclaration", - "scope": 479, - "src": "4108:10:1", + "scope": 1681, + "src": "4504:10:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6073,10 +6513,10 @@ "typeString": "uint256" }, "typeName": { - "id": 452, + "id": 1654, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4108:4:1", + "src": "4504:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6087,11 +6527,11 @@ }, { "constant": false, - "id": 455, + "id": 1657, "name": "found", "nodeType": "VariableDeclaration", - "scope": 479, - "src": "4120:10:1", + "scope": 1681, + "src": "4516:10:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6099,10 +6539,10 @@ "typeString": "bool" }, "typeName": { - "id": 454, + "id": 1656, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "4120:4:1", + "src": "4516:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6112,19 +6552,19 @@ "visibility": "internal" } ], - "src": "4107:24:1" + "src": "4503:24:5" }, - "scope": 1809, - "src": "4054:205:1", + "scope": 3168, + "src": "4450:205:5", "stateMutability": "view", - "superFunction": 4385, + "superFunction": 1162, "visibility": "public" }, { "body": { - "id": 508, + "id": 1710, "nodeType": "Block", - "src": "4336:148:1", + "src": "4732:148:5", "statements": [ { "expression": { @@ -6136,19 +6576,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 489, + "id": 1691, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 487, + "id": 1689, "name": "_price", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 481, - "src": "4354:6:1", + "referencedDeclaration": 1683, + "src": "4750:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6159,14 +6599,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 488, + "id": 1690, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4363:1:1", + "src": "4759:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6174,7 +6614,7 @@ }, "value": "0" }, - "src": "4354:10:1", + "src": "4750:10:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6188,21 +6628,21 @@ "typeString": "bool" } ], - "id": 486, + "id": 1688, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "4346:7:1", + "referencedDeclaration": 10045, + "src": "4742:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 490, + "id": 1692, "isConstant": false, "isLValue": false, "isPure": false, @@ -6210,15 +6650,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4346:19:1", + "src": "4742:19:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 491, + "id": 1693, "nodeType": "ExpressionStatement", - "src": "4346:19:1" + "src": "4742:19:5" }, { "expression": { @@ -6230,19 +6670,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 497, + "id": 1699, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 493, + "id": 1695, "name": "_serviceWallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 483, - "src": "4383:14:1", + "referencedDeclaration": 1685, + "src": "4779:14:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6256,14 +6696,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 495, + "id": 1697, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4409:1:1", + "src": "4805:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6279,20 +6719,20 @@ "typeString": "int_const 0" } ], - "id": 494, + "id": 1696, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4401:7:1", + "src": "4797:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 496, + "id": 1698, "isConstant": false, "isLValue": false, "isPure": true, @@ -6300,13 +6740,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4401:10:1", + "src": "4797:10:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4383:28:1", + "src": "4779:28:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6320,21 +6760,21 @@ "typeString": "bool" } ], - "id": 492, + "id": 1694, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "4375:7:1", + "referencedDeclaration": 10045, + "src": "4771:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 498, + "id": 1700, "isConstant": false, "isLValue": false, "isPure": false, @@ -6342,32 +6782,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4375:37:1", + "src": "4771:37:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 499, + "id": 1701, "nodeType": "ExpressionStatement", - "src": "4375:37:1" + "src": "4771:37:5" }, { "expression": { "argumentTypes": null, - "id": 502, + "id": 1704, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 500, + "id": 1702, "name": "price", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 127, - "src": "4423:5:1", + "referencedDeclaration": 1287, + "src": "4819:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6377,43 +6817,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 501, + "id": 1703, "name": "_price", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 481, - "src": "4431:6:1", + "referencedDeclaration": 1683, + "src": "4827:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4423:14:1", + "src": "4819:14:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 503, + "id": 1705, "nodeType": "ExpressionStatement", - "src": "4423:14:1" + "src": "4819:14:5" }, { "expression": { "argumentTypes": null, - "id": 506, + "id": 1708, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 504, + "id": 1706, "name": "serviceWallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 133, - "src": "4447:13:1", + "referencedDeclaration": 1293, + "src": "4843:13:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6423,31 +6863,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 505, + "id": 1707, "name": "_serviceWallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 483, - "src": "4463:14:1", + "referencedDeclaration": 1685, + "src": "4859:14:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4447:30:1", + "src": "4843:30:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 507, + "id": 1709, "nodeType": "ExpressionStatement", - "src": "4447:30:1" + "src": "4843:30:5" } ] }, "documentation": null, - "id": 509, + "id": 1711, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -6455,16 +6895,16 @@ "name": "__setParameters", "nodeType": "FunctionDefinition", "parameters": { - "id": 484, + "id": 1686, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 481, + "id": 1683, "name": "_price", "nodeType": "VariableDeclaration", - "scope": 509, - "src": "4290:11:1", + "scope": 1711, + "src": "4686:11:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6472,10 +6912,10 @@ "typeString": "uint256" }, "typeName": { - "id": 480, + "id": 1682, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4290:4:1", + "src": "4686:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6486,11 +6926,11 @@ }, { "constant": false, - "id": 483, + "id": 1685, "name": "_serviceWallet", "nodeType": "VariableDeclaration", - "scope": 509, - "src": "4303:22:1", + "scope": 1711, + "src": "4699:22:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6498,10 +6938,10 @@ "typeString": "address" }, "typeName": { - "id": 482, + "id": 1684, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4303:7:1", + "src": "4699:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6511,26 +6951,26 @@ "visibility": "internal" } ], - "src": "4289:37:1" + "src": "4685:37:5" }, "payable": false, "returnParameters": { - "id": 485, + "id": 1687, "nodeType": "ParameterList", "parameters": [], - "src": "4336:0:1" + "src": "4732:0:5" }, - "scope": 1809, - "src": "4265:219:1", + "scope": 3168, + "src": "4661:219:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 523, + "id": 1725, "nodeType": "Block", - "src": "4561:55:1", + "src": "4957:55:5", "statements": [ { "expression": { @@ -6538,12 +6978,12 @@ "arguments": [ { "argumentTypes": null, - "id": 519, + "id": 1721, "name": "_price", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 511, - "src": "4587:6:1", + "referencedDeclaration": 1713, + "src": "4983:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6551,12 +6991,12 @@ }, { "argumentTypes": null, - "id": 520, + "id": 1722, "name": "serviceWallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 133, - "src": "4595:13:1", + "referencedDeclaration": 1293, + "src": "4991:13:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6574,18 +7014,18 @@ "typeString": "address" } ], - "id": 518, + "id": 1720, "name": "__setParameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 509, - "src": "4571:15:1", + "referencedDeclaration": 1711, + "src": "4967:15:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$__$", "typeString": "function (uint256,address)" } }, - "id": 521, + "id": 1723, "isConstant": false, "isLValue": false, "isPure": false, @@ -6593,76 +7033,76 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4571:38:1", + "src": "4967:38:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 522, + "id": 1724, "nodeType": "ExpressionStatement", - "src": "4571:38:1" + "src": "4967:38:5" } ] }, "documentation": null, - "id": 524, + "id": 1726, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 514, + "id": 1716, "modifierName": { "argumentTypes": null, - "id": 513, + "id": 1715, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6888, - "src": "4535:9:1", + "referencedDeclaration": 9636, + "src": "4931:9:5", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4535:9:1" + "src": "4931:9:5" }, { "arguments": null, - "id": 516, + "id": 1718, "modifierName": { "argumentTypes": null, - "id": 515, + "id": 1717, "name": "beforeSaleStart", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1798, - "src": "4545:15:1", + "referencedDeclaration": 3157, + "src": "4941:15:5", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4545:15:1" + "src": "4941:15:5" } ], "name": "setParameters", "nodeType": "FunctionDefinition", "parameters": { - "id": 512, + "id": 1714, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 511, + "id": 1713, "name": "_price", "nodeType": "VariableDeclaration", - "scope": 524, - "src": "4513:11:1", + "scope": 1726, + "src": "4909:11:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6670,10 +7110,10 @@ "typeString": "uint256" }, "typeName": { - "id": 510, + "id": 1712, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4513:4:1", + "src": "4909:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6683,26 +7123,26 @@ "visibility": "internal" } ], - "src": "4512:13:1" + "src": "4908:13:5" }, "payable": false, "returnParameters": { - "id": 517, + "id": 1719, "nodeType": "ParameterList", "parameters": [], - "src": "4561:0:1" + "src": "4957:0:5" }, - "scope": 1809, - "src": "4490:126:1", + "scope": 3168, + "src": "4886:126:5", "stateMutability": "nonpayable", - "superFunction": 4309, + "superFunction": 1083, "visibility": "external" }, { "body": { - "id": 607, + "id": 1847, "nodeType": "Block", - "src": "4982:740:1", + "src": "5416:1015:5", "statements": [ { "expression": { @@ -6714,7 +7154,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 553, + "id": 1758, "isConstant": false, "isLValue": false, "isPure": false, @@ -6723,18 +7163,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 550, + "id": 1755, "name": "parametersOfStages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "5049:18:1", + "referencedDeclaration": 1731, + "src": "5483:18:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$6_calldata_$dyn_calldata_ptr", "typeString": "uint256[6] calldata[] calldata" } }, - "id": 551, + "id": 1756, "isConstant": false, "isLValue": false, "isPure": false, @@ -6742,7 +7182,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5049:25:1", + "src": "5483:25:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6753,14 +7193,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 552, + "id": 1757, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5078:1:1", + "src": "5512:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6768,7 +7208,7 @@ }, "value": "0" }, - "src": "5049:30:1", + "src": "5483:30:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6782,21 +7222,21 @@ "typeString": "bool" } ], - "id": 549, + "id": 1754, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "5041:7:1", + "referencedDeclaration": 10045, + "src": "5475:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 554, + "id": 1759, "isConstant": false, "isLValue": false, "isPure": false, @@ -6804,15 +7244,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5041:39:1", + "src": "5475:39:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 555, + "id": 1760, "nodeType": "ExpressionStatement", - "src": "5041:39:1" + "src": "5475:39:5" }, { "expression": { @@ -6824,7 +7264,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 563, + "id": 1768, "isConstant": false, "isLValue": false, "isPure": false, @@ -6833,18 +7273,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 557, + "id": 1762, "name": "parametersOfStages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "5098:18:1", + "referencedDeclaration": 1731, + "src": "5532:18:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$6_calldata_$dyn_calldata_ptr", "typeString": "uint256[6] calldata[] calldata" } }, - "id": 558, + "id": 1763, "isConstant": false, "isLValue": false, "isPure": false, @@ -6852,7 +7292,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5098:25:1", + "src": "5532:25:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6865,7 +7305,7 @@ "arguments": [ { "argumentTypes": null, - "id": 561, + "id": 1766, "isConstant": false, "isLValue": false, "isPure": true, @@ -6873,18 +7313,18 @@ "nodeType": "UnaryOperation", "operator": "-", "prefix": true, - "src": "5133:3:1", + "src": "5567:3:5", "subExpression": { "argumentTypes": null, "hexValue": "31", - "id": 560, + "id": 1765, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5135:1:1", + "src": "5569:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -6905,20 +7345,20 @@ "typeString": "int_const -1" } ], - "id": 559, + "id": 1764, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "5127:5:1", + "src": "5561:5:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": "uint8" }, - "id": 562, + "id": 1767, "isConstant": false, "isLValue": false, "isPure": true, @@ -6926,13 +7366,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5127:10:1", + "src": "5561:10:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "5098:39:1", + "src": "5532:39:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6946,21 +7386,21 @@ "typeString": "bool" } ], - "id": 556, + "id": 1761, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "5090:7:1", + "referencedDeclaration": 10045, + "src": "5524:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 564, + "id": 1769, "isConstant": false, "isLValue": false, "isPure": false, @@ -6968,15 +7408,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5090:48:1", + "src": "5524:48:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 565, + "id": 1770, "nodeType": "ExpressionStatement", - "src": "5090:48:1" + "src": "5524:48:5" }, { "expression": { @@ -6988,7 +7428,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 573, + "id": 1778, "isConstant": false, "isLValue": false, "isPure": false, @@ -6997,18 +7437,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 567, + "id": 1772, "name": "parametersOfMilestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 537, - "src": "5210:22:1", + "referencedDeclaration": 1739, + "src": "5644:22:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$4_calldata_$dyn_calldata_ptr", "typeString": "uint256[4] calldata[] calldata" } }, - "id": 568, + "id": 1773, "isConstant": false, "isLValue": false, "isPure": false, @@ -7016,7 +7456,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5210:29:1", + "src": "5644:29:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7029,7 +7469,7 @@ "arguments": [ { "argumentTypes": null, - "id": 571, + "id": 1776, "isConstant": false, "isLValue": false, "isPure": true, @@ -7037,18 +7477,18 @@ "nodeType": "UnaryOperation", "operator": "-", "prefix": true, - "src": "5249:3:1", + "src": "5683:3:5", "subExpression": { "argumentTypes": null, "hexValue": "31", - "id": 570, + "id": 1775, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5251:1:1", + "src": "5685:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -7069,20 +7509,20 @@ "typeString": "int_const -1" } ], - "id": 569, + "id": 1774, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "5243:5:1", + "src": "5677:5:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": "uint8" }, - "id": 572, + "id": 1777, "isConstant": false, "isLValue": false, "isPure": true, @@ -7090,13 +7530,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5243:10:1", + "src": "5677:10:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "5210:43:1", + "src": "5644:43:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7110,21 +7550,21 @@ "typeString": "bool" } ], - "id": 566, + "id": 1771, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "5202:7:1", + "referencedDeclaration": 10045, + "src": "5636:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 574, + "id": 1779, "isConstant": false, "isLValue": false, "isPure": false, @@ -7132,15 +7572,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5202:52:1", + "src": "5636:52:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 575, + "id": 1780, "nodeType": "ExpressionStatement", - "src": "5202:52:1" + "src": "5636:52:5" }, { "expression": { @@ -7152,7 +7592,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 583, + "id": 1788, "isConstant": false, "isLValue": false, "isPure": false, @@ -7161,18 +7601,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 577, + "id": 1782, "name": "parametersOfMilestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 537, - "src": "5272:22:1", + "referencedDeclaration": 1739, + "src": "5706:22:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$4_calldata_$dyn_calldata_ptr", "typeString": "uint256[4] calldata[] calldata" } }, - "id": 578, + "id": 1783, "isConstant": false, "isLValue": false, "isPure": false, @@ -7180,7 +7620,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5272:29:1", + "src": "5706:29:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7194,7 +7634,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 582, + "id": 1787, "isConstant": false, "isLValue": false, "isPure": false, @@ -7203,18 +7643,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 579, + "id": 1784, "name": "nameAndDescriptionsOffsetOfMilestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 540, - "src": "5305:37:1", + "referencedDeclaration": 1742, + "src": "5739:37:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_calldata_ptr", "typeString": "uint32[] calldata" } }, - "id": 580, + "id": 1785, "isConstant": false, "isLValue": false, "isPure": false, @@ -7222,7 +7662,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5305:44:1", + "src": "5739:44:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7233,14 +7673,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "32", - "id": 581, + "id": 1786, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5352:1:1", + "src": "5786:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -7248,13 +7688,13 @@ }, "value": "2" }, - "src": "5305:48:1", + "src": "5739:48:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5272:81:1", + "src": "5706:81:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7268,21 +7708,21 @@ "typeString": "bool" } ], - "id": 576, + "id": 1781, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "5264:7:1", + "referencedDeclaration": 10045, + "src": "5698:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 584, + "id": 1789, "isConstant": false, "isLValue": false, "isPure": false, @@ -7290,15 +7730,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5264:90:1", + "src": "5698:90:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 585, + "id": 1790, "nodeType": "ExpressionStatement", - "src": "5264:90:1" + "src": "5698:90:5" }, { "expression": { @@ -7310,7 +7750,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 593, + "id": 1798, "isConstant": false, "isLValue": false, "isPure": false, @@ -7319,18 +7759,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 587, + "id": 1792, "name": "parametersOfMilestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 537, - "src": "5372:22:1", + "referencedDeclaration": 1739, + "src": "5806:22:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$4_calldata_$dyn_calldata_ptr", "typeString": "uint256[4] calldata[] calldata" } }, - "id": 588, + "id": 1793, "isConstant": false, "isLValue": false, "isPure": false, @@ -7338,7 +7778,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5372:29:1", + "src": "5806:29:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7352,7 +7792,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 592, + "id": 1797, "isConstant": false, "isLValue": false, "isPure": false, @@ -7361,18 +7801,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 589, + "id": 1794, "name": "nameAndDescriptionsOfMilestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 542, - "src": "5405:31:1", + "referencedDeclaration": 1744, + "src": "5839:31:5", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 590, + "id": 1795, "isConstant": false, "isLValue": false, "isPure": false, @@ -7380,7 +7820,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5405:38:1", + "src": "5839:38:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7391,14 +7831,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "32", - "id": 591, + "id": 1796, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5446:1:1", + "src": "5880:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -7406,13 +7846,123 @@ }, "value": "2" }, - "src": "5405:42:1", + "src": "5839:42:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5806:75:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1791, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "5798:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5798:84:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1800, + "nodeType": "ExpressionStatement", + "src": "5798:84:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1805, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1802, + "name": "paymentMethodsList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1747, + "src": "5939:18:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", + "typeString": "bytes32[] calldata" + } + }, + "id": 1803, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5939:25:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5372:75:1", + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1804, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5968:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5939:30:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7426,21 +7976,21 @@ "typeString": "bool" } ], - "id": 586, + "id": 1801, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "5364:7:1", + "referencedDeclaration": 10045, + "src": "5931:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 594, + "id": 1806, "isConstant": false, "isLValue": false, "isPure": false, @@ -7448,15 +7998,312 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5364:84:1", + "src": "5931:39:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 595, + "id": 1807, "nodeType": "ExpressionStatement", - "src": "5364:84:1" + "src": "5931:39:5" + }, + { + "body": { + "id": 1828, + "nodeType": "Block", + "src": "6034:72:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1822, + "name": "paymentMethodsList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1747, + "src": "6072:18:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", + "typeString": "bytes32[] calldata" + } + }, + "id": 1824, + "indexExpression": { + "argumentTypes": null, + "id": 1823, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1809, + "src": "6091:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6072:21:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 1820, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1285, + "src": "6056:5:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "id": 1821, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "hasSymbol", + "nodeType": "MemberAccess", + "referencedDeclaration": 7037, + "src": "6056:15:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (bytes32) view external returns (bool)" + } + }, + "id": 1825, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6056:38:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1819, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "6048:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1826, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6048:47:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1827, + "nodeType": "ExpressionStatement", + "src": "6048:47:5" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1812, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1809, + "src": "5998:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1813, + "name": "paymentMethodsList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1747, + "src": "6002:18:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", + "typeString": "bytes32[] calldata" + } + }, + "id": 1814, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6002:25:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5998:29:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1829, + "initializationExpression": { + "assignments": [ + 1809 + ], + "declarations": [ + { + "constant": false, + "id": 1809, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 1848, + "src": "5986:6:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1808, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5986:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1811, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 1810, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5995:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "5986:10:5" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 1817, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "6029:3:5", + "subExpression": { + "argumentTypes": null, + "id": 1816, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1809, + "src": "6029:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1818, + "nodeType": "ExpressionStatement", + "src": "6029:3:5" + }, + "nodeType": "ForStatement", + "src": "5981:125:5" }, { "expression": { @@ -7464,12 +8311,12 @@ "arguments": [ { "argumentTypes": null, - "id": 597, + "id": 1831, "name": "parametersOfStages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "5483:18:1", + "referencedDeclaration": 1731, + "src": "6140:18:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$6_calldata_$dyn_calldata_ptr", "typeString": "uint256[6] calldata[] calldata" @@ -7477,12 +8324,12 @@ }, { "argumentTypes": null, - "id": 598, + "id": 1832, "name": "bonusConditionsOfStages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 532, - "src": "5515:23:1", + "referencedDeclaration": 1734, + "src": "6172:23:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" @@ -7500,18 +8347,18 @@ "typeString": "uint256[] calldata" } ], - "id": 596, + "id": 1830, "name": "_setStages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 860, - "src": "5459:10:1", + "referencedDeclaration": 2100, + "src": "6116: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": 599, + "id": 1833, "isConstant": false, "isLValue": false, "isPure": false, @@ -7519,15 +8366,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5459:89:1", + "src": "6116:89:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 600, + "id": 1834, "nodeType": "ExpressionStatement", - "src": "5459:89:1" + "src": "6116:89:5" }, { "expression": { @@ -7535,12 +8382,12 @@ "arguments": [ { "argumentTypes": null, - "id": 602, + "id": 1836, "name": "parametersOfMilestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 537, - "src": "5587:22:1", + "referencedDeclaration": 1739, + "src": "6244:22:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$4_calldata_$dyn_calldata_ptr", "typeString": "uint256[4] calldata[] calldata" @@ -7548,12 +8395,12 @@ }, { "argumentTypes": null, - "id": 603, + "id": 1837, "name": "nameAndDescriptionsOffsetOfMilestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 540, - "src": "5623:37:1", + "referencedDeclaration": 1742, + "src": "6280:37:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_calldata_ptr", "typeString": "uint32[] calldata" @@ -7561,12 +8408,12 @@ }, { "argumentTypes": null, - "id": 604, + "id": 1838, "name": "nameAndDescriptionsOfMilestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 542, - "src": "5674:31:1", + "referencedDeclaration": 1744, + "src": "6331:31:5", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -7588,18 +8435,18 @@ "typeString": "bytes calldata" } ], - "id": 601, + "id": 1835, "name": "_setMilestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1329, - "src": "5559:14:1", + "referencedDeclaration": 2569, + "src": "6216: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": 605, + "id": 1839, "isConstant": false, "isLValue": false, "isPure": false, @@ -7607,76 +8454,146 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5559:156:1", + "src": "6216:156:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 606, + "id": 1840, "nodeType": "ExpressionStatement", - "src": "5559:156:1" + "src": "6216:156:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1844, + "name": "paymentMethodsList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1747, + "src": "6405: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": 1841, + "name": "paymentMethods", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1297, + "src": "6383:14:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Methods_$4851_storage", + "typeString": "struct PaymentMethods.Methods storage ref" + } + }, + "id": 1843, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "update", + "nodeType": "MemberAccess", + "referencedDeclaration": 4930, + "src": "6383:21:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Methods_$4851_storage_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$bound_to$_t_struct$_Methods_$4851_storage_ptr_$", + "typeString": "function (struct PaymentMethods.Methods storage pointer,bytes32[] memory)" + } + }, + "id": 1845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6383:41:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1846, + "nodeType": "ExpressionStatement", + "src": "6383:41:5" } ] }, "documentation": "@dev Setup all crowdsale parameters at a time", - "id": 608, + "id": 1848, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 545, + "id": 1750, "modifierName": { "argumentTypes": null, - "id": 544, + "id": 1749, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6888, - "src": "4952:9:1", + "referencedDeclaration": 9636, + "src": "5386:9:5", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4952:9:1" + "src": "5386:9:5" }, { "arguments": null, - "id": 547, + "id": 1752, "modifierName": { "argumentTypes": null, - "id": 546, + "id": 1751, "name": "beforeSaleStart", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1798, - "src": "4962:15:1", + "referencedDeclaration": 3157, + "src": "5396:15:5", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4962:15:1" + "src": "5396:15:5" } ], "name": "setup", "nodeType": "FunctionDefinition", "parameters": { - "id": 543, + "id": 1748, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 529, + "id": 1731, "name": "parametersOfStages", "nodeType": "VariableDeclaration", - "scope": 608, - "src": "4715:28:1", + "scope": 1848, + "src": "5111:28:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7686,27 +8603,27 @@ "typeName": { "baseType": { "baseType": { - "id": 525, + "id": 1727, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4715:4:1", + "src": "5111:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 527, + "id": 1729, "length": { "argumentTypes": null, "hexValue": "36", - "id": 526, + "id": 1728, "isConstant": false, "isLValue": false, "isPure": false, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4720:1:1", + "src": "5116:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": null, @@ -7715,16 +8632,16 @@ "value": "6" }, "nodeType": "ArrayTypeName", - "src": "4715:7:1", + "src": "5111:7:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_storage_ptr", "typeString": "uint256[6]" } }, - "id": 528, + "id": 1730, "length": null, "nodeType": "ArrayTypeName", - "src": "4715:9:1", + "src": "5111:9:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$6_storage_$dyn_storage_ptr", "typeString": "uint256[6][]" @@ -7735,11 +8652,11 @@ }, { "constant": false, - "id": 532, + "id": 1734, "name": "bonusConditionsOfStages", "nodeType": "VariableDeclaration", - "scope": 608, - "src": "4753:30:1", + "scope": 1848, + "src": "5149:30:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7748,19 +8665,19 @@ }, "typeName": { "baseType": { - "id": 530, + "id": 1732, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4753:4:1", + "src": "5149:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 531, + "id": 1733, "length": null, "nodeType": "ArrayTypeName", - "src": "4753:6:1", + "src": "5149:6:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -7771,11 +8688,11 @@ }, { "constant": false, - "id": 537, + "id": 1739, "name": "parametersOfMilestones", "nodeType": "VariableDeclaration", - "scope": 608, - "src": "4793:32:1", + "scope": 1848, + "src": "5189:32:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7785,27 +8702,27 @@ "typeName": { "baseType": { "baseType": { - "id": 533, + "id": 1735, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4793:4:1", + "src": "5189:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 535, + "id": 1737, "length": { "argumentTypes": null, "hexValue": "34", - "id": 534, + "id": 1736, "isConstant": false, "isLValue": false, "isPure": false, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4798:1:1", + "src": "5194:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": null, @@ -7814,16 +8731,16 @@ "value": "4" }, "nodeType": "ArrayTypeName", - "src": "4793:7:1", + "src": "5189:7:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_storage_ptr", "typeString": "uint256[4]" } }, - "id": 536, + "id": 1738, "length": null, "nodeType": "ArrayTypeName", - "src": "4793:9:1", + "src": "5189:9:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$4_storage_$dyn_storage_ptr", "typeString": "uint256[4][]" @@ -7834,11 +8751,11 @@ }, { "constant": false, - "id": 540, + "id": 1742, "name": "nameAndDescriptionsOffsetOfMilestones", "nodeType": "VariableDeclaration", - "scope": 608, - "src": "4835:46:1", + "scope": 1848, + "src": "5231:46:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7847,19 +8764,19 @@ }, "typeName": { "baseType": { - "id": 538, + "id": 1740, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "4835:6:1", + "src": "5231:6:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 539, + "id": 1741, "length": null, "nodeType": "ArrayTypeName", - "src": "4835:8:1", + "src": "5231:8:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", "typeString": "uint32[]" @@ -7870,11 +8787,11 @@ }, { "constant": false, - "id": 542, + "id": 1744, "name": "nameAndDescriptionsOfMilestones", "nodeType": "VariableDeclaration", - "scope": 608, - "src": "4891:37:1", + "scope": 1848, + "src": "5287:37:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7882,10 +8799,10 @@ "typeString": "bytes" }, "typeName": { - "id": 541, + "id": 1743, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "4891:5:1", + "src": "5287:5:5", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -7893,28 +8810,64 @@ }, "value": null, "visibility": "internal" + }, + { + "constant": false, + "id": 1747, + "name": "paymentMethodsList", + "nodeType": "VariableDeclaration", + "scope": 1848, + "src": "5334:28:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 1745, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5334:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 1746, + "length": null, + "nodeType": "ArrayTypeName", + "src": "5334:9:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "value": null, + "visibility": "internal" } ], - "src": "4705:229:1" + "src": "5101:267:5" }, "payable": false, "returnParameters": { - "id": 548, + "id": 1753, "nodeType": "ParameterList", "parameters": [], - "src": "4982:0:1" + "src": "5416:0:5" }, - "scope": 1809, - "src": "4691:1031:1", + "scope": 3168, + "src": "5087:1344:5", "stateMutability": "nonpayable", - "superFunction": 4330, + "superFunction": 1107, "visibility": "external" }, { "body": { - "id": 859, + "id": 2099, "nodeType": "Block", - "src": "6198:1566:1", + "src": "6907:1566:5", "statements": [ { "condition": { @@ -7923,7 +8876,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 622, + "id": 1862, "isConstant": false, "isLValue": false, "isPure": false, @@ -7932,18 +8885,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 619, + "id": 1859, "name": "milestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 143, - "src": "6212:10:1", + "referencedDeclaration": 1303, + "src": "6921:10:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$121_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Milestone_$1331_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" } }, - "id": 620, + "id": 1860, "isConstant": false, "isLValue": true, "isPure": false, @@ -7951,7 +8904,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6212:17:1", + "src": "6921:17:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7962,14 +8915,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 621, + "id": 1861, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6232:1:1", + "src": "6941:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -7977,20 +8930,20 @@ }, "value": "0" }, - "src": "6212:21:1", + "src": "6921:21:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 640, + "id": 1880, "nodeType": "IfStatement", - "src": "6208:207:1", + "src": "6917:207:5", "trueBody": { - "id": 639, + "id": 1879, "nodeType": "Block", - "src": "6235:180:1", + "src": "6944:180:5", "statements": [ { "expression": { @@ -8002,7 +8955,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 636, + "id": 1876, "isConstant": false, "isLValue": false, "isPure": false, @@ -8013,29 +8966,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 624, + "id": 1864, "name": "milestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 143, - "src": "6343:10:1", + "referencedDeclaration": 1303, + "src": "7052:10:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$121_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Milestone_$1331_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" } }, - "id": 626, + "id": 1866, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 625, + "id": 1865, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6354:1:1", + "src": "7063:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -8048,21 +9001,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6343:13:1", + "src": "7052:13:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$121_storage", + "typeIdentifier": "t_struct$_Milestone_$1331_storage", "typeString": "struct W12Crowdsale.Milestone storage ref" } }, - "id": 627, + "id": 1867, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "endDate", "nodeType": "MemberAccess", - "referencedDeclaration": 110, - "src": "6343:21:1", + "referencedDeclaration": 1320, + "src": "7052:21:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -8076,25 +9029,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 628, + "id": 1868, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 613, - "src": "6367:10:1", + "referencedDeclaration": 1853, + "src": "7076:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", "typeString": "uint256[6] memory[] memory" } }, - "id": 633, + "id": 1873, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 632, + "id": 1872, "isConstant": false, "isLValue": false, "isPure": false, @@ -8103,18 +9056,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 629, + "id": 1869, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 613, - "src": "6378:10:1", + "referencedDeclaration": 1853, + "src": "7087:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", "typeString": "uint256[6] memory[] memory" } }, - "id": 630, + "id": 1870, "isConstant": false, "isLValue": false, "isPure": false, @@ -8122,7 +9075,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6378:17:1", + "src": "7087:17:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8133,14 +9086,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 631, + "id": 1871, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6398:1:1", + "src": "7107:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -8148,7 +9101,7 @@ }, "value": "1" }, - "src": "6378:21:1", + "src": "7087:21:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8159,24 +9112,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6367:33:1", + "src": "7076:33:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_memory", "typeString": "uint256[6] memory" } }, - "id": 635, + "id": 1875, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 634, + "id": 1874, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6401:1:1", + "src": "7110:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -8189,13 +9142,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6367:36:1", + "src": "7076:36:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6343:60:1", + "src": "7052:60:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8209,21 +9162,21 @@ "typeString": "bool" } ], - "id": 623, + "id": 1863, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "6335:7:1", + "referencedDeclaration": 10045, + "src": "7044:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 637, + "id": 1877, "isConstant": false, "isLValue": false, "isPure": false, @@ -8231,15 +9184,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6335:69:1", + "src": "7044:69:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 638, + "id": 1878, "nodeType": "ExpressionStatement", - "src": "6335:69:1" + "src": "7044:69:5" } ] } @@ -8247,7 +9200,7 @@ { "expression": { "argumentTypes": null, - "id": 642, + "id": 1882, "isConstant": false, "isLValue": false, "isPure": false, @@ -8255,17 +9208,17 @@ "nodeType": "UnaryOperation", "operator": "delete", "prefix": true, - "src": "6425:13:1", + "src": "7134:13:5", "subExpression": { "argumentTypes": null, - "id": 641, + "id": 1881, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "6432:6:1", + "referencedDeclaration": 1300, + "src": "7141:6:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$108_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" } }, @@ -8274,15 +9227,15 @@ "typeString": "tuple()" } }, - "id": 643, + "id": 1883, "nodeType": "ExpressionStatement", - "src": "6425:13:1" + "src": "7134:13:5" }, { "body": { - "id": 854, + "id": 2094, "nodeType": "Block", - "src": "6495:1232:1", + "src": "7204:1232:5", "statements": [ { "expression": { @@ -8294,7 +9247,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 665, + "id": 1905, "isConstant": false, "isLValue": false, "isPure": false, @@ -8305,26 +9258,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 656, + "id": 1896, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 613, - "src": "6547:10:1", + "referencedDeclaration": 1853, + "src": "7256:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", "typeString": "uint256[6] memory[] memory" } }, - "id": 658, + "id": 1898, "indexExpression": { "argumentTypes": null, - "id": 657, + "id": 1897, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 645, - "src": "6558:1:1", + "referencedDeclaration": 1885, + "src": "7267:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -8335,24 +9288,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6547:13:1", + "src": "7256:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_memory", "typeString": "uint256[6] memory" } }, - "id": 660, + "id": 1900, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 659, + "id": 1899, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6561:1:1", + "src": "7270:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -8365,7 +9318,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6547:16:1", + "src": "7256:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8378,7 +9331,7 @@ "arguments": [ { "argumentTypes": null, - "id": 663, + "id": 1903, "isConstant": false, "isLValue": false, "isPure": true, @@ -8386,18 +9339,18 @@ "nodeType": "UnaryOperation", "operator": "-", "prefix": true, - "src": "6574:2:1", + "src": "7283:2:5", "subExpression": { "argumentTypes": null, "hexValue": "31", - "id": 662, + "id": 1902, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6575:1:1", + "src": "7284:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -8418,20 +9371,20 @@ "typeString": "int_const -1" } ], - "id": 661, + "id": 1901, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6567:6:1", + "src": "7276:6:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": "uint32" }, - "id": 664, + "id": 1904, "isConstant": false, "isLValue": false, "isPure": true, @@ -8439,13 +9392,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6567:10:1", + "src": "7276:10:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "6547:30:1", + "src": "7256:30:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8459,21 +9412,21 @@ "typeString": "bool" } ], - "id": 655, + "id": 1895, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "6539:7:1", + "referencedDeclaration": 10045, + "src": "7248:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 666, + "id": 1906, "isConstant": false, "isLValue": false, "isPure": false, @@ -8481,15 +9434,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6539:39:1", + "src": "7248:39:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 667, + "id": 1907, "nodeType": "ExpressionStatement", - "src": "6539:39:1" + "src": "7248:39:5" }, { "expression": { @@ -8501,7 +9454,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 678, + "id": 1918, "isConstant": false, "isLValue": false, "isPure": false, @@ -8512,26 +9465,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 669, + "id": 1909, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 613, - "src": "6600:10:1", + "referencedDeclaration": 1853, + "src": "7309:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", "typeString": "uint256[6] memory[] memory" } }, - "id": 671, + "id": 1911, "indexExpression": { "argumentTypes": null, - "id": 670, + "id": 1910, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 645, - "src": "6611:1:1", + "referencedDeclaration": 1885, + "src": "7320:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -8542,24 +9495,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6600:13:1", + "src": "7309:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_memory", "typeString": "uint256[6] memory" } }, - "id": 673, + "id": 1913, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 672, + "id": 1912, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6614:1:1", + "src": "7323:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -8572,7 +9525,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6600:16:1", + "src": "7309:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8585,7 +9538,7 @@ "arguments": [ { "argumentTypes": null, - "id": 676, + "id": 1916, "isConstant": false, "isLValue": false, "isPure": true, @@ -8593,18 +9546,18 @@ "nodeType": "UnaryOperation", "operator": "-", "prefix": true, - "src": "6627:2:1", + "src": "7336:2:5", "subExpression": { "argumentTypes": null, "hexValue": "31", - "id": 675, + "id": 1915, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6628:1:1", + "src": "7337:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -8625,20 +9578,20 @@ "typeString": "int_const -1" } ], - "id": 674, + "id": 1914, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6620:6:1", + "src": "7329:6:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": "uint32" }, - "id": 677, + "id": 1917, "isConstant": false, "isLValue": false, "isPure": true, @@ -8646,13 +9599,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6620:10:1", + "src": "7329:10:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "6600:30:1", + "src": "7309:30:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8666,21 +9619,21 @@ "typeString": "bool" } ], - "id": 668, + "id": 1908, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "6592:7:1", + "referencedDeclaration": 10045, + "src": "7301:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 679, + "id": 1919, "isConstant": false, "isLValue": false, "isPure": false, @@ -8688,15 +9641,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6592:39:1", + "src": "7301:39:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 680, + "id": 1920, "nodeType": "ExpressionStatement", - "src": "6592:39:1" + "src": "7301:39:5" }, { "expression": { @@ -8708,7 +9661,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 691, + "id": 1931, "isConstant": false, "isLValue": false, "isPure": false, @@ -8719,26 +9672,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 682, + "id": 1922, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 613, - "src": "6653:10:1", + "referencedDeclaration": 1853, + "src": "7362:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", "typeString": "uint256[6] memory[] memory" } }, - "id": 684, + "id": 1924, "indexExpression": { "argumentTypes": null, - "id": 683, + "id": 1923, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 645, - "src": "6664:1:1", + "referencedDeclaration": 1885, + "src": "7373:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -8749,24 +9702,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6653:13:1", + "src": "7362:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_memory", "typeString": "uint256[6] memory" } }, - "id": 686, + "id": 1926, "indexExpression": { "argumentTypes": null, "hexValue": "33", - "id": 685, + "id": 1925, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6667:1:1", + "src": "7376:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", @@ -8779,7 +9732,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6653:16:1", + "src": "7362:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8792,7 +9745,7 @@ "arguments": [ { "argumentTypes": null, - "id": 689, + "id": 1929, "isConstant": false, "isLValue": false, "isPure": true, @@ -8800,18 +9753,18 @@ "nodeType": "UnaryOperation", "operator": "-", "prefix": true, - "src": "6680:2:1", + "src": "7389:2:5", "subExpression": { "argumentTypes": null, "hexValue": "31", - "id": 688, + "id": 1928, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6681:1:1", + "src": "7390:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -8832,20 +9785,20 @@ "typeString": "int_const -1" } ], - "id": 687, + "id": 1927, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6673:6:1", + "src": "7382:6:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": "uint32" }, - "id": 690, + "id": 1930, "isConstant": false, "isLValue": false, "isPure": true, @@ -8853,13 +9806,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6673:10:1", + "src": "7382:10:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "6653:30:1", + "src": "7362:30:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8873,21 +9826,21 @@ "typeString": "bool" } ], - "id": 681, + "id": 1921, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "6645:7:1", + "referencedDeclaration": 10045, + "src": "7354:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 692, + "id": 1932, "isConstant": false, "isLValue": false, "isPure": false, @@ -8895,15 +9848,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6645:39:1", + "src": "7354:39:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 693, + "id": 1933, "nodeType": "ExpressionStatement", - "src": "6645:39:1" + "src": "7354:39:5" }, { "expression": { @@ -8915,7 +9868,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 704, + "id": 1944, "isConstant": false, "isLValue": false, "isPure": false, @@ -8926,26 +9879,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 695, + "id": 1935, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 613, - "src": "6706:10:1", + "referencedDeclaration": 1853, + "src": "7415:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", "typeString": "uint256[6] memory[] memory" } }, - "id": 697, + "id": 1937, "indexExpression": { "argumentTypes": null, - "id": 696, + "id": 1936, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 645, - "src": "6717:1:1", + "referencedDeclaration": 1885, + "src": "7426:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -8956,24 +9909,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6706:13:1", + "src": "7415:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_memory", "typeString": "uint256[6] memory" } }, - "id": 699, + "id": 1939, "indexExpression": { "argumentTypes": null, "hexValue": "34", - "id": 698, + "id": 1938, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6720:1:1", + "src": "7429:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", @@ -8986,7 +9939,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6706:16:1", + "src": "7415:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8999,7 +9952,7 @@ "arguments": [ { "argumentTypes": null, - "id": 702, + "id": 1942, "isConstant": false, "isLValue": false, "isPure": true, @@ -9007,18 +9960,18 @@ "nodeType": "UnaryOperation", "operator": "-", "prefix": true, - "src": "6732:2:1", + "src": "7441:2:5", "subExpression": { "argumentTypes": null, "hexValue": "31", - "id": 701, + "id": 1941, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6733:1:1", + "src": "7442:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -9039,20 +9992,20 @@ "typeString": "int_const -1" } ], - "id": 700, + "id": 1940, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6726:5:1", + "src": "7435:5:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": "uint8" }, - "id": 703, + "id": 1943, "isConstant": false, "isLValue": false, "isPure": true, @@ -9060,13 +10013,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6726:9:1", + "src": "7435:9:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "6706:29:1", + "src": "7415:29:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9080,21 +10033,21 @@ "typeString": "bool" } ], - "id": 694, + "id": 1934, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "6698:7:1", + "referencedDeclaration": 10045, + "src": "7407:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 705, + "id": 1945, "isConstant": false, "isLValue": false, "isPure": false, @@ -9102,15 +10055,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6698:38:1", + "src": "7407:38:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 706, + "id": 1946, "nodeType": "ExpressionStatement", - "src": "6698:38:1" + "src": "7407:38:5" }, { "expression": { @@ -9122,7 +10075,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 717, + "id": 1957, "isConstant": false, "isLValue": false, "isPure": false, @@ -9133,26 +10086,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 708, + "id": 1948, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 613, - "src": "6758:10:1", + "referencedDeclaration": 1853, + "src": "7467:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", "typeString": "uint256[6] memory[] memory" } }, - "id": 710, + "id": 1950, "indexExpression": { "argumentTypes": null, - "id": 709, + "id": 1949, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 645, - "src": "6769:1:1", + "referencedDeclaration": 1885, + "src": "7478:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -9163,24 +10116,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6758:13:1", + "src": "7467:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_memory", "typeString": "uint256[6] memory" } }, - "id": 712, + "id": 1952, "indexExpression": { "argumentTypes": null, "hexValue": "35", - "id": 711, + "id": 1951, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6772:1:1", + "src": "7481:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_5_by_1", @@ -9193,7 +10146,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6758:16:1", + "src": "7467:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9206,7 +10159,7 @@ "arguments": [ { "argumentTypes": null, - "id": 715, + "id": 1955, "isConstant": false, "isLValue": false, "isPure": true, @@ -9214,18 +10167,18 @@ "nodeType": "UnaryOperation", "operator": "-", "prefix": true, - "src": "6784:2:1", + "src": "7493:2:5", "subExpression": { "argumentTypes": null, "hexValue": "31", - "id": 714, + "id": 1954, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6785:1:1", + "src": "7494:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -9246,20 +10199,20 @@ "typeString": "int_const -1" } ], - "id": 713, + "id": 1953, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6778:5:1", + "src": "7487:5:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": "uint8" }, - "id": 716, + "id": 1956, "isConstant": false, "isLValue": false, "isPure": true, @@ -9267,13 +10220,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6778:9:1", + "src": "7487:9:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "6758:29:1", + "src": "7467:29:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9287,21 +10240,21 @@ "typeString": "bool" } ], - "id": 707, + "id": 1947, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "6750:7:1", + "referencedDeclaration": 10045, + "src": "7459:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 718, + "id": 1958, "isConstant": false, "isLValue": false, "isPure": false, @@ -9309,15 +10262,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6750:38:1", + "src": "7459:38:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 719, + "id": 1959, "nodeType": "ExpressionStatement", - "src": "6750:38:1" + "src": "7459:38:5" }, { "expression": { @@ -9329,7 +10282,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 727, + "id": 1967, "isConstant": false, "isLValue": false, "isPure": false, @@ -9340,26 +10293,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 721, + "id": 1961, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 613, - "src": "6838:10:1", + "referencedDeclaration": 1853, + "src": "7547:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", "typeString": "uint256[6] memory[] memory" } }, - "id": 723, + "id": 1963, "indexExpression": { "argumentTypes": null, - "id": 722, + "id": 1962, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 645, - "src": "6849:1:1", + "referencedDeclaration": 1885, + "src": "7558:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -9370,24 +10323,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6838:13:1", + "src": "7547:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_memory", "typeString": "uint256[6] memory" } }, - "id": 725, + "id": 1965, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 724, + "id": 1964, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6852:1:1", + "src": "7561:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -9400,7 +10353,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6838:16:1", + "src": "7547:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9410,18 +10363,18 @@ "operator": ">", "rightExpression": { "argumentTypes": null, - "id": 726, + "id": 1966, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7296, - "src": "6857:3:1", + "referencedDeclaration": 10044, + "src": "7566:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6838:22:1", + "src": "7547:22:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9435,21 +10388,21 @@ "typeString": "bool" } ], - "id": 720, + "id": 1960, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "6830:7:1", + "referencedDeclaration": 10045, + "src": "7539:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 728, + "id": 1968, "isConstant": false, "isLValue": false, "isPure": false, @@ -9457,15 +10410,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6830:31:1", + "src": "7539:31:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 729, + "id": 1969, "nodeType": "ExpressionStatement", - "src": "6830:31:1" + "src": "7539:31:5" }, { "expression": { @@ -9477,7 +10430,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 741, + "id": 1981, "isConstant": false, "isLValue": false, "isPure": false, @@ -9488,26 +10441,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 731, + "id": 1971, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 613, - "src": "6883:10:1", + "referencedDeclaration": 1853, + "src": "7592:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", "typeString": "uint256[6] memory[] memory" } }, - "id": 733, + "id": 1973, "indexExpression": { "argumentTypes": null, - "id": 732, + "id": 1972, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 645, - "src": "6894:1:1", + "referencedDeclaration": 1885, + "src": "7603:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -9518,24 +10471,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6883:13:1", + "src": "7592:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_memory", "typeString": "uint256[6] memory" } }, - "id": 735, + "id": 1975, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 734, + "id": 1974, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6897:1:1", + "src": "7606:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -9548,7 +10501,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6883:16:1", + "src": "7592:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9562,26 +10515,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 736, + "id": 1976, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 613, - "src": "6902:10:1", + "referencedDeclaration": 1853, + "src": "7611:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", "typeString": "uint256[6] memory[] memory" } }, - "id": 738, + "id": 1978, "indexExpression": { "argumentTypes": null, - "id": 737, + "id": 1977, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 645, - "src": "6913:1:1", + "referencedDeclaration": 1885, + "src": "7622:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -9592,24 +10545,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6902:13:1", + "src": "7611:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_memory", "typeString": "uint256[6] memory" } }, - "id": 740, + "id": 1980, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 739, + "id": 1979, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6916:1:1", + "src": "7625:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -9622,13 +10575,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6902:16:1", + "src": "7611:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6883:35:1", + "src": "7592:35:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9642,21 +10595,21 @@ "typeString": "bool" } ], - "id": 730, + "id": 1970, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "6875:7:1", + "referencedDeclaration": 10045, + "src": "7584:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 742, + "id": 1982, "isConstant": false, "isLValue": false, "isPure": false, @@ -9664,15 +10617,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6875:44:1", + "src": "7584:44:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 743, + "id": 1983, "nodeType": "ExpressionStatement", - "src": "6875:44:1" + "src": "7584:44:5" }, { "condition": { @@ -9681,19 +10634,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 746, + "id": 1986, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 744, + "id": 1984, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 645, - "src": "6938:1:1", + "referencedDeclaration": 1885, + "src": "7647:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -9704,14 +10657,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 745, + "id": 1985, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6942:1:1", + "src": "7651:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -9719,20 +10672,20 @@ }, "value": "0" }, - "src": "6938:5:1", + "src": "7647:5:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 764, + "id": 2004, "nodeType": "IfStatement", - "src": "6934:93:1", + "src": "7643:93:5", "trueBody": { - "id": 763, + "id": 2003, "nodeType": "Block", - "src": "6945:82:1", + "src": "7654:82:5", "statements": [ { "expression": { @@ -9744,7 +10697,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 760, + "id": 2000, "isConstant": false, "isLValue": false, "isPure": false, @@ -9755,37 +10708,37 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 748, + "id": 1988, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 613, - "src": "6971:10:1", + "referencedDeclaration": 1853, + "src": "7680:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", "typeString": "uint256[6] memory[] memory" } }, - "id": 752, + "id": 1992, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 751, + "id": 1991, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 749, + "id": 1989, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 645, - "src": "6982:1:1", + "referencedDeclaration": 1885, + "src": "7691:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -9796,14 +10749,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 750, + "id": 1990, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6986:1:1", + "src": "7695:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -9811,7 +10764,7 @@ }, "value": "1" }, - "src": "6982:5:1", + "src": "7691:5:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -9822,24 +10775,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6971:17:1", + "src": "7680:17:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_memory", "typeString": "uint256[6] memory" } }, - "id": 754, + "id": 1994, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 753, + "id": 1993, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6989:1:1", + "src": "7698:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -9852,7 +10805,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6971:20:1", + "src": "7680:20:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9866,26 +10819,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 755, + "id": 1995, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 613, - "src": "6995:10:1", + "referencedDeclaration": 1853, + "src": "7704:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", "typeString": "uint256[6] memory[] memory" } }, - "id": 757, + "id": 1997, "indexExpression": { "argumentTypes": null, - "id": 756, + "id": 1996, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 645, - "src": "7006:1:1", + "referencedDeclaration": 1885, + "src": "7715:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -9896,24 +10849,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6995:13:1", + "src": "7704:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_memory", "typeString": "uint256[6] memory" } }, - "id": 759, + "id": 1999, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 758, + "id": 1998, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7009:1:1", + "src": "7718:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -9926,13 +10879,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6995:16:1", + "src": "7704:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6971:40:1", + "src": "7680:40:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9946,21 +10899,21 @@ "typeString": "bool" } ], - "id": 747, + "id": 1987, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "6963:7:1", + "referencedDeclaration": 10045, + "src": "7672:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 761, + "id": 2001, "isConstant": false, "isLValue": false, "isPure": false, @@ -9968,15 +10921,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6963:49:1", + "src": "7672:49:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 762, + "id": 2002, "nodeType": "ExpressionStatement", - "src": "6963:49:1" + "src": "7672:49:5" } ] } @@ -9996,26 +10949,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 766, + "id": 2006, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 613, - "src": "7079:10:1", + "referencedDeclaration": 1853, + "src": "7788:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", "typeString": "uint256[6] memory[] memory" } }, - "id": 768, + "id": 2008, "indexExpression": { "argumentTypes": null, - "id": 767, + "id": 2007, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 645, - "src": "7090:1:1", + "referencedDeclaration": 1885, + "src": "7799:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -10026,24 +10979,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7079:13:1", + "src": "7788:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_memory", "typeString": "uint256[6] memory" } }, - "id": 770, + "id": 2010, "indexExpression": { "argumentTypes": null, "hexValue": "32", - "id": 769, + "id": 2009, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7093:1:1", + "src": "7802:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -10056,27 +11009,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7079:16:1", + "src": "7788:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 771, + "id": 2011, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isPercent", "nodeType": "MemberAccess", - "referencedDeclaration": 4586, - "src": "7079:26:1", + "referencedDeclaration": 5058, + "src": "7788:26:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$", "typeString": "function (uint256) pure returns (bool)" } }, - "id": 772, + "id": 2012, "isConstant": false, "isLValue": false, "isPure": false, @@ -10084,7 +11037,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7079:28:1", + "src": "7788:28:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10098,21 +11051,21 @@ "typeString": "bool" } ], - "id": 765, + "id": 2005, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "7071:7:1", + "referencedDeclaration": 10045, + "src": "7780:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 773, + "id": 2013, "isConstant": false, "isLValue": false, "isPure": false, @@ -10120,15 +11073,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7071:37:1", + "src": "7780:37:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 774, + "id": 2014, "nodeType": "ExpressionStatement", - "src": "7071:37:1" + "src": "7780:37:5" }, { "expression": { @@ -10140,7 +11093,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 784, + "id": 2024, "isConstant": false, "isLValue": false, "isPure": false, @@ -10151,26 +11104,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 776, + "id": 2016, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 613, - "src": "7130:10:1", + "referencedDeclaration": 1853, + "src": "7839:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", "typeString": "uint256[6] memory[] memory" } }, - "id": 778, + "id": 2018, "indexExpression": { "argumentTypes": null, - "id": 777, + "id": 2017, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 645, - "src": "7141:1:1", + "referencedDeclaration": 1885, + "src": "7850:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -10181,24 +11134,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7130:13:1", + "src": "7839:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_memory", "typeString": "uint256[6] memory" } }, - "id": 780, + "id": 2020, "indexExpression": { "argumentTypes": null, "hexValue": "32", - "id": 779, + "id": 2019, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7144:1:1", + "src": "7853:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -10211,7 +11164,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7130:16:1", + "src": "7839:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10226,32 +11179,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 781, + "id": 2021, "name": "Percent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4631, - "src": "7149:7:1", + "referencedDeclaration": 5103, + "src": "7858:7:5", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Percent_$4631_$", + "typeIdentifier": "t_type$_t_contract$_Percent_$5103_$", "typeString": "type(library Percent)" } }, - "id": 782, + "id": 2022, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "MAX", "nodeType": "MemberAccess", - "referencedDeclaration": 4543, - "src": "7149:11:1", + "referencedDeclaration": 5003, + "src": "7858:11:5", "typeDescriptions": { "typeIdentifier": "t_function_delegatecall_pure$__$returns$_t_uint256_$", "typeString": "function () pure returns (uint256)" } }, - "id": 783, + "id": 2023, "isConstant": false, "isLValue": false, "isPure": false, @@ -10259,13 +11212,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7149:13:1", + "src": "7858:13:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7130:32:1", + "src": "7839:32:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10279,21 +11232,21 @@ "typeString": "bool" } ], - "id": 775, + "id": 2015, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "7122:7:1", + "referencedDeclaration": 10045, + "src": "7831:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 785, + "id": 2025, "isConstant": false, "isLValue": false, "isPure": false, @@ -10301,15 +11254,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7122:41:1", + "src": "7831:41:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 786, + "id": 2026, "nodeType": "ExpressionStatement", - "src": "7122:41:1" + "src": "7831:41:5" }, { "expression": { @@ -10327,26 +11280,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 792, + "id": 2032, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 613, - "src": "7232:10:1", + "referencedDeclaration": 1853, + "src": "7941:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", "typeString": "uint256[6] memory[] memory" } }, - "id": 794, + "id": 2034, "indexExpression": { "argumentTypes": null, - "id": 793, + "id": 2033, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 645, - "src": "7243:1:1", + "referencedDeclaration": 1885, + "src": "7952:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -10357,24 +11310,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7232:13:1", + "src": "7941:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_memory", "typeString": "uint256[6] memory" } }, - "id": 796, + "id": 2036, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 795, + "id": 2035, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7246:1:1", + "src": "7955:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -10387,7 +11340,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7232:16:1", + "src": "7941:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10401,20 +11354,20 @@ "typeString": "uint256" } ], - "id": 791, + "id": 2031, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7225:6:1", + "src": "7934:6:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": "uint32" }, - "id": 797, + "id": 2037, "isConstant": false, "isLValue": false, "isPure": false, @@ -10422,7 +11375,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7225:24:1", + "src": "7934:24:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -10437,26 +11390,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 799, + "id": 2039, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 613, - "src": "7283:10:1", + "referencedDeclaration": 1853, + "src": "7992:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", "typeString": "uint256[6] memory[] memory" } }, - "id": 801, + "id": 2041, "indexExpression": { "argumentTypes": null, - "id": 800, + "id": 2040, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 645, - "src": "7294:1:1", + "referencedDeclaration": 1885, + "src": "8003:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -10467,24 +11420,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7283:13:1", + "src": "7992:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_memory", "typeString": "uint256[6] memory" } }, - "id": 803, + "id": 2043, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 802, + "id": 2042, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7297:1:1", + "src": "8006:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -10497,7 +11450,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7283:16:1", + "src": "7992:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10511,20 +11464,20 @@ "typeString": "uint256" } ], - "id": 798, + "id": 2038, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7276:6:1", + "src": "7985:6:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": "uint32" }, - "id": 804, + "id": 2044, "isConstant": false, "isLValue": false, "isPure": false, @@ -10532,7 +11485,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7276:24:1", + "src": "7985:24:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -10544,26 +11497,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 805, + "id": 2045, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 613, - "src": "7328:10:1", + "referencedDeclaration": 1853, + "src": "8037:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", "typeString": "uint256[6] memory[] memory" } }, - "id": 807, + "id": 2047, "indexExpression": { "argumentTypes": null, - "id": 806, + "id": 2046, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 645, - "src": "7339:1:1", + "referencedDeclaration": 1885, + "src": "8048:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -10574,24 +11527,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7328:13:1", + "src": "8037:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_memory", "typeString": "uint256[6] memory" } }, - "id": 809, + "id": 2049, "indexExpression": { "argumentTypes": null, "hexValue": "32", - "id": 808, + "id": 2048, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7342:1:1", + "src": "8051:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -10604,7 +11557,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7328:16:1", + "src": "8037:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10619,26 +11572,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 811, + "id": 2051, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 613, - "src": "7378:10:1", + "referencedDeclaration": 1853, + "src": "8087:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", "typeString": "uint256[6] memory[] memory" } }, - "id": 813, + "id": 2053, "indexExpression": { "argumentTypes": null, - "id": 812, + "id": 2052, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 645, - "src": "7389:1:1", + "referencedDeclaration": 1885, + "src": "8098:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -10649,24 +11602,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7378:13:1", + "src": "8087:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_memory", "typeString": "uint256[6] memory" } }, - "id": 815, + "id": 2055, "indexExpression": { "argumentTypes": null, "hexValue": "33", - "id": 814, + "id": 2054, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7392:1:1", + "src": "8101:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", @@ -10679,7 +11632,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7378:16:1", + "src": "8087:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10693,20 +11646,20 @@ "typeString": "uint256" } ], - "id": 810, + "id": 2050, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7371:6:1", + "src": "8080:6:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": "uint32" }, - "id": 816, + "id": 2056, "isConstant": false, "isLValue": false, "isPure": false, @@ -10714,7 +11667,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7371:24:1", + "src": "8080:24:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -10726,14 +11679,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 820, + "id": 2060, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7442:1:1", + "src": "8151:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -10749,39 +11702,39 @@ "typeString": "int_const 0" } ], - "id": 819, + "id": 2059, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "7431:10:1", + "src": "8140: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": 817, + "id": 2057, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "7435:4:1", + "src": "8144:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 818, + "id": 2058, "length": null, "nodeType": "ArrayTypeName", - "src": "7435:6:1", + "src": "8144:6:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" } } }, - "id": 821, + "id": 2061, "isConstant": false, "isLValue": false, "isPure": true, @@ -10789,7 +11742,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7431:13:1", + "src": "8140:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory", "typeString": "uint256[] memory" @@ -10801,14 +11754,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 825, + "id": 2065, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7488:1:1", + "src": "8197:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -10824,39 +11777,39 @@ "typeString": "int_const 0" } ], - "id": 824, + "id": 2064, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "7477:10:1", + "src": "8186: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": 822, + "id": 2062, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "7481:4:1", + "src": "8190:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 823, + "id": 2063, "length": null, "nodeType": "ArrayTypeName", - "src": "7481:6:1", + "src": "8190:6:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" } } }, - "id": 826, + "id": 2066, "isConstant": false, "isLValue": false, "isPure": true, @@ -10864,7 +11817,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7477:13:1", + "src": "8186:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory", "typeString": "uint256[] memory" @@ -10873,18 +11826,18 @@ ], "expression": { "argumentTypes": null, - "id": 790, + "id": 2030, "name": "Stage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 108, - "src": "7190:5:1", + "referencedDeclaration": 1318, + "src": "7899:5:5", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Stage_$108_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_Stage_$1318_storage_ptr_$", "typeString": "type(struct W12Crowdsale.Stage storage pointer)" } }, - "id": 827, + "id": 2067, "isConstant": false, "isLValue": false, "isPure": false, @@ -10899,9 +11852,9 @@ "volumeBonuses" ], "nodeType": "FunctionCall", - "src": "7190:315:1", + "src": "7899:315:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$108_memory", + "typeIdentifier": "t_struct$_Stage_$1318_memory", "typeString": "struct W12Crowdsale.Stage memory" } } @@ -10909,24 +11862,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Stage_$108_memory", + "typeIdentifier": "t_struct$_Stage_$1318_memory", "typeString": "struct W12Crowdsale.Stage memory" } ], "expression": { "argumentTypes": null, - "id": 787, + "id": 2027, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "7178:6:1", + "referencedDeclaration": 1300, + "src": "7887:6:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$108_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" } }, - "id": 789, + "id": 2029, "isConstant": false, "isLValue": false, "isPure": false, @@ -10934,13 +11887,13 @@ "memberName": "push", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7178:11:1", + "src": "7887:11:5", "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Stage_$108_storage_$returns$_t_uint256_$", + "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Stage_$1318_storage_$returns$_t_uint256_$", "typeString": "function (struct W12Crowdsale.Stage storage ref) returns (uint256)" } }, - "id": 828, + "id": 2068, "isConstant": false, "isLValue": false, "isPure": false, @@ -10948,15 +11901,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7178:328:1", + "src": "7887:328:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 829, + "id": 2069, "nodeType": "ExpressionStatement", - "src": "7178:328:1" + "src": "7887:328:5" }, { "expression": { @@ -10971,7 +11924,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 835, + "id": 2075, "isConstant": false, "isLValue": false, "isPure": false, @@ -10980,18 +11933,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 832, + "id": 2072, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "7569:6:1", + "referencedDeclaration": 1300, + "src": "8278:6:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$108_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" } }, - "id": 833, + "id": 2073, "isConstant": false, "isLValue": true, "isPure": false, @@ -10999,7 +11952,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7569:13:1", + "src": "8278:13:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11010,14 +11963,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 834, + "id": 2074, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7585:1:1", + "src": "8294:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -11025,7 +11978,7 @@ }, "value": "1" }, - "src": "7569:17:1", + "src": "8278:17:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11039,20 +11992,20 @@ "typeString": "uint256" } ], - "id": 831, + "id": 2071, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7563:5:1", + "src": "8272:5:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": "uint8" }, - "id": 836, + "id": 2076, "isConstant": false, "isLValue": false, "isPure": false, @@ -11060,7 +12013,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7563:24:1", + "src": "8272:24:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -11075,26 +12028,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 838, + "id": 2078, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 613, - "src": "7611:10:1", + "referencedDeclaration": 1853, + "src": "8320:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", "typeString": "uint256[6] memory[] memory" } }, - "id": 840, + "id": 2080, "indexExpression": { "argumentTypes": null, - "id": 839, + "id": 2079, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 645, - "src": "7622:1:1", + "referencedDeclaration": 1885, + "src": "8331:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -11105,24 +12058,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7611:13:1", + "src": "8320:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_memory", "typeString": "uint256[6] memory" } }, - "id": 842, + "id": 2082, "indexExpression": { "argumentTypes": null, "hexValue": "34", - "id": 841, + "id": 2081, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7625:1:1", + "src": "8334:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", @@ -11135,7 +12088,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7611:16:1", + "src": "8320:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11149,20 +12102,20 @@ "typeString": "uint256" } ], - "id": 837, + "id": 2077, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7605:5:1", + "src": "8314:5:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": "uint8" }, - "id": 843, + "id": 2083, "isConstant": false, "isLValue": false, "isPure": false, @@ -11170,7 +12123,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7605:23:1", + "src": "8314:23:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -11185,26 +12138,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 845, + "id": 2085, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 613, - "src": "7652:10:1", + "referencedDeclaration": 1853, + "src": "8361:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", "typeString": "uint256[6] memory[] memory" } }, - "id": 847, + "id": 2087, "indexExpression": { "argumentTypes": null, - "id": 846, + "id": 2086, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 645, - "src": "7663:1:1", + "referencedDeclaration": 1885, + "src": "8372:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -11215,24 +12168,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7652:13:1", + "src": "8361:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_memory", "typeString": "uint256[6] memory" } }, - "id": 849, + "id": 2089, "indexExpression": { "argumentTypes": null, "hexValue": "35", - "id": 848, + "id": 2088, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7666:1:1", + "src": "8375:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_5_by_1", @@ -11245,7 +12198,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7652:16:1", + "src": "8361:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11259,20 +12212,20 @@ "typeString": "uint256" } ], - "id": 844, + "id": 2084, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7646:5:1", + "src": "8355:5:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": "uint8" }, - "id": 850, + "id": 2090, "isConstant": false, "isLValue": false, "isPure": false, @@ -11280,7 +12233,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7646:23:1", + "src": "8355:23:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -11288,12 +12241,12 @@ }, { "argumentTypes": null, - "id": 851, + "id": 2091, "name": "bonusConditions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 616, - "src": "7687:15:1", + "referencedDeclaration": 1856, + "src": "8396:15:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" @@ -11319,18 +12272,18 @@ "typeString": "uint256[] memory" } ], - "id": 830, + "id": 2070, "name": "_setStageBonusConditions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1051, - "src": "7521:24:1", + "referencedDeclaration": 2291, + "src": "8230:24:5", "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)" } }, - "id": 852, + "id": 2092, "isConstant": false, "isLValue": false, "isPure": false, @@ -11338,15 +12291,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7521:195:1", + "src": "8230:195:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 853, + "id": 2093, "nodeType": "ExpressionStatement", - "src": "7521:195:1" + "src": "8230:195:5" } ] }, @@ -11356,19 +12309,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 651, + "id": 1891, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 648, + "id": 1888, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 645, - "src": "6467:1:1", + "referencedDeclaration": 1885, + "src": "7176:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -11380,18 +12333,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 649, + "id": 1889, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 613, - "src": "6471:10:1", + "referencedDeclaration": 1853, + "src": "7180:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", "typeString": "uint256[6] memory[] memory" } }, - "id": 650, + "id": 1890, "isConstant": false, "isLValue": false, "isPure": false, @@ -11399,31 +12352,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6471:17:1", + "src": "7180:17:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6467:21:1", + "src": "7176:21:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 855, + "id": 2095, "initializationExpression": { "assignments": [ - 645 + 1885 ], "declarations": [ { "constant": false, - "id": 645, + "id": 1885, "name": "i", "nodeType": "VariableDeclaration", - "scope": 860, - "src": "6454:7:1", + "scope": 2100, + "src": "7163:7:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11431,10 +12384,10 @@ "typeString": "uint8" }, "typeName": { - "id": 644, + "id": 1884, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "6454:5:1", + "src": "7163:5:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -11444,18 +12397,18 @@ "visibility": "internal" } ], - "id": 647, + "id": 1887, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 646, + "id": 1886, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6464:1:1", + "src": "7173:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -11464,12 +12417,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "6454:11:1" + "src": "7163:11:5" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 653, + "id": 1893, "isConstant": false, "isLValue": false, "isPure": false, @@ -11477,15 +12430,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "6490:3:1", + "src": "7199:3:5", "subExpression": { "argumentTypes": null, - "id": 652, + "id": 1892, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 645, - "src": "6490:1:1", + "referencedDeclaration": 1885, + "src": "7199:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -11496,12 +12449,12 @@ "typeString": "uint8" } }, - "id": 654, + "id": 1894, "nodeType": "ExpressionStatement", - "src": "6490:3:1" + "src": "7199:3:5" }, "nodeType": "ForStatement", - "src": "6449:1278:1" + "src": "7158:1278:5" }, { "eventCall": { @@ -11509,18 +12462,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 856, + "id": 2096, "name": "StagesUpdated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 155, - "src": "7742:13:1", + "referencedDeclaration": 1343, + "src": "8451:13:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 857, + "id": 2097, "isConstant": false, "isLValue": false, "isPure": false, @@ -11528,20 +12481,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7742:15:1", + "src": "8451:15:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 858, + "id": 2098, "nodeType": "EmitStatement", - "src": "7737:20:1" + "src": "8446: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": 860, + "id": 2100, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -11549,16 +12502,16 @@ "name": "_setStages", "nodeType": "FunctionDefinition", "parameters": { - "id": 617, + "id": 1857, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 613, + "id": 1853, "name": "parameters", "nodeType": "VariableDeclaration", - "scope": 860, - "src": "6143:20:1", + "scope": 2100, + "src": "6852:20:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11568,27 +12521,27 @@ "typeName": { "baseType": { "baseType": { - "id": 609, + "id": 1849, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6143:4:1", + "src": "6852:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 611, + "id": 1851, "length": { "argumentTypes": null, "hexValue": "36", - "id": 610, + "id": 1850, "isConstant": false, "isLValue": false, "isPure": false, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6148:1:1", + "src": "6857:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": null, @@ -11597,16 +12550,16 @@ "value": "6" }, "nodeType": "ArrayTypeName", - "src": "6143:7:1", + "src": "6852:7:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_storage_ptr", "typeString": "uint256[6]" } }, - "id": 612, + "id": 1852, "length": null, "nodeType": "ArrayTypeName", - "src": "6143:9:1", + "src": "6852:9:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$6_storage_$dyn_storage_ptr", "typeString": "uint256[6][]" @@ -11617,11 +12570,11 @@ }, { "constant": false, - "id": 616, + "id": 1856, "name": "bonusConditions", "nodeType": "VariableDeclaration", - "scope": 860, - "src": "6165:22:1", + "scope": 2100, + "src": "6874:22:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11630,19 +12583,19 @@ }, "typeName": { "baseType": { - "id": 614, + "id": 1854, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6165:4:1", + "src": "6874:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 615, + "id": 1855, "length": null, "nodeType": "ArrayTypeName", - "src": "6165:6:1", + "src": "6874:6:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -11652,26 +12605,26 @@ "visibility": "internal" } ], - "src": "6142:46:1" + "src": "6851:46:5" }, "payable": false, "returnParameters": { - "id": 618, + "id": 1858, "nodeType": "ParameterList", "parameters": [], - "src": "6198:0:1" + "src": "6907:0:5" }, - "scope": 1809, - "src": "6123:1641:1", + "scope": 3168, + "src": "6832:1641:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 1050, + "id": 2290, "nodeType": "Block", - "src": "8045:1087:1", + "src": "8754:1087:5", "statements": [ { "condition": { @@ -11680,7 +12633,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 878, + "id": 2118, "isConstant": false, "isLValue": false, "isPure": false, @@ -11691,19 +12644,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 874, + "id": 2114, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 872, + "id": 2112, "name": "start", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 864, - "src": "8059:5:1", + "referencedDeclaration": 2104, + "src": "8768:5:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -11714,14 +12667,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 873, + "id": 2113, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8068:1:1", + "src": "8777:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -11729,7 +12682,7 @@ }, "value": "0" }, - "src": "8059:10:1", + "src": "8768:10:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11743,19 +12696,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 877, + "id": 2117, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 875, + "id": 2115, "name": "end", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 866, - "src": "8073:3:1", + "referencedDeclaration": 2106, + "src": "8782:3:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -11766,14 +12719,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 876, + "id": 2116, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8080:1:1", + "src": "8789:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -11781,31 +12734,31 @@ }, "value": "0" }, - "src": "8073:8:1", + "src": "8782:8:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "8059:22:1", + "src": "8768:22:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 903, + "id": 2143, "nodeType": "IfStatement", - "src": "8055:187:1", + "src": "8764:187:5", "trueBody": { - "id": 902, + "id": 2142, "nodeType": "Block", - "src": "8083:159:1", + "src": "8792:159:5", "statements": [ { "expression": { "argumentTypes": null, - "id": 888, + "id": 2128, "isConstant": false, "isLValue": false, "isPure": false, @@ -11816,26 +12769,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 879, + "id": 2119, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "8097:6:1", + "referencedDeclaration": 1300, + "src": "8806:6:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$108_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" } }, - "id": 881, + "id": 2121, "indexExpression": { "argumentTypes": null, - "id": 880, + "id": 2120, "name": "stageIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 862, - "src": "8104:10:1", + "referencedDeclaration": 2102, + "src": "8813:10:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -11846,21 +12799,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8097:18:1", + "src": "8806:18:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$108_storage", + "typeIdentifier": "t_struct$_Stage_$1318_storage", "typeString": "struct W12Crowdsale.Stage storage ref" } }, - "id": 882, + "id": 2122, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "volumeBoundaries", "nodeType": "MemberAccess", - "referencedDeclaration": 104, - "src": "8097:35:1", + "referencedDeclaration": 1314, + "src": "8806:35:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" @@ -11874,14 +12827,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 886, + "id": 2126, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8146:1:1", + "src": "8855:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -11897,39 +12850,39 @@ "typeString": "int_const 0" } ], - "id": 885, + "id": 2125, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "8135:10:1", + "src": "8844: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": 883, + "id": 2123, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "8139:4:1", + "src": "8848:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 884, + "id": 2124, "length": null, "nodeType": "ArrayTypeName", - "src": "8139:6:1", + "src": "8848:6:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" } } }, - "id": 887, + "id": 2127, "isConstant": false, "isLValue": false, "isPure": true, @@ -11937,26 +12890,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8135:13:1", + "src": "8844:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory", "typeString": "uint256[] memory" } }, - "src": "8097:51:1", + "src": "8806:51:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 889, + "id": 2129, "nodeType": "ExpressionStatement", - "src": "8097:51:1" + "src": "8806:51:5" }, { "expression": { "argumentTypes": null, - "id": 899, + "id": 2139, "isConstant": false, "isLValue": false, "isPure": false, @@ -11967,26 +12920,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 890, + "id": 2130, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "8162:6:1", + "referencedDeclaration": 1300, + "src": "8871:6:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$108_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" } }, - "id": 892, + "id": 2132, "indexExpression": { "argumentTypes": null, - "id": 891, + "id": 2131, "name": "stageIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 862, - "src": "8169:10:1", + "referencedDeclaration": 2102, + "src": "8878:10:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -11997,21 +12950,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8162:18:1", + "src": "8871:18:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$108_storage", + "typeIdentifier": "t_struct$_Stage_$1318_storage", "typeString": "struct W12Crowdsale.Stage storage ref" } }, - "id": 893, + "id": 2133, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "volumeBonuses", "nodeType": "MemberAccess", - "referencedDeclaration": 107, - "src": "8162:32:1", + "referencedDeclaration": 1317, + "src": "8871:32:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" @@ -12025,14 +12978,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 897, + "id": 2137, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8208:1:1", + "src": "8917:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -12048,39 +13001,39 @@ "typeString": "int_const 0" } ], - "id": 896, + "id": 2136, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "8197:10:1", + "src": "8906: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": 894, + "id": 2134, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "8201:4:1", + "src": "8910:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 895, + "id": 2135, "length": null, "nodeType": "ArrayTypeName", - "src": "8201:6:1", + "src": "8910:6:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" } } }, - "id": 898, + "id": 2138, "isConstant": false, "isLValue": false, "isPure": true, @@ -12088,28 +13041,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8197:13:1", + "src": "8906:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory", "typeString": "uint256[] memory" } }, - "src": "8162:48:1", + "src": "8871:48:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 900, + "id": 2140, "nodeType": "ExpressionStatement", - "src": "8162:48:1" + "src": "8871:48:5" }, { "expression": null, - "functionReturnParameters": 871, - "id": 901, + "functionReturnParameters": 2111, + "id": 2141, "nodeType": "Return", - "src": "8225:7:1" + "src": "8934:7:5" } ] } @@ -12124,19 +13077,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 908, + "id": 2148, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 905, + "id": 2145, "name": "end", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 866, - "src": "8260:3:1", + "referencedDeclaration": 2106, + "src": "8969:3:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -12148,18 +13101,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 906, + "id": 2146, "name": "bonusConditions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 869, - "src": "8267:15:1", + "referencedDeclaration": 2109, + "src": "8976:15:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 907, + "id": 2147, "isConstant": false, "isLValue": false, "isPure": false, @@ -12167,13 +13120,13 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8267:22:1", + "src": "8976:22:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "8260:29:1", + "src": "8969:29:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -12187,21 +13140,21 @@ "typeString": "bool" } ], - "id": 904, + "id": 2144, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "8252:7:1", + "referencedDeclaration": 10045, + "src": "8961:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 909, + "id": 2149, "isConstant": false, "isLValue": false, "isPure": false, @@ -12209,15 +13162,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8252:38:1", + "src": "8961:38:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 910, + "id": 2150, "nodeType": "ExpressionStatement", - "src": "8252:38:1" + "src": "8961:38:5" }, { "expression": { @@ -12229,19 +13182,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 914, + "id": 2154, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 912, + "id": 2152, "name": "start", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 864, - "src": "8308:5:1", + "referencedDeclaration": 2104, + "src": "9017:5:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -12251,18 +13204,18 @@ "operator": "<", "rightExpression": { "argumentTypes": null, - "id": 913, + "id": 2153, "name": "end", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 866, - "src": "8316:3:1", + "referencedDeclaration": 2106, + "src": "9025:3:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "8308:11:1", + "src": "9017:11:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -12276,21 +13229,21 @@ "typeString": "bool" } ], - "id": 911, + "id": 2151, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "8300:7:1", + "referencedDeclaration": 10045, + "src": "9009:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 915, + "id": 2155, "isConstant": false, "isLValue": false, "isPure": false, @@ -12298,15 +13251,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8300:20:1", + "src": "9009:20:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 916, + "id": 2156, "nodeType": "ExpressionStatement", - "src": "8300:20:1" + "src": "9009:20:5" }, { "expression": { @@ -12318,7 +13271,7 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 922, + "id": 2162, "isConstant": false, "isLValue": false, "isPure": false, @@ -12329,19 +13282,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 920, + "id": 2160, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 918, + "id": 2158, "name": "start", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 864, - "src": "8338:5:1", + "referencedDeclaration": 2104, + "src": "9047:5:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -12352,14 +13305,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "32", - "id": 919, + "id": 2159, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8346:1:1", + "src": "9055:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -12367,7 +13320,7 @@ }, "value": "2" }, - "src": "8338:9:1", + "src": "9047:9:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -12378,14 +13331,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 921, + "id": 2161, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8351:1:1", + "src": "9060:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -12393,7 +13346,7 @@ }, "value": "0" }, - "src": "8338:14:1", + "src": "9047:14:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -12407,21 +13360,21 @@ "typeString": "bool" } ], - "id": 917, + "id": 2157, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "8330:7:1", + "referencedDeclaration": 10045, + "src": "9039:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 923, + "id": 2163, "isConstant": false, "isLValue": false, "isPure": false, @@ -12429,15 +13382,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8330:23:1", + "src": "9039:23:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 924, + "id": 2164, "nodeType": "ExpressionStatement", - "src": "8330:23:1" + "src": "9039:23:5" }, { "expression": { @@ -12449,7 +13402,7 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 930, + "id": 2170, "isConstant": false, "isLValue": false, "isPure": false, @@ -12460,19 +13413,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 928, + "id": 2168, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 926, + "id": 2166, "name": "end", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 866, - "src": "8371:3:1", + "referencedDeclaration": 2106, + "src": "9080:3:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -12483,14 +13436,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "32", - "id": 927, + "id": 2167, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8377:1:1", + "src": "9086:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -12498,7 +13451,7 @@ }, "value": "2" }, - "src": "8371:7:1", + "src": "9080:7:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -12509,14 +13462,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 929, + "id": 2169, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8382:1:1", + "src": "9091:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -12524,7 +13477,7 @@ }, "value": "0" }, - "src": "8371:12:1", + "src": "9080:12:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -12538,21 +13491,21 @@ "typeString": "bool" } ], - "id": 925, + "id": 2165, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "8363:7:1", + "referencedDeclaration": 10045, + "src": "9072:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 931, + "id": 2171, "isConstant": false, "isLValue": false, "isPure": false, @@ -12560,28 +13513,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8363:21:1", + "src": "9072:21:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 932, + "id": 2172, "nodeType": "ExpressionStatement", - "src": "8363:21:1" + "src": "9072:21:5" }, { "assignments": [ - 936 + 2176 ], "declarations": [ { "constant": false, - "id": 936, + "id": 2176, "name": "boundaries", "nodeType": "VariableDeclaration", - "scope": 1051, - "src": "8395:24:1", + "scope": 2291, + "src": "9104:24:5", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -12590,19 +13543,19 @@ }, "typeName": { "baseType": { - "id": 934, + "id": 2174, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "8395:4:1", + "src": "9104:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 935, + "id": 2175, "length": null, "nodeType": "ArrayTypeName", - "src": "8395:6:1", + "src": "9104:6:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -12612,7 +13565,7 @@ "visibility": "internal" } ], - "id": 947, + "id": 2187, "initialValue": { "argumentTypes": null, "arguments": [ @@ -12622,7 +13575,7 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 945, + "id": 2185, "isConstant": false, "isLValue": false, "isPure": false, @@ -12636,19 +13589,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 942, + "id": 2182, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 940, + "id": 2180, "name": "end", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 866, - "src": "8434:3:1", + "referencedDeclaration": 2106, + "src": "9143:3:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -12658,32 +13611,32 @@ "operator": "-", "rightExpression": { "argumentTypes": null, - "id": 941, + "id": 2181, "name": "start", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 864, - "src": "8440:5:1", + "referencedDeclaration": 2104, + "src": "9149:5:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "8434:11:1", + "src": "9143:11:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } } ], - "id": 943, + "id": 2183, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "8433:13:1", + "src": "9142:13:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -12694,14 +13647,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "32", - "id": 944, + "id": 2184, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8449:1:1", + "src": "9158:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -12709,7 +13662,7 @@ }, "value": "2" }, - "src": "8433:17:1", + "src": "9142:17:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -12723,39 +13676,39 @@ "typeString": "uint8" } ], - "id": 939, + "id": 2179, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "8422:10:1", + "src": "9131: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": 937, + "id": 2177, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "8426:4:1", + "src": "9135:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 938, + "id": 2178, "length": null, "nodeType": "ArrayTypeName", - "src": "8426:6:1", + "src": "9135:6:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" } } }, - "id": 946, + "id": 2186, "isConstant": false, "isLValue": false, "isPure": false, @@ -12763,27 +13716,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8422:29:1", + "src": "9131:29:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory", "typeString": "uint256[] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "8395:56:1" + "src": "9104:56:5" }, { "assignments": [ - 951 + 2191 ], "declarations": [ { "constant": false, - "id": 951, + "id": 2191, "name": "bonuses", "nodeType": "VariableDeclaration", - "scope": 1051, - "src": "8461:21:1", + "scope": 2291, + "src": "9170:21:5", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -12792,19 +13745,19 @@ }, "typeName": { "baseType": { - "id": 949, + "id": 2189, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "8461:4:1", + "src": "9170:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 950, + "id": 2190, "length": null, "nodeType": "ArrayTypeName", - "src": "8461:6:1", + "src": "9170:6:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -12814,7 +13767,7 @@ "visibility": "internal" } ], - "id": 962, + "id": 2202, "initialValue": { "argumentTypes": null, "arguments": [ @@ -12824,7 +13777,7 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 960, + "id": 2200, "isConstant": false, "isLValue": false, "isPure": false, @@ -12838,19 +13791,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 957, + "id": 2197, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 955, + "id": 2195, "name": "end", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 866, - "src": "8497:3:1", + "referencedDeclaration": 2106, + "src": "9206:3:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -12860,32 +13813,32 @@ "operator": "-", "rightExpression": { "argumentTypes": null, - "id": 956, + "id": 2196, "name": "start", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 864, - "src": "8503:5:1", + "referencedDeclaration": 2104, + "src": "9212:5:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "8497:11:1", + "src": "9206:11:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } } ], - "id": 958, + "id": 2198, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "8496:13:1", + "src": "9205:13:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -12896,14 +13849,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "32", - "id": 959, + "id": 2199, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8512:1:1", + "src": "9221:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -12911,7 +13864,7 @@ }, "value": "2" }, - "src": "8496:17:1", + "src": "9205:17:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -12925,39 +13878,39 @@ "typeString": "uint8" } ], - "id": 954, + "id": 2194, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "8485:10:1", + "src": "9194: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": 952, + "id": 2192, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "8489:4:1", + "src": "9198:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 953, + "id": 2193, "length": null, "nodeType": "ArrayTypeName", - "src": "8489:6:1", + "src": "9198:6:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" } } }, - "id": 961, + "id": 2201, "isConstant": false, "isLValue": false, "isPure": false, @@ -12965,27 +13918,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8485:29:1", + "src": "9194:29:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory", "typeString": "uint256[] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "8461:53:1" + "src": "9170:53:5" }, { "assignments": [ - 964 + 2204 ], "declarations": [ { "constant": false, - "id": 964, + "id": 2204, "name": "k", "nodeType": "VariableDeclaration", - "scope": 1051, - "src": "8524:6:1", + "scope": 2291, + "src": "9233:6:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12993,10 +13946,10 @@ "typeString": "uint256" }, "typeName": { - "id": 963, + "id": 2203, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "8524:4:1", + "src": "9233:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13006,18 +13959,18 @@ "visibility": "internal" } ], - "id": 966, + "id": 2206, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 965, + "id": 2205, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8533:1:1", + "src": "9242:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -13026,13 +13979,13 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "8524:10:1" + "src": "9233:10:5" }, { "body": { - "id": 1034, + "id": 2274, "nodeType": "Block", - "src": "8565:450:1", + "src": "9274:450:5", "statements": [ { "expression": { @@ -13047,37 +14000,37 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 971, + "id": 2211, "name": "bonusConditions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 869, - "src": "8614:15:1", + "referencedDeclaration": 2109, + "src": "9323:15:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 975, + "id": 2215, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 974, + "id": 2214, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 972, + "id": 2212, "name": "start", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 864, - "src": "8630:5:1", + "referencedDeclaration": 2104, + "src": "9339:5:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -13088,14 +14041,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 973, + "id": 2213, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8638:1:1", + "src": "9347:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -13103,7 +14056,7 @@ }, "value": "1" }, - "src": "8630:9:1", + "src": "9339:9:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -13114,27 +14067,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8614:26:1", + "src": "9323:26:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 976, + "id": 2216, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isPercent", "nodeType": "MemberAccess", - "referencedDeclaration": 4586, - "src": "8614:36:1", + "referencedDeclaration": 5058, + "src": "9323:36:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$", "typeString": "function (uint256) pure returns (bool)" } }, - "id": 977, + "id": 2217, "isConstant": false, "isLValue": false, "isPure": false, @@ -13142,7 +14095,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8614:38:1", + "src": "9323:38:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -13156,21 +14109,21 @@ "typeString": "bool" } ], - "id": 970, + "id": 2210, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "8606:7:1", + "referencedDeclaration": 10045, + "src": "9315:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 978, + "id": 2218, "isConstant": false, "isLValue": false, "isPure": false, @@ -13178,15 +14131,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8606:47:1", + "src": "9315:47:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 979, + "id": 2219, "nodeType": "ExpressionStatement", - "src": "8606:47:1" + "src": "9315:47:5" }, { "expression": { @@ -13198,7 +14151,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 989, + "id": 2229, "isConstant": false, "isLValue": false, "isPure": false, @@ -13207,37 +14160,37 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 981, + "id": 2221, "name": "bonusConditions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 869, - "src": "8675:15:1", + "referencedDeclaration": 2109, + "src": "9384:15:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 985, + "id": 2225, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 984, + "id": 2224, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 982, + "id": 2222, "name": "start", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 864, - "src": "8691:5:1", + "referencedDeclaration": 2104, + "src": "9400:5:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -13248,14 +14201,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 983, + "id": 2223, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8699:1:1", + "src": "9408:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -13263,7 +14216,7 @@ }, "value": "1" }, - "src": "8691:9:1", + "src": "9400:9:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -13274,7 +14227,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8675:26:1", + "src": "9384:26:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13289,32 +14242,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 986, + "id": 2226, "name": "Percent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4631, - "src": "8704:7:1", + "referencedDeclaration": 5103, + "src": "9413:7:5", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Percent_$4631_$", + "typeIdentifier": "t_type$_t_contract$_Percent_$5103_$", "typeString": "type(library Percent)" } }, - "id": 987, + "id": 2227, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "MAX", "nodeType": "MemberAccess", - "referencedDeclaration": 4543, - "src": "8704:11:1", + "referencedDeclaration": 5003, + "src": "9413:11:5", "typeDescriptions": { "typeIdentifier": "t_function_delegatecall_pure$__$returns$_t_uint256_$", "typeString": "function () pure returns (uint256)" } }, - "id": 988, + "id": 2228, "isConstant": false, "isLValue": false, "isPure": false, @@ -13322,13 +14275,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8704:13:1", + "src": "9413:13:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "8675:42:1", + "src": "9384:42:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -13342,21 +14295,21 @@ "typeString": "bool" } ], - "id": 980, + "id": 2220, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "8667:7:1", + "referencedDeclaration": 10045, + "src": "9376:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 990, + "id": 2230, "isConstant": false, "isLValue": false, "isPure": false, @@ -13364,15 +14317,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8667:51:1", + "src": "9376:51:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 991, + "id": 2231, "nodeType": "ExpressionStatement", - "src": "8667:51:1" + "src": "9376:51:5" }, { "condition": { @@ -13381,19 +14334,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 994, + "id": 2234, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 992, + "id": 2232, "name": "k", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 964, - "src": "8767:1:1", + "referencedDeclaration": 2204, + "src": "9476:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13404,14 +14357,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 993, + "id": 2233, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8771:1:1", + "src": "9480:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -13419,20 +14372,20 @@ }, "value": "0" }, - "src": "8767:5:1", + "src": "9476:5:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 1008, + "id": 2248, "nodeType": "IfStatement", - "src": "8763:95:1", + "src": "9472:95:5", "trueBody": { - "id": 1007, + "id": 2247, "nodeType": "Block", - "src": "8774:84:1", + "src": "9483:84:5", "statements": [ { "expression": { @@ -13444,7 +14397,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1004, + "id": 2244, "isConstant": false, "isLValue": false, "isPure": false, @@ -13453,37 +14406,37 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 996, + "id": 2236, "name": "boundaries", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 936, - "src": "8800:10:1", + "referencedDeclaration": 2176, + "src": "9509:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 1000, + "id": 2240, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 999, + "id": 2239, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 997, + "id": 2237, "name": "k", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 964, - "src": "8811:1:1", + "referencedDeclaration": 2204, + "src": "9520:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13494,14 +14447,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 998, + "id": 2238, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8815:1:1", + "src": "9524:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -13509,7 +14462,7 @@ }, "value": "1" }, - "src": "8811:5:1", + "src": "9520:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13520,7 +14473,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8800:17:1", + "src": "9509:17:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13532,26 +14485,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1001, + "id": 2241, "name": "bonusConditions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 869, - "src": "8820:15:1", + "referencedDeclaration": 2109, + "src": "9529:15:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 1003, + "id": 2243, "indexExpression": { "argumentTypes": null, - "id": 1002, + "id": 2242, "name": "start", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 864, - "src": "8836:5:1", + "referencedDeclaration": 2104, + "src": "9545:5:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -13562,13 +14515,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8820:22:1", + "src": "9529:22:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "8800:42:1", + "src": "9509:42:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -13582,21 +14535,21 @@ "typeString": "bool" } ], - "id": 995, + "id": 2235, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "8792:7:1", + "referencedDeclaration": 10045, + "src": "9501:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1005, + "id": 2245, "isConstant": false, "isLValue": false, "isPure": false, @@ -13604,15 +14557,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8792:51:1", + "src": "9501:51:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1006, + "id": 2246, "nodeType": "ExpressionStatement", - "src": "8792:51:1" + "src": "9501:51:5" } ] } @@ -13620,7 +14573,7 @@ { "expression": { "argumentTypes": null, - "id": 1015, + "id": 2255, "isConstant": false, "isLValue": false, "isPure": false, @@ -13629,26 +14582,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1009, + "id": 2249, "name": "boundaries", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 936, - "src": "8872:10:1", + "referencedDeclaration": 2176, + "src": "9581:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 1011, + "id": 2251, "indexExpression": { "argumentTypes": null, - "id": 1010, + "id": 2250, "name": "k", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 964, - "src": "8883:1:1", + "referencedDeclaration": 2204, + "src": "9592:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13659,7 +14612,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "8872:13:1", + "src": "9581:13:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13671,26 +14624,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1012, + "id": 2252, "name": "bonusConditions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 869, - "src": "8888:15:1", + "referencedDeclaration": 2109, + "src": "9597:15:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 1014, + "id": 2254, "indexExpression": { "argumentTypes": null, - "id": 1013, + "id": 2253, "name": "start", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 864, - "src": "8904:5:1", + "referencedDeclaration": 2104, + "src": "9613:5:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -13701,26 +14654,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8888:22:1", + "src": "9597:22:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "8872:38:1", + "src": "9581:38:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1016, + "id": 2256, "nodeType": "ExpressionStatement", - "src": "8872:38:1" + "src": "9581:38:5" }, { "expression": { "argumentTypes": null, - "id": 1025, + "id": 2265, "isConstant": false, "isLValue": false, "isPure": false, @@ -13729,26 +14682,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1017, + "id": 2257, "name": "bonuses", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 951, - "src": "8924:7:1", + "referencedDeclaration": 2191, + "src": "9633:7:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 1019, + "id": 2259, "indexExpression": { "argumentTypes": null, - "id": 1018, + "id": 2258, "name": "k", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 964, - "src": "8932:1:1", + "referencedDeclaration": 2204, + "src": "9641:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13759,7 +14712,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "8924:10:1", + "src": "9633:10:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13771,37 +14724,37 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1020, + "id": 2260, "name": "bonusConditions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 869, - "src": "8937:15:1", + "referencedDeclaration": 2109, + "src": "9646:15:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 1024, + "id": 2264, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 1023, + "id": 2263, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1021, + "id": 2261, "name": "start", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 864, - "src": "8953:5:1", + "referencedDeclaration": 2104, + "src": "9662:5:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -13812,14 +14765,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 1022, + "id": 2262, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8961:1:1", + "src": "9670:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -13827,7 +14780,7 @@ }, "value": "1" }, - "src": "8953:9:1", + "src": "9662:9:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -13838,26 +14791,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8937:26:1", + "src": "9646:26:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "8924:39:1", + "src": "9633:39:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1026, + "id": 2266, "nodeType": "ExpressionStatement", - "src": "8924:39:1" + "src": "9633:39:5" }, { "expression": { "argumentTypes": null, - "id": 1028, + "id": 2268, "isConstant": false, "isLValue": false, "isPure": false, @@ -13865,15 +14818,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "8977:3:1", + "src": "9686:3:5", "subExpression": { "argumentTypes": null, - "id": 1027, + "id": 2267, "name": "k", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 964, - "src": "8977:1:1", + "referencedDeclaration": 2204, + "src": "9686:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13884,26 +14837,26 @@ "typeString": "uint256" } }, - "id": 1029, + "id": 2269, "nodeType": "ExpressionStatement", - "src": "8977:3:1" + "src": "9686:3:5" }, { "expression": { "argumentTypes": null, - "id": 1032, + "id": 2272, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1030, + "id": 2270, "name": "start", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 864, - "src": "8994:5:1", + "referencedDeclaration": 2104, + "src": "9703:5:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -13914,14 +14867,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "32", - "id": 1031, + "id": 2271, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9003:1:1", + "src": "9712:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -13929,15 +14882,15 @@ }, "value": "2" }, - "src": "8994:10:1", + "src": "9703:10:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 1033, + "id": 2273, "nodeType": "ExpressionStatement", - "src": "8994:10:1" + "src": "9703:10:5" } ] }, @@ -13947,19 +14900,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 969, + "id": 2209, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 967, + "id": 2207, "name": "start", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 864, - "src": "8552:5:1", + "referencedDeclaration": 2104, + "src": "9261:5:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -13969,31 +14922,31 @@ "operator": "<", "rightExpression": { "argumentTypes": null, - "id": 968, + "id": 2208, "name": "end", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 866, - "src": "8560:3:1", + "referencedDeclaration": 2106, + "src": "9269:3:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "8552:11:1", + "src": "9261:11:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1035, + "id": 2275, "nodeType": "WhileStatement", - "src": "8545:470:1" + "src": "9254:470:5" }, { "expression": { "argumentTypes": null, - "id": 1041, + "id": 2281, "isConstant": false, "isLValue": false, "isPure": false, @@ -14004,26 +14957,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1036, + "id": 2276, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "9025:6:1", + "referencedDeclaration": 1300, + "src": "9734:6:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$108_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" } }, - "id": 1038, + "id": 2278, "indexExpression": { "argumentTypes": null, - "id": 1037, + "id": 2277, "name": "stageIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 862, - "src": "9032:10:1", + "referencedDeclaration": 2102, + "src": "9741:10:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -14034,21 +14987,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9025:18:1", + "src": "9734:18:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$108_storage", + "typeIdentifier": "t_struct$_Stage_$1318_storage", "typeString": "struct W12Crowdsale.Stage storage ref" } }, - "id": 1039, + "id": 2279, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "volumeBoundaries", "nodeType": "MemberAccess", - "referencedDeclaration": 104, - "src": "9025:35:1", + "referencedDeclaration": 1314, + "src": "9734:35:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" @@ -14058,31 +15011,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1040, + "id": 2280, "name": "boundaries", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 936, - "src": "9063:10:1", + "referencedDeclaration": 2176, + "src": "9772:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "src": "9025:48:1", + "src": "9734:48:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 1042, + "id": 2282, "nodeType": "ExpressionStatement", - "src": "9025:48:1" + "src": "9734:48:5" }, { "expression": { "argumentTypes": null, - "id": 1048, + "id": 2288, "isConstant": false, "isLValue": false, "isPure": false, @@ -14093,26 +15046,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1043, + "id": 2283, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "9083:6:1", + "referencedDeclaration": 1300, + "src": "9792:6:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$108_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" } }, - "id": 1045, + "id": 2285, "indexExpression": { "argumentTypes": null, - "id": 1044, + "id": 2284, "name": "stageIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 862, - "src": "9090:10:1", + "referencedDeclaration": 2102, + "src": "9799:10:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -14123,21 +15076,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9083:18:1", + "src": "9792:18:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$108_storage", + "typeIdentifier": "t_struct$_Stage_$1318_storage", "typeString": "struct W12Crowdsale.Stage storage ref" } }, - "id": 1046, + "id": 2286, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "volumeBonuses", "nodeType": "MemberAccess", - "referencedDeclaration": 107, - "src": "9083:32:1", + "referencedDeclaration": 1317, + "src": "9792:32:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" @@ -14147,31 +15100,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1047, + "id": 2287, "name": "bonuses", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 951, - "src": "9118:7:1", + "referencedDeclaration": 2191, + "src": "9827:7:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "src": "9083:42:1", + "src": "9792:42:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 1049, + "id": 2289, "nodeType": "ExpressionStatement", - "src": "9083:42:1" + "src": "9792:42:5" } ] }, "documentation": "@dev Set stage bonus conditions by stage index\n@param bonusConditions List of bonus conditions:\n[uint boundary, uint bonus, ...]", - "id": 1051, + "id": 2291, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -14179,16 +15132,16 @@ "name": "_setStageBonusConditions", "nodeType": "FunctionDefinition", "parameters": { - "id": 870, + "id": 2110, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 862, + "id": 2102, "name": "stageIndex", "nodeType": "VariableDeclaration", - "scope": 1051, - "src": "7970:16:1", + "scope": 2291, + "src": "8679:16:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14196,10 +15149,10 @@ "typeString": "uint8" }, "typeName": { - "id": 861, + "id": 2101, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "7970:5:1", + "src": "8679:5:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -14210,11 +15163,11 @@ }, { "constant": false, - "id": 864, + "id": 2104, "name": "start", "nodeType": "VariableDeclaration", - "scope": 1051, - "src": "7988:11:1", + "scope": 2291, + "src": "8697:11:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14222,10 +15175,10 @@ "typeString": "uint8" }, "typeName": { - "id": 863, + "id": 2103, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "7988:5:1", + "src": "8697:5:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -14236,11 +15189,11 @@ }, { "constant": false, - "id": 866, + "id": 2106, "name": "end", "nodeType": "VariableDeclaration", - "scope": 1051, - "src": "8001:9:1", + "scope": 2291, + "src": "8710:9:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14248,10 +15201,10 @@ "typeString": "uint8" }, "typeName": { - "id": 865, + "id": 2105, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "8001:5:1", + "src": "8710:5:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -14262,11 +15215,11 @@ }, { "constant": false, - "id": 869, + "id": 2109, "name": "bonusConditions", "nodeType": "VariableDeclaration", - "scope": 1051, - "src": "8012:22:1", + "scope": 2291, + "src": "8721:22:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14275,19 +15228,19 @@ }, "typeName": { "baseType": { - "id": 867, + "id": 2107, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "8012:4:1", + "src": "8721:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 868, + "id": 2108, "length": null, "nodeType": "ArrayTypeName", - "src": "8012:6:1", + "src": "8721:6:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -14297,26 +15250,26 @@ "visibility": "internal" } ], - "src": "7969:66:1" + "src": "8678:66:5" }, "payable": false, "returnParameters": { - "id": 871, + "id": 2111, "nodeType": "ParameterList", "parameters": [], - "src": "8045:0:1" + "src": "8754:0:5" }, - "scope": 1809, - "src": "7936:1196:1", + "scope": 3168, + "src": "8645:1196:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 1328, + "id": 2568, "nodeType": "Block", - "src": "9698:1659:1", + "src": "10407:1659:5", "statements": [ { "condition": { @@ -14325,7 +15278,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1067, + "id": 2307, "isConstant": false, "isLValue": false, "isPure": false, @@ -14334,18 +15287,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1064, + "id": 2304, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "9712:6:1", + "referencedDeclaration": 1300, + "src": "10421:6:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$108_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" } }, - "id": 1065, + "id": 2305, "isConstant": false, "isLValue": true, "isPure": false, @@ -14353,7 +15306,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "9712:13:1", + "src": "10421:13:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14364,14 +15317,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1066, + "id": 2306, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9728:1:1", + "src": "10437:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -14379,20 +15332,20 @@ }, "value": "0" }, - "src": "9712:17:1", + "src": "10421:17:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 1085, + "id": 2325, "nodeType": "IfStatement", - "src": "9708:109:1", + "src": "10417:109:5", "trueBody": { - "id": 1084, + "id": 2324, "nodeType": "Block", - "src": "9731:86:1", + "src": "10440:86:5", "statements": [ { "expression": { @@ -14404,7 +15357,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1081, + "id": 2321, "isConstant": false, "isLValue": false, "isPure": false, @@ -14415,25 +15368,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1069, + "id": 2309, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "9753:6:1", + "referencedDeclaration": 1300, + "src": "10462:6:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$108_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" } }, - "id": 1074, + "id": 2314, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1073, + "id": 2313, "isConstant": false, "isLValue": false, "isPure": false, @@ -14442,18 +15395,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1070, + "id": 2310, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "9760:6:1", + "referencedDeclaration": 1300, + "src": "10469:6:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$108_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" } }, - "id": 1071, + "id": 2311, "isConstant": false, "isLValue": true, "isPure": false, @@ -14461,7 +15414,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "9760:13:1", + "src": "10469:13:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14472,14 +15425,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 1072, + "id": 2312, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9776:1:1", + "src": "10485:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -14487,7 +15440,7 @@ }, "value": "1" }, - "src": "9760:17:1", + "src": "10469:17:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14498,21 +15451,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9753:25:1", + "src": "10462:25:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$108_storage", + "typeIdentifier": "t_struct$_Stage_$1318_storage", "typeString": "struct W12Crowdsale.Stage storage ref" } }, - "id": 1075, + "id": 2315, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "endDate", "nodeType": "MemberAccess", - "referencedDeclaration": 97, - "src": "9753:33:1", + "referencedDeclaration": 1307, + "src": "10462:33:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -14526,29 +15479,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1076, + "id": 2316, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1056, - "src": "9789:10:1", + "referencedDeclaration": 2296, + "src": "10498:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", "typeString": "uint256[4] memory[] memory" } }, - "id": 1078, + "id": 2318, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1077, + "id": 2317, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9800:1:1", + "src": "10509:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -14561,24 +15514,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9789:13:1", + "src": "10498:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory", "typeString": "uint256[4] memory" } }, - "id": 1080, + "id": 2320, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1079, + "id": 2319, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9803:1:1", + "src": "10512:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -14591,13 +15544,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9789:16:1", + "src": "10498:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9753:52:1", + "src": "10462:52:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14611,21 +15564,21 @@ "typeString": "bool" } ], - "id": 1068, + "id": 2308, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "9745:7:1", + "referencedDeclaration": 10045, + "src": "10454:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1082, + "id": 2322, "isConstant": false, "isLValue": false, "isPure": false, @@ -14633,15 +15586,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9745:61:1", + "src": "10454:61:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1083, + "id": 2323, "nodeType": "ExpressionStatement", - "src": "9745:61:1" + "src": "10454:61:5" } ] } @@ -14649,7 +15602,7 @@ { "expression": { "argumentTypes": null, - "id": 1087, + "id": 2327, "isConstant": false, "isLValue": false, "isPure": false, @@ -14657,17 +15610,17 @@ "nodeType": "UnaryOperation", "operator": "delete", "prefix": true, - "src": "9827:17:1", + "src": "10536:17:5", "subExpression": { "argumentTypes": null, - "id": 1086, + "id": 2326, "name": "milestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 143, - "src": "9834:10:1", + "referencedDeclaration": 1303, + "src": "10543:10:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$121_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Milestone_$1331_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" } }, @@ -14676,22 +15629,22 @@ "typeString": "tuple()" } }, - "id": 1088, + "id": 2328, "nodeType": "ExpressionStatement", - "src": "9827:17:1" + "src": "10536:17:5" }, { "assignments": [ - 1090 + 2330 ], "declarations": [ { "constant": false, - "id": 1090, + "id": 2330, "name": "offset", "nodeType": "VariableDeclaration", - "scope": 1329, - "src": "9855:11:1", + "scope": 2569, + "src": "10564:11:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14699,10 +15652,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1089, + "id": 2329, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "9855:4:1", + "src": "10564:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14712,18 +15665,18 @@ "visibility": "internal" } ], - "id": 1092, + "id": 2332, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 1091, + "id": 2331, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9869:1:1", + "src": "10578:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -14732,20 +15685,20 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "9855:15:1" + "src": "10564:15:5" }, { "assignments": [ - 1094 + 2334 ], "declarations": [ { "constant": false, - "id": 1094, + "id": 2334, "name": "k", "nodeType": "VariableDeclaration", - "scope": 1329, - "src": "9880:6:1", + "scope": 2569, + "src": "10589:6:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14753,10 +15706,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1093, + "id": 2333, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "9880:4:1", + "src": "10589:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14766,18 +15719,18 @@ "visibility": "internal" } ], - "id": 1096, + "id": 2336, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 1095, + "id": 2335, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9889:1:1", + "src": "10598:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -14786,20 +15739,20 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "9880:10:1" + "src": "10589:10:5" }, { "assignments": [ - 1098 + 2338 ], "declarations": [ { "constant": false, - "id": 1098, + "id": 2338, "name": "totalPercents", "nodeType": "VariableDeclaration", - "scope": 1329, - "src": "9900:18:1", + "scope": 2569, + "src": "10609:18:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14807,10 +15760,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1097, + "id": 2337, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "9900:4:1", + "src": "10609:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14820,18 +15773,18 @@ "visibility": "internal" } ], - "id": 1100, + "id": 2340, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 1099, + "id": 2339, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9921:1:1", + "src": "10630:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -14840,13 +15793,13 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "9900:22:1" + "src": "10609:22:5" }, { "body": { - "id": 1315, + "id": 2555, "nodeType": "Block", - "src": "9979:1287:1", + "src": "10688:1287:5", "statements": [ { "expression": { @@ -14858,7 +15811,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1122, + "id": 2362, "isConstant": false, "isLValue": false, "isPure": false, @@ -14869,26 +15822,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1113, + "id": 2353, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1056, - "src": "10031:10:1", + "referencedDeclaration": 2296, + "src": "10740:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", "typeString": "uint256[4] memory[] memory" } }, - "id": 1115, + "id": 2355, "indexExpression": { "argumentTypes": null, - "id": 1114, + "id": 2354, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1102, - "src": "10042:1:1", + "referencedDeclaration": 2342, + "src": "10751:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -14899,24 +15852,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10031:13:1", + "src": "10740:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory", "typeString": "uint256[4] memory" } }, - "id": 1117, + "id": 2357, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1116, + "id": 2356, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10045:1:1", + "src": "10754:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -14929,7 +15882,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10031:16:1", + "src": "10740:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14942,7 +15895,7 @@ "arguments": [ { "argumentTypes": null, - "id": 1120, + "id": 2360, "isConstant": false, "isLValue": false, "isPure": true, @@ -14950,18 +15903,18 @@ "nodeType": "UnaryOperation", "operator": "-", "prefix": true, - "src": "10058:3:1", + "src": "10767:3:5", "subExpression": { "argumentTypes": null, "hexValue": "31", - "id": 1119, + "id": 2359, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10060:1:1", + "src": "10769:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -14982,20 +15935,20 @@ "typeString": "int_const -1" } ], - "id": 1118, + "id": 2358, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "10051:6:1", + "src": "10760:6:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": "uint32" }, - "id": 1121, + "id": 2361, "isConstant": false, "isLValue": false, "isPure": true, @@ -15003,13 +15956,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10051:11:1", + "src": "10760:11:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "10031:31:1", + "src": "10740:31:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -15023,21 +15976,21 @@ "typeString": "bool" } ], - "id": 1112, + "id": 2352, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "10023:7:1", + "referencedDeclaration": 10045, + "src": "10732:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1123, + "id": 2363, "isConstant": false, "isLValue": false, "isPure": false, @@ -15045,15 +15998,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10023:40:1", + "src": "10732:40:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1124, + "id": 2364, "nodeType": "ExpressionStatement", - "src": "10023:40:1" + "src": "10732:40:5" }, { "expression": { @@ -15065,7 +16018,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1135, + "id": 2375, "isConstant": false, "isLValue": false, "isPure": false, @@ -15076,26 +16029,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1126, + "id": 2366, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1056, - "src": "10085:10:1", + "referencedDeclaration": 2296, + "src": "10794:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", "typeString": "uint256[4] memory[] memory" } }, - "id": 1128, + "id": 2368, "indexExpression": { "argumentTypes": null, - "id": 1127, + "id": 2367, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1102, - "src": "10096:1:1", + "referencedDeclaration": 2342, + "src": "10805:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -15106,24 +16059,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10085:13:1", + "src": "10794:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory", "typeString": "uint256[4] memory" } }, - "id": 1130, + "id": 2370, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 1129, + "id": 2369, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10099:1:1", + "src": "10808:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -15136,7 +16089,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10085:16:1", + "src": "10794:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15149,7 +16102,7 @@ "arguments": [ { "argumentTypes": null, - "id": 1133, + "id": 2373, "isConstant": false, "isLValue": false, "isPure": true, @@ -15157,18 +16110,18 @@ "nodeType": "UnaryOperation", "operator": "-", "prefix": true, - "src": "10112:3:1", + "src": "10821:3:5", "subExpression": { "argumentTypes": null, "hexValue": "31", - "id": 1132, + "id": 2372, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10114:1:1", + "src": "10823:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -15189,20 +16142,20 @@ "typeString": "int_const -1" } ], - "id": 1131, + "id": 2371, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "10105:6:1", + "src": "10814:6:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": "uint32" }, - "id": 1134, + "id": 2374, "isConstant": false, "isLValue": false, "isPure": true, @@ -15210,13 +16163,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10105:11:1", + "src": "10814:11:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "10085:31:1", + "src": "10794:31:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -15230,21 +16183,21 @@ "typeString": "bool" } ], - "id": 1125, + "id": 2365, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "10077:7:1", + "referencedDeclaration": 10045, + "src": "10786:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1136, + "id": 2376, "isConstant": false, "isLValue": false, "isPure": false, @@ -15252,15 +16205,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10077:40:1", + "src": "10786:40:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1137, + "id": 2377, "nodeType": "ExpressionStatement", - "src": "10077:40:1" + "src": "10786:40:5" }, { "expression": { @@ -15272,7 +16225,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1148, + "id": 2388, "isConstant": false, "isLValue": false, "isPure": false, @@ -15283,26 +16236,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1139, + "id": 2379, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1056, - "src": "10139:10:1", + "referencedDeclaration": 2296, + "src": "10848:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", "typeString": "uint256[4] memory[] memory" } }, - "id": 1141, + "id": 2381, "indexExpression": { "argumentTypes": null, - "id": 1140, + "id": 2380, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1102, - "src": "10150:1:1", + "referencedDeclaration": 2342, + "src": "10859:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -15313,24 +16266,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10139:13:1", + "src": "10848:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory", "typeString": "uint256[4] memory" } }, - "id": 1143, + "id": 2383, "indexExpression": { "argumentTypes": null, "hexValue": "32", - "id": 1142, + "id": 2382, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10153:1:1", + "src": "10862:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -15343,7 +16296,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10139:16:1", + "src": "10848:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15356,7 +16309,7 @@ "arguments": [ { "argumentTypes": null, - "id": 1146, + "id": 2386, "isConstant": false, "isLValue": false, "isPure": true, @@ -15364,18 +16317,18 @@ "nodeType": "UnaryOperation", "operator": "-", "prefix": true, - "src": "10166:3:1", + "src": "10875:3:5", "subExpression": { "argumentTypes": null, "hexValue": "31", - "id": 1145, + "id": 2385, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10168:1:1", + "src": "10877:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -15396,20 +16349,20 @@ "typeString": "int_const -1" } ], - "id": 1144, + "id": 2384, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "10159:6:1", + "src": "10868:6:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": "uint32" }, - "id": 1147, + "id": 2387, "isConstant": false, "isLValue": false, "isPure": true, @@ -15417,13 +16370,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10159:11:1", + "src": "10868:11:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "10139:31:1", + "src": "10848:31:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -15437,21 +16390,21 @@ "typeString": "bool" } ], - "id": 1138, + "id": 2378, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "10131:7:1", + "referencedDeclaration": 10045, + "src": "10840:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1149, + "id": 2389, "isConstant": false, "isLValue": false, "isPure": false, @@ -15459,15 +16412,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10131:40:1", + "src": "10840:40:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1150, + "id": 2390, "nodeType": "ExpressionStatement", - "src": "10131:40:1" + "src": "10840:40:5" }, { "expression": { @@ -15479,7 +16432,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1158, + "id": 2398, "isConstant": false, "isLValue": false, "isPure": false, @@ -15490,26 +16443,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1152, + "id": 2392, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1056, - "src": "10221:10:1", + "referencedDeclaration": 2296, + "src": "10930:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", "typeString": "uint256[4] memory[] memory" } }, - "id": 1154, + "id": 2394, "indexExpression": { "argumentTypes": null, - "id": 1153, + "id": 2393, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1102, - "src": "10232:1:1", + "referencedDeclaration": 2342, + "src": "10941:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -15520,24 +16473,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10221:13:1", + "src": "10930:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory", "typeString": "uint256[4] memory" } }, - "id": 1156, + "id": 2396, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1155, + "id": 2395, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10235:1:1", + "src": "10944:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -15550,7 +16503,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10221:16:1", + "src": "10930:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15560,18 +16513,18 @@ "operator": ">", "rightExpression": { "argumentTypes": null, - "id": 1157, + "id": 2397, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7296, - "src": "10240:3:1", + "referencedDeclaration": 10044, + "src": "10949:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10221:22:1", + "src": "10930:22:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -15585,21 +16538,21 @@ "typeString": "bool" } ], - "id": 1151, + "id": 2391, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "10213:7:1", + "referencedDeclaration": 10045, + "src": "10922:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1159, + "id": 2399, "isConstant": false, "isLValue": false, "isPure": false, @@ -15607,15 +16560,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10213:31:1", + "src": "10922:31:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1160, + "id": 2400, "nodeType": "ExpressionStatement", - "src": "10213:31:1" + "src": "10922:31:5" }, { "expression": { @@ -15627,7 +16580,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1172, + "id": 2412, "isConstant": false, "isLValue": false, "isPure": false, @@ -15638,26 +16591,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1162, + "id": 2402, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1056, - "src": "10266:10:1", + "referencedDeclaration": 2296, + "src": "10975:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", "typeString": "uint256[4] memory[] memory" } }, - "id": 1164, + "id": 2404, "indexExpression": { "argumentTypes": null, - "id": 1163, + "id": 2403, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1102, - "src": "10277:1:1", + "referencedDeclaration": 2342, + "src": "10986:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -15668,24 +16621,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10266:13:1", + "src": "10975:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory", "typeString": "uint256[4] memory" } }, - "id": 1166, + "id": 2406, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 1165, + "id": 2405, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10280:1:1", + "src": "10989:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -15698,7 +16651,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10266:16:1", + "src": "10975:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15712,26 +16665,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1167, + "id": 2407, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1056, - "src": "10285:10:1", + "referencedDeclaration": 2296, + "src": "10994:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", "typeString": "uint256[4] memory[] memory" } }, - "id": 1169, + "id": 2409, "indexExpression": { "argumentTypes": null, - "id": 1168, + "id": 2408, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1102, - "src": "10296:1:1", + "referencedDeclaration": 2342, + "src": "11005:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -15742,24 +16695,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10285:13:1", + "src": "10994:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory", "typeString": "uint256[4] memory" } }, - "id": 1171, + "id": 2411, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1170, + "id": 2410, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10299:1:1", + "src": "11008:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -15772,13 +16725,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10285:16:1", + "src": "10994:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10266:35:1", + "src": "10975:35:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -15792,21 +16745,21 @@ "typeString": "bool" } ], - "id": 1161, + "id": 2401, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "10258:7:1", + "referencedDeclaration": 10045, + "src": "10967:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1173, + "id": 2413, "isConstant": false, "isLValue": false, "isPure": false, @@ -15814,15 +16767,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10258:44:1", + "src": "10967:44:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1174, + "id": 2414, "nodeType": "ExpressionStatement", - "src": "10258:44:1" + "src": "10967:44:5" }, { "expression": { @@ -15834,7 +16787,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1186, + "id": 2426, "isConstant": false, "isLValue": false, "isPure": false, @@ -15845,26 +16798,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1176, + "id": 2416, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1056, - "src": "10324:10:1", + "referencedDeclaration": 2296, + "src": "11033:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", "typeString": "uint256[4] memory[] memory" } }, - "id": 1178, + "id": 2418, "indexExpression": { "argumentTypes": null, - "id": 1177, + "id": 2417, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1102, - "src": "10335:1:1", + "referencedDeclaration": 2342, + "src": "11044:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -15875,24 +16828,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10324:13:1", + "src": "11033:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory", "typeString": "uint256[4] memory" } }, - "id": 1180, + "id": 2420, "indexExpression": { "argumentTypes": null, "hexValue": "32", - "id": 1179, + "id": 2419, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10338:1:1", + "src": "11047:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -15905,7 +16858,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10324:16:1", + "src": "11033:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15919,26 +16872,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1181, + "id": 2421, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1056, - "src": "10343:10:1", + "referencedDeclaration": 2296, + "src": "11052:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", "typeString": "uint256[4] memory[] memory" } }, - "id": 1183, + "id": 2423, "indexExpression": { "argumentTypes": null, - "id": 1182, + "id": 2422, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1102, - "src": "10354:1:1", + "referencedDeclaration": 2342, + "src": "11063:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -15949,24 +16902,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10343:13:1", + "src": "11052:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory", "typeString": "uint256[4] memory" } }, - "id": 1185, + "id": 2425, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 1184, + "id": 2424, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10357:1:1", + "src": "11066:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -15979,13 +16932,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10343:16:1", + "src": "11052:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10324:35:1", + "src": "11033:35:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -15999,21 +16952,21 @@ "typeString": "bool" } ], - "id": 1175, + "id": 2415, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "10316:7:1", + "referencedDeclaration": 10045, + "src": "11025:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1187, + "id": 2427, "isConstant": false, "isLValue": false, "isPure": false, @@ -16021,15 +16974,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10316:44:1", + "src": "11025:44:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1188, + "id": 2428, "nodeType": "ExpressionStatement", - "src": "10316:44:1" + "src": "11025:44:5" }, { "condition": { @@ -16038,19 +16991,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 1191, + "id": 2431, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1189, + "id": 2429, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1102, - "src": "10379:1:1", + "referencedDeclaration": 2342, + "src": "11088:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -16061,14 +17014,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1190, + "id": 2430, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10383:1:1", + "src": "11092:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -16076,20 +17029,20 @@ }, "value": "0" }, - "src": "10379:5:1", + "src": "11088:5:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 1209, + "id": 2449, "nodeType": "IfStatement", - "src": "10375:92:1", + "src": "11084:92:5", "trueBody": { - "id": 1208, + "id": 2448, "nodeType": "Block", - "src": "10386:81:1", + "src": "11095:81:5", "statements": [ { "expression": { @@ -16101,7 +17054,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1205, + "id": 2445, "isConstant": false, "isLValue": false, "isPure": false, @@ -16112,37 +17065,37 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1193, + "id": 2433, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1056, - "src": "10412:10:1", + "referencedDeclaration": 2296, + "src": "11121:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", "typeString": "uint256[4] memory[] memory" } }, - "id": 1197, + "id": 2437, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 1196, + "id": 2436, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1194, + "id": 2434, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1102, - "src": "10423:1:1", + "referencedDeclaration": 2342, + "src": "11132:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -16153,14 +17106,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 1195, + "id": 2435, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10427:1:1", + "src": "11136:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -16168,7 +17121,7 @@ }, "value": "1" }, - "src": "10423:5:1", + "src": "11132:5:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -16179,24 +17132,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10412:17:1", + "src": "11121:17:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory", "typeString": "uint256[4] memory" } }, - "id": 1199, + "id": 2439, "indexExpression": { "argumentTypes": null, "hexValue": "32", - "id": 1198, + "id": 2438, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10430:1:1", + "src": "11139:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -16209,7 +17162,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10412:20:1", + "src": "11121:20:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16223,26 +17176,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1200, + "id": 2440, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1056, - "src": "10435:10:1", + "referencedDeclaration": 2296, + "src": "11144:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", "typeString": "uint256[4] memory[] memory" } }, - "id": 1202, + "id": 2442, "indexExpression": { "argumentTypes": null, - "id": 1201, + "id": 2441, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1102, - "src": "10446:1:1", + "referencedDeclaration": 2342, + "src": "11155:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -16253,24 +17206,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10435:13:1", + "src": "11144:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory", "typeString": "uint256[4] memory" } }, - "id": 1204, + "id": 2444, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1203, + "id": 2443, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10449:1:1", + "src": "11158:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -16283,13 +17236,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10435:16:1", + "src": "11144:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10412:39:1", + "src": "11121:39:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -16303,21 +17256,21 @@ "typeString": "bool" } ], - "id": 1192, + "id": 2432, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "10404:7:1", + "referencedDeclaration": 10045, + "src": "11113:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1206, + "id": 2446, "isConstant": false, "isLValue": false, "isPure": false, @@ -16325,15 +17278,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10404:48:1", + "src": "11113:48:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1207, + "id": 2447, "nodeType": "ExpressionStatement", - "src": "10404:48:1" + "src": "11113:48:5" } ] } @@ -16353,26 +17306,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1211, + "id": 2451, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1056, - "src": "10525:10:1", + "referencedDeclaration": 2296, + "src": "11234:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", "typeString": "uint256[4] memory[] memory" } }, - "id": 1213, + "id": 2453, "indexExpression": { "argumentTypes": null, - "id": 1212, + "id": 2452, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1102, - "src": "10536:1:1", + "referencedDeclaration": 2342, + "src": "11245:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -16383,24 +17336,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10525:13:1", + "src": "11234:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory", "typeString": "uint256[4] memory" } }, - "id": 1215, + "id": 2455, "indexExpression": { "argumentTypes": null, "hexValue": "33", - "id": 1214, + "id": 2454, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10539:1:1", + "src": "11248:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", @@ -16413,27 +17366,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10525:16:1", + "src": "11234:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1216, + "id": 2456, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isPercent", "nodeType": "MemberAccess", - "referencedDeclaration": 4586, - "src": "10525:26:1", + "referencedDeclaration": 5058, + "src": "11234:26:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$", "typeString": "function (uint256) pure returns (bool)" } }, - "id": 1217, + "id": 2457, "isConstant": false, "isLValue": false, "isPure": false, @@ -16441,7 +17394,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10525:28:1", + "src": "11234:28:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -16455,21 +17408,21 @@ "typeString": "bool" } ], - "id": 1210, + "id": 2450, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "10517:7:1", + "referencedDeclaration": 10045, + "src": "11226:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1218, + "id": 2458, "isConstant": false, "isLValue": false, "isPure": false, @@ -16477,28 +17430,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10517:37:1", + "src": "11226:37:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1219, + "id": 2459, "nodeType": "ExpressionStatement", - "src": "10517:37:1" + "src": "11226:37:5" }, { "assignments": [ - 1221 + 2461 ], "declarations": [ { "constant": false, - "id": 1221, + "id": 2461, "name": "name", "nodeType": "VariableDeclaration", - "scope": 1329, - "src": "10569:17:1", + "scope": 2569, + "src": "11278:17:5", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -16506,10 +17459,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1220, + "id": 2460, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "10569:5:1", + "src": "11278:5:5", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -16519,18 +17472,18 @@ "visibility": "internal" } ], - "id": 1229, + "id": 2469, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1224, + "id": 2464, "name": "offset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1090, - "src": "10616:6:1", + "referencedDeclaration": 2330, + "src": "11325:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16540,26 +17493,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1225, + "id": 2465, "name": "offsets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "10624:7:1", + "referencedDeclaration": 2299, + "src": "11333:7:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", "typeString": "uint32[] memory" } }, - "id": 1227, + "id": 2467, "indexExpression": { "argumentTypes": null, - "id": 1226, + "id": 2466, "name": "k", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1094, - "src": "10632:1:1", + "referencedDeclaration": 2334, + "src": "11341:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16570,7 +17523,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10624:10:1", + "src": "11333:10:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -16590,32 +17543,32 @@ ], "expression": { "argumentTypes": null, - "id": 1222, + "id": 2462, "name": "namesAndDescriptions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1061, - "src": "10589:20:1", + "referencedDeclaration": 2301, + "src": "11298:20:5", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 1223, + "id": 2463, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "slice", "nodeType": "MemberAccess", - "referencedDeclaration": 7166, - "src": "10589:26:1", + "referencedDeclaration": 9914, + "src": "11298: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": 1228, + "id": 2468, "isConstant": false, "isLValue": false, "isPure": false, @@ -16623,31 +17576,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10589:46:1", + "src": "11298:46:5", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "10569:66:1" + "src": "11278:66:5" }, { "expression": { "argumentTypes": null, - "id": 1237, + "id": 2477, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1230, + "id": 2470, "name": "offset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1090, - "src": "10649:6:1", + "referencedDeclaration": 2330, + "src": "11358:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16662,26 +17615,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1233, + "id": 2473, "name": "offsets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "10669:7:1", + "referencedDeclaration": 2299, + "src": "11378:7:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", "typeString": "uint32[] memory" } }, - "id": 1235, + "id": 2475, "indexExpression": { "argumentTypes": null, - "id": 1234, + "id": 2474, "name": "k", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1094, - "src": "10677:1:1", + "referencedDeclaration": 2334, + "src": "11386:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16692,7 +17645,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10669:10:1", + "src": "11378:10:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -16708,32 +17661,32 @@ ], "expression": { "argumentTypes": null, - "id": 1231, + "id": 2471, "name": "offset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1090, - "src": "10658:6:1", + "referencedDeclaration": 2330, + "src": "11367:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1232, + "id": 2472, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 6853, - "src": "10658:10:1", + "referencedDeclaration": 9601, + "src": "11367: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": 1236, + "id": 2476, "isConstant": false, "isLValue": false, "isPure": false, @@ -16741,34 +17694,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10658:22:1", + "src": "11367:22:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10649:31:1", + "src": "11358:31:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1238, + "id": 2478, "nodeType": "ExpressionStatement", - "src": "10649:31:1" + "src": "11358:31:5" }, { "assignments": [ - 1240 + 2480 ], "declarations": [ { "constant": false, - "id": 1240, + "id": 2480, "name": "description", "nodeType": "VariableDeclaration", - "scope": 1329, - "src": "10694:24:1", + "scope": 2569, + "src": "11403:24:5", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -16776,10 +17729,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1239, + "id": 2479, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "10694:5:1", + "src": "11403:5:5", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -16789,18 +17742,18 @@ "visibility": "internal" } ], - "id": 1250, + "id": 2490, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1243, + "id": 2483, "name": "offset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1090, - "src": "10748:6:1", + "referencedDeclaration": 2330, + "src": "11457:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16810,37 +17763,37 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1244, + "id": 2484, "name": "offsets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "10756:7:1", + "referencedDeclaration": 2299, + "src": "11465:7:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", "typeString": "uint32[] memory" } }, - "id": 1248, + "id": 2488, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1247, + "id": 2487, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1245, + "id": 2485, "name": "k", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1094, - "src": "10764:1:1", + "referencedDeclaration": 2334, + "src": "11473:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16851,14 +17804,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 1246, + "id": 2486, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10768:1:1", + "src": "11477:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -16866,7 +17819,7 @@ }, "value": "1" }, - "src": "10764:5:1", + "src": "11473:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16877,7 +17830,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10756:14:1", + "src": "11465:14:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -16897,32 +17850,32 @@ ], "expression": { "argumentTypes": null, - "id": 1241, + "id": 2481, "name": "namesAndDescriptions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1061, - "src": "10721:20:1", + "referencedDeclaration": 2301, + "src": "11430:20:5", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 1242, + "id": 2482, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "slice", "nodeType": "MemberAccess", - "referencedDeclaration": 7166, - "src": "10721:26:1", + "referencedDeclaration": 9914, + "src": "11430: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": 1249, + "id": 2489, "isConstant": false, "isLValue": false, "isPure": false, @@ -16930,31 +17883,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10721:50:1", + "src": "11430:50:5", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "10694:77:1" + "src": "11403:77:5" }, { "expression": { "argumentTypes": null, - "id": 1260, + "id": 2500, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1251, + "id": 2491, "name": "offset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1090, - "src": "10785:6:1", + "referencedDeclaration": 2330, + "src": "11494:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16969,37 +17922,37 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1254, + "id": 2494, "name": "offsets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "10805:7:1", + "referencedDeclaration": 2299, + "src": "11514:7:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", "typeString": "uint32[] memory" } }, - "id": 1258, + "id": 2498, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1257, + "id": 2497, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1255, + "id": 2495, "name": "k", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1094, - "src": "10813:1:1", + "referencedDeclaration": 2334, + "src": "11522:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17010,14 +17963,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 1256, + "id": 2496, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10817:1:1", + "src": "11526:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -17025,7 +17978,7 @@ }, "value": "1" }, - "src": "10813:5:1", + "src": "11522:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17036,7 +17989,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10805:14:1", + "src": "11514:14:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -17052,32 +18005,32 @@ ], "expression": { "argumentTypes": null, - "id": 1252, + "id": 2492, "name": "offset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1090, - "src": "10794:6:1", + "referencedDeclaration": 2330, + "src": "11503:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1253, + "id": 2493, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 6853, - "src": "10794:10:1", + "referencedDeclaration": 9601, + "src": "11503: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": 1259, + "id": 2499, "isConstant": false, "isLValue": false, "isPure": false, @@ -17085,38 +18038,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10794:26:1", + "src": "11503:26:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10785:35:1", + "src": "11494:35:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1261, + "id": 2501, "nodeType": "ExpressionStatement", - "src": "10785:35:1" + "src": "11494:35:5" }, { "expression": { "argumentTypes": null, - "id": 1267, + "id": 2507, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1262, + "id": 2502, "name": "k", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1094, - "src": "10834:1:1", + "referencedDeclaration": 2334, + "src": "11543:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17130,14 +18083,14 @@ { "argumentTypes": null, "hexValue": "32", - "id": 1265, + "id": 2505, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10844:1:1", + "src": "11553:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -17155,32 +18108,32 @@ ], "expression": { "argumentTypes": null, - "id": 1263, + "id": 2503, "name": "k", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1094, - "src": "10838:1:1", + "referencedDeclaration": 2334, + "src": "11547:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1264, + "id": 2504, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 6853, - "src": "10838:5:1", + "referencedDeclaration": 9601, + "src": "11547: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": 1266, + "id": 2506, "isConstant": false, "isLValue": false, "isPure": false, @@ -17188,38 +18141,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10838:8:1", + "src": "11547:8:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10834:12:1", + "src": "11543:12:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1268, + "id": 2508, "nodeType": "ExpressionStatement", - "src": "10834:12:1" + "src": "11543:12:5" }, { "expression": { "argumentTypes": null, - "id": 1278, + "id": 2518, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1269, + "id": 2509, "name": "totalPercents", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1098, - "src": "10861:13:1", + "referencedDeclaration": 2338, + "src": "11570:13:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17236,26 +18189,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1272, + "id": 2512, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1056, - "src": "10895:10:1", + "referencedDeclaration": 2296, + "src": "11604:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", "typeString": "uint256[4] memory[] memory" } }, - "id": 1274, + "id": 2514, "indexExpression": { "argumentTypes": null, - "id": 1273, + "id": 2513, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1102, - "src": "10906:1:1", + "referencedDeclaration": 2342, + "src": "11615:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -17266,24 +18219,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10895:13:1", + "src": "11604:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory", "typeString": "uint256[4] memory" } }, - "id": 1276, + "id": 2516, "indexExpression": { "argumentTypes": null, "hexValue": "33", - "id": 1275, + "id": 2515, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10909:1:1", + "src": "11618:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", @@ -17296,7 +18249,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10895:16:1", + "src": "11604:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17312,32 +18265,32 @@ ], "expression": { "argumentTypes": null, - "id": 1270, + "id": 2510, "name": "totalPercents", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1098, - "src": "10877:13:1", + "referencedDeclaration": 2338, + "src": "11586:13:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1271, + "id": 2511, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 6853, - "src": "10877:17:1", + "referencedDeclaration": 9601, + "src": "11586: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": 1277, + "id": 2517, "isConstant": false, "isLValue": false, "isPure": false, @@ -17345,21 +18298,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10877:35:1", + "src": "11586:35:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10861:51:1", + "src": "11570:51:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1279, + "id": 2519, "nodeType": "ExpressionStatement", - "src": "10861:51:1" + "src": "11570:51:5" }, { "expression": { @@ -17377,26 +18330,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1285, + "id": 2525, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1056, - "src": "10987:10:1", + "referencedDeclaration": 2296, + "src": "11696:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", "typeString": "uint256[4] memory[] memory" } }, - "id": 1287, + "id": 2527, "indexExpression": { "argumentTypes": null, - "id": 1286, + "id": 2526, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1102, - "src": "10998:1:1", + "referencedDeclaration": 2342, + "src": "11707:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -17407,24 +18360,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10987:13:1", + "src": "11696:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory", "typeString": "uint256[4] memory" } }, - "id": 1289, + "id": 2529, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1288, + "id": 2528, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11001:1:1", + "src": "11710:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -17437,7 +18390,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10987:16:1", + "src": "11696:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17451,20 +18404,20 @@ "typeString": "uint256" } ], - "id": 1284, + "id": 2524, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "10980:6:1", + "src": "11689:6:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": "uint32" }, - "id": 1290, + "id": 2530, "isConstant": false, "isLValue": false, "isPure": false, @@ -17472,7 +18425,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10980:24:1", + "src": "11689:24:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -17484,26 +18437,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1291, + "id": 2531, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1056, - "src": "11038:10:1", + "referencedDeclaration": 2296, + "src": "11747:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", "typeString": "uint256[4] memory[] memory" } }, - "id": 1293, + "id": 2533, "indexExpression": { "argumentTypes": null, - "id": 1292, + "id": 2532, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1102, - "src": "11049:1:1", + "referencedDeclaration": 2342, + "src": "11758:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -17514,24 +18467,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11038:13:1", + "src": "11747:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory", "typeString": "uint256[4] memory" } }, - "id": 1295, + "id": 2535, "indexExpression": { "argumentTypes": null, "hexValue": "33", - "id": 1294, + "id": 2534, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11052:1:1", + "src": "11761:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", @@ -17544,7 +18497,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11038:16:1", + "src": "11747:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17559,26 +18512,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1297, + "id": 2537, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1056, - "src": "11092:10:1", + "referencedDeclaration": 2296, + "src": "11801:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", "typeString": "uint256[4] memory[] memory" } }, - "id": 1299, + "id": 2539, "indexExpression": { "argumentTypes": null, - "id": 1298, + "id": 2538, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1102, - "src": "11103:1:1", + "referencedDeclaration": 2342, + "src": "11812:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -17589,24 +18542,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11092:13:1", + "src": "11801:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory", "typeString": "uint256[4] memory" } }, - "id": 1301, + "id": 2541, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 1300, + "id": 2540, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11106:1:1", + "src": "11815:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -17619,7 +18572,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11092:16:1", + "src": "11801:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17633,20 +18586,20 @@ "typeString": "uint256" } ], - "id": 1296, + "id": 2536, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "11085:6:1", + "src": "11794:6:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": "uint32" }, - "id": 1302, + "id": 2542, "isConstant": false, "isLValue": false, "isPure": false, @@ -17654,7 +18607,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11085:24:1", + "src": "11794:24:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -17669,26 +18622,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1304, + "id": 2544, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1056, - "src": "11152:10:1", + "referencedDeclaration": 2296, + "src": "11861:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", "typeString": "uint256[4] memory[] memory" } }, - "id": 1306, + "id": 2546, "indexExpression": { "argumentTypes": null, - "id": 1305, + "id": 2545, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1102, - "src": "11163:1:1", + "referencedDeclaration": 2342, + "src": "11872:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -17699,24 +18652,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11152:13:1", + "src": "11861:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory", "typeString": "uint256[4] memory" } }, - "id": 1308, + "id": 2548, "indexExpression": { "argumentTypes": null, "hexValue": "32", - "id": 1307, + "id": 2547, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11166:1:1", + "src": "11875:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -17729,7 +18682,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11152:16:1", + "src": "11861:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17743,20 +18696,20 @@ "typeString": "uint256" } ], - "id": 1303, + "id": 2543, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "11145:6:1", + "src": "11854:6:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": "uint32" }, - "id": 1309, + "id": 2549, "isConstant": false, "isLValue": false, "isPure": false, @@ -17764,7 +18717,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11145:24:1", + "src": "11854:24:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -17772,12 +18725,12 @@ }, { "argumentTypes": null, - "id": 1310, + "id": 2550, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1221, - "src": "11193:4:1", + "referencedDeclaration": 2461, + "src": "11902:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -17785,12 +18738,12 @@ }, { "argumentTypes": null, - "id": 1311, + "id": 2551, "name": "description", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1240, - "src": "11228:11:1", + "referencedDeclaration": 2480, + "src": "11937:11:5", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -17799,18 +18752,18 @@ ], "expression": { "argumentTypes": null, - "id": 1283, + "id": 2523, "name": "Milestone", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 121, - "src": "10943:9:1", + "referencedDeclaration": 1331, + "src": "11652:9:5", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Milestone_$121_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_Milestone_$1331_storage_ptr_$", "typeString": "type(struct W12Crowdsale.Milestone storage pointer)" } }, - "id": 1312, + "id": 2552, "isConstant": false, "isLValue": false, "isPure": false, @@ -17825,9 +18778,9 @@ "description" ], "nodeType": "FunctionCall", - "src": "10943:311:1", + "src": "11652:311:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$121_memory", + "typeIdentifier": "t_struct$_Milestone_$1331_memory", "typeString": "struct W12Crowdsale.Milestone memory" } } @@ -17835,24 +18788,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Milestone_$121_memory", + "typeIdentifier": "t_struct$_Milestone_$1331_memory", "typeString": "struct W12Crowdsale.Milestone memory" } ], "expression": { "argumentTypes": null, - "id": 1280, + "id": 2520, "name": "milestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 143, - "src": "10927:10:1", + "referencedDeclaration": 1303, + "src": "11636:10:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$121_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Milestone_$1331_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" } }, - "id": 1282, + "id": 2522, "isConstant": false, "isLValue": false, "isPure": false, @@ -17860,13 +18813,13 @@ "memberName": "push", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "10927:15:1", + "src": "11636:15:5", "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Milestone_$121_storage_$returns$_t_uint256_$", + "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Milestone_$1331_storage_$returns$_t_uint256_$", "typeString": "function (struct W12Crowdsale.Milestone storage ref) returns (uint256)" } }, - "id": 1313, + "id": 2553, "isConstant": false, "isLValue": false, "isPure": false, @@ -17874,15 +18827,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10927:328:1", + "src": "11636:328:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1314, + "id": 2554, "nodeType": "ExpressionStatement", - "src": "10927:328:1" + "src": "11636:328:5" } ] }, @@ -17892,19 +18845,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1108, + "id": 2348, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1105, + "id": 2345, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1102, - "src": "9951:1:1", + "referencedDeclaration": 2342, + "src": "10660:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -17916,18 +18869,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1106, + "id": 2346, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1056, - "src": "9955:10:1", + "referencedDeclaration": 2296, + "src": "10664:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", "typeString": "uint256[4] memory[] memory" } }, - "id": 1107, + "id": 2347, "isConstant": false, "isLValue": false, "isPure": false, @@ -17935,31 +18888,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "9955:17:1", + "src": "10664:17:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9951:21:1", + "src": "10660:21:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1316, + "id": 2556, "initializationExpression": { "assignments": [ - 1102 + 2342 ], "declarations": [ { "constant": false, - "id": 1102, + "id": 2342, "name": "i", "nodeType": "VariableDeclaration", - "scope": 1329, - "src": "9938:7:1", + "scope": 2569, + "src": "10647:7:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17967,10 +18920,10 @@ "typeString": "uint8" }, "typeName": { - "id": 1101, + "id": 2341, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "9938:5:1", + "src": "10647:5:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -17980,18 +18933,18 @@ "visibility": "internal" } ], - "id": 1104, + "id": 2344, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 1103, + "id": 2343, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9948:1:1", + "src": "10657:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -18000,12 +18953,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "9938:11:1" + "src": "10647:11:5" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 1110, + "id": 2350, "isConstant": false, "isLValue": false, "isPure": false, @@ -18013,15 +18966,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "9974:3:1", + "src": "10683:3:5", "subExpression": { "argumentTypes": null, - "id": 1109, + "id": 2349, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1102, - "src": "9974:1:1", + "referencedDeclaration": 2342, + "src": "10683:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -18032,12 +18985,12 @@ "typeString": "uint8" } }, - "id": 1111, + "id": 2351, "nodeType": "ExpressionStatement", - "src": "9974:3:1" + "src": "10683:3:5" }, "nodeType": "ForStatement", - "src": "9933:1333:1" + "src": "10642:1333:5" }, { "expression": { @@ -18049,19 +19002,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1322, + "id": 2562, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1318, + "id": 2558, "name": "totalPercents", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1098, - "src": "11284:13:1", + "referencedDeclaration": 2338, + "src": "11993:13:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18076,32 +19029,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 1319, + "id": 2559, "name": "Percent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4631, - "src": "11301:7:1", + "referencedDeclaration": 5103, + "src": "12010:7:5", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Percent_$4631_$", + "typeIdentifier": "t_type$_t_contract$_Percent_$5103_$", "typeString": "type(library Percent)" } }, - "id": 1320, + "id": 2560, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "MAX", "nodeType": "MemberAccess", - "referencedDeclaration": 4543, - "src": "11301:11:1", + "referencedDeclaration": 5003, + "src": "12010:11:5", "typeDescriptions": { "typeIdentifier": "t_function_delegatecall_pure$__$returns$_t_uint256_$", "typeString": "function () pure returns (uint256)" } }, - "id": 1321, + "id": 2561, "isConstant": false, "isLValue": false, "isPure": false, @@ -18109,13 +19062,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11301:13:1", + "src": "12010:13:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "11284:30:1", + "src": "11993:30:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -18129,21 +19082,21 @@ "typeString": "bool" } ], - "id": 1317, + "id": 2557, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "11276:7:1", + "referencedDeclaration": 10045, + "src": "11985:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1323, + "id": 2563, "isConstant": false, "isLValue": false, "isPure": false, @@ -18151,15 +19104,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11276:39:1", + "src": "11985:39:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1324, + "id": 2564, "nodeType": "ExpressionStatement", - "src": "11276:39:1" + "src": "11985:39:5" }, { "eventCall": { @@ -18167,18 +19120,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1325, + "id": 2565, "name": "MilestonesUpdated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 161, - "src": "11331:17:1", + "referencedDeclaration": 1349, + "src": "12040:17:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 1326, + "id": 2566, "isConstant": false, "isLValue": false, "isPure": false, @@ -18186,20 +19139,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11331:19:1", + "src": "12040:19:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1327, + "id": 2567, "nodeType": "EmitStatement", - "src": "11326:24:1" + "src": "12035:24:5" } ] }, "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": 1329, + "id": 2569, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -18207,16 +19160,16 @@ "name": "_setMilestones", "nodeType": "FunctionDefinition", "parameters": { - "id": 1062, + "id": 2302, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1056, + "id": 2296, "name": "parameters", "nodeType": "VariableDeclaration", - "scope": 1329, - "src": "9588:20:1", + "scope": 2569, + "src": "10297:20:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -18226,27 +19179,27 @@ "typeName": { "baseType": { "baseType": { - "id": 1052, + "id": 2292, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "9588:4:1", + "src": "10297:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1054, + "id": 2294, "length": { "argumentTypes": null, "hexValue": "34", - "id": 1053, + "id": 2293, "isConstant": false, "isLValue": false, "isPure": false, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9593:1:1", + "src": "10302:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": null, @@ -18255,16 +19208,16 @@ "value": "4" }, "nodeType": "ArrayTypeName", - "src": "9588:7:1", + "src": "10297:7:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_storage_ptr", "typeString": "uint256[4]" } }, - "id": 1055, + "id": 2295, "length": null, "nodeType": "ArrayTypeName", - "src": "9588:9:1", + "src": "10297:9:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$4_storage_$dyn_storage_ptr", "typeString": "uint256[4][]" @@ -18275,11 +19228,11 @@ }, { "constant": false, - "id": 1059, + "id": 2299, "name": "offsets", "nodeType": "VariableDeclaration", - "scope": 1329, - "src": "9618:16:1", + "scope": 2569, + "src": "10327:16:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -18288,19 +19241,19 @@ }, "typeName": { "baseType": { - "id": 1057, + "id": 2297, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "9618:6:1", + "src": "10327:6:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 1058, + "id": 2298, "length": null, "nodeType": "ArrayTypeName", - "src": "9618:8:1", + "src": "10327:8:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", "typeString": "uint32[]" @@ -18311,11 +19264,11 @@ }, { "constant": false, - "id": 1061, + "id": 2301, "name": "namesAndDescriptions", "nodeType": "VariableDeclaration", - "scope": 1329, - "src": "9644:26:1", + "scope": 2569, + "src": "10353:26:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -18323,10 +19276,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1060, + "id": 2300, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "9644:5:1", + "src": "10353:5:5", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -18336,150 +19289,315 @@ "visibility": "internal" } ], - "src": "9578:98:1" + "src": "10287:98:5" }, "payable": false, "returnParameters": { - "id": 1063, + "id": 2303, "nodeType": "ParameterList", "parameters": [], - "src": "9698:0:1" + "src": "10407:0:5" }, - "scope": 1809, - "src": "9555:1802:1", + "scope": 3168, + "src": "10264:1802:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 1473, + "id": 2662, "nodeType": "Block", - "src": "11431:1023:1", + "src": "12167:559:5", "statements": [ { - "expression": { + "condition": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 2584, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 2580, + "name": "PurchaseProcessing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5854, + "src": "12181:18:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$5854_$", + "typeString": "type(library PurchaseProcessing)" + } }, - "id": 1340, + "id": 2581, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftExpression": { + "memberName": "METHOD_ETH", + "nodeType": "MemberAccess", + "referencedDeclaration": 5192, + "src": "12181:29:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 2582, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12181:31:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 2583, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2571, + "src": "12216:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "12181:41:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2597, + "nodeType": "IfStatement", + "src": "12177:124:5", + "trueBody": { + "id": 2596, + "nodeType": "Block", + "src": "12224:77:5", + "statements": [ + { + "expression": { "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2593, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2588, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2571, + "src": "12268:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 2586, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1285, + "src": "12246:5:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "id": 2587, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getTokenAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 6985, + "src": "12246:21:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view external returns (address)" + } + }, + "id": 2589, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12246:29:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 2591, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12287: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": 2590, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12279:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2592, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12279:10:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "12246:43:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], "expression": { - "argumentTypes": null, - "id": 1337, - "name": "msg", + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2585, + "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "11449:3:1", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "12238:7:5", "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" } }, - "id": 1338, + "id": 2594, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11449:9:1", + "names": [], + "nodeType": "FunctionCall", + "src": "12238:52:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1339, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11461:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "11449:13:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1336, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 7297, - 7298 - ], - "referencedDeclaration": 7297, - "src": "11441:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "id": 2595, + "nodeType": "ExpressionStatement", + "src": "12238:52:5" } - }, - "id": 1341, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11441:22:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1342, - "nodeType": "ExpressionStatement", - "src": "11441:22:1" + ] + } }, { "assignments": [ - 1344, + 2599, null ], "declarations": [ { "constant": false, - "id": 1344, + "id": 2599, "name": "index", "nodeType": "VariableDeclaration", - "scope": 1474, - "src": "11475:10:1", + "scope": 2663, + "src": "12312:10:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -18487,10 +19605,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1343, + "id": 2598, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "11475:4:1", + "src": "12312:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18501,24 +19619,24 @@ }, null ], - "id": 1347, + "id": 2602, "initialValue": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 1345, + "id": 2600, "name": "getCurrentStageIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1705, - "src": "11491:20:1", + "referencedDeclaration": 3071, + "src": "12342:20:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_bool_$", "typeString": "function () view returns (uint256,bool)" } }, - "id": 1346, + "id": 2601, "isConstant": false, "isLValue": false, "isPure": false, @@ -18526,259 +19644,292 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11491:22:1", + "src": "12342:22:5", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", "typeString": "tuple(uint256,bool)" } }, "nodeType": "VariableDeclarationStatement", - "src": "11474:39:1" + "src": "12311:53:5" }, { "assignments": [ - 1349 + 2607 ], "declarations": [ { "constant": false, - "id": 1349, - "name": "discount", + "id": 2607, + "name": "invoice", "nodeType": "VariableDeclaration", - "scope": 1474, - "src": "11524:13:1", + "scope": 2663, + "src": "12375:22:5", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5]" }, "typeName": { - "id": 1348, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "11524:4:1", + "baseType": { + "id": 2605, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "12375:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2606, + "length": { + "argumentTypes": null, + "hexValue": "35", + "id": 2604, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12380:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "5" + }, + "nodeType": "ArrayTypeName", + "src": "12375:7:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr", + "typeString": "uint256[5]" } }, "value": null, "visibility": "internal" } ], - "id": 1354, + "id": 2612, "initialValue": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { + "arguments": [ + { "argumentTypes": null, - "id": 1350, - "name": "stages", + "id": 2609, + "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "11540:6:1", + "referencedDeclaration": 2571, + "src": "12411:6:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$108_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, - "id": 1352, - "indexExpression": { + { "argumentTypes": null, - "id": 1351, - "name": "index", + "id": 2610, + "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1344, - "src": "11547:5:1", + "referencedDeclaration": 2573, + "src": "12419:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11540:13:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$108_storage", - "typeString": "struct W12Crowdsale.Stage storage ref" } - }, - "id": 1353, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "discount", - "nodeType": "MemberAccess", - "referencedDeclaration": 99, - "src": "11540:22:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "11524:38:1" - }, - { - "assignments": [ - 1356 - ], - "declarations": [ - { - "constant": false, - "id": 1356, - "name": "vesting", - "nodeType": "VariableDeclaration", - "scope": 1474, - "src": "11572:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1355, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "11572:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1361, - "initialValue": { - "argumentTypes": null, + ], "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1357, - "name": "stages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "11589:6:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$108_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" - } - }, - "id": 1359, - "indexExpression": { - "argumentTypes": null, - "id": 1358, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1344, - "src": "11596:5:1", - "typeDescriptions": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11589:13:1", + ], + "id": 2608, + "name": "getInvoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2971, + "src": "12400:10:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$108_storage", - "typeString": "struct W12Crowdsale.Stage 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": 1360, + "id": 2611, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "memberName": "vesting", - "nodeType": "MemberAccess", - "referencedDeclaration": 101, - "src": "11589:21:1", + "names": [], + "nodeType": "FunctionCall", + "src": "12400:26:5", "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "11572:38:1" + "src": "12375:51:5" }, { "assignments": [ - 1363 + 2617 ], "declarations": [ { "constant": false, - "id": 1363, - "name": "volumeBonus", + "id": 2617, + "name": "fee", "nodeType": "VariableDeclaration", - "scope": 1474, - "src": "11620:16:1", + "scope": 2663, + "src": "12436:18:5", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2]" }, "typeName": { - "id": 1362, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "11620:4:1", + "baseType": { + "id": 2615, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "12436:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2616, + "length": { + "argumentTypes": null, + "hexValue": "32", + "id": 2614, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12441:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "12436:7:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" } }, "value": null, "visibility": "internal" } ], - "id": 1368, + "id": 2626, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "expression": { + "baseExpression": { "argumentTypes": null, - "id": 1365, - "name": "msg", + "id": 2619, + "name": "invoice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "11658:3:1", + "referencedDeclaration": 2607, + "src": "12464:7:5", "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" } }, - "id": 1366, + "id": 2621, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2620, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12472:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11658:9:1", + "nodeType": "IndexAccess", + "src": "12464:10:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2622, + "name": "invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2607, + "src": "12476:7:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2624, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 2623, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12484: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": "12476:10:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18787,23 +19938,27 @@ ], "expression": { "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], - "id": 1364, - "name": "getSaleVolumeBonus", + "id": 2618, + "name": "getFee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1659, - "src": "11639:18:1", + "referencedDeclaration": 2991, + "src": "12457:6:5", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) view returns (uint256)" + "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": 1367, + "id": 2625, "isConstant": false, "isLValue": false, "isPure": false, @@ -18811,190 +19966,217 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11639:29:1", + "src": "12457:30:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "11620:48:1" + "src": "12436:51:5" }, { - "assignments": [ - 1370, - 1372, - 1374, - null - ], - "declarations": [ - { - "constant": false, - "id": 1370, - "name": "tokenAmount", - "nodeType": "VariableDeclaration", - "scope": 1474, - "src": "11680:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1369, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "11680:4:1", + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2628, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2617, + "src": "12511:3:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" } }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1372, - "name": "weiCost", - "nodeType": "VariableDeclaration", - "scope": 1474, - "src": "11698:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1371, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "11698:4:1", + { + "argumentTypes": null, + "id": 2629, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2571, + "src": "12516:6:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1374, - "name": "change", - "nodeType": "VariableDeclaration", - "scope": 1474, - "src": "11712:11:1", - "stateVariable": false, - "storageLocation": "default", + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2627, + "name": "_transferFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2700, + "src": "12498:12:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint256_$2_memory_ptr_$_t_bytes32_$returns$__$", + "typeString": "function (uint256[2] memory,bytes32)" + } + }, + "id": 2630, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12498:25:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2631, + "nodeType": "ExpressionStatement", + "src": "12498:25:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2633, + "name": "invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2607, + "src": "12551:7:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } }, - "typeName": { - "id": 1373, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "11712:4:1", + { + "argumentTypes": null, + "id": 2634, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2617, + "src": "12560:3:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" } }, - "value": null, - "visibility": "internal" - }, - null - ], - "id": 1381, - "initialValue": { - "argumentTypes": null, - "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1376, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "11744:3:1", + "baseExpression": { + "argumentTypes": null, + "id": 2635, + "name": "stages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1300, + "src": "12565:6:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", + "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" + } + }, + "id": 2637, + "indexExpression": { + "argumentTypes": null, + "id": 2636, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2599, + "src": "12572:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12565:13:5", "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" + "typeIdentifier": "t_struct$_Stage_$1318_storage", + "typeString": "struct W12Crowdsale.Stage storage ref" } }, - "id": 1377, + "id": 2638, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, "lValueRequested": false, - "memberName": "value", + "memberName": "vesting", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11744:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1378, - "name": "discount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1349, - "src": "11755:8:1", + "referencedDeclaration": 1311, + "src": "12565:21:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_uint32", + "typeString": "uint32" } }, { "argumentTypes": null, - "id": 1379, - "name": "volumeBonus", + "id": 2639, + "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1363, - "src": "11765:11:1", + "referencedDeclaration": 2571, + "src": "12588:6:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" }, { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" }, { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } ], - "id": 1375, - "name": "_purchaseOrder", + "id": 2632, + "name": "_transferPurchase", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1586, - "src": "11729:14:1", + "referencedDeclaration": 2740, + "src": "12533:17:5", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256) view returns (uint256,uint256,uint256,uint256)" + "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": 1380, + "id": 2640, "isConstant": false, "isLValue": false, "isPure": false, @@ -19002,160 +20184,532 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11729:48:1", + "src": "12533:62:5", "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256,uint256,uint256)" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "nodeType": "VariableDeclarationStatement", - "src": "11679:98:1" + "id": 2641, + "nodeType": "ExpressionStatement", + "src": "12533:62:5" }, { - "condition": { + "expression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1384, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1382, - "name": "WTokenSaleFeePercent", + "arguments": [ + { + "argumentTypes": null, + "id": 2643, + "name": "invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2607, + "src": "12621:7:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + { + "argumentTypes": null, + "id": 2644, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2617, + "src": "12630:3:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + { + "argumentTypes": null, + "id": 2645, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2571, + "src": "12635: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_bytes32", + "typeString": "bytes32" + } + ], + "id": 2642, + "name": "_recordPurchase", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 131, - "src": "11792:20:1", + "referencedDeclaration": 2839, + "src": "12605:15:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "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)" } }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1383, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11815:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "11792:24:1", + "id": 2646, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12605:37:5", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "falseBody": null, - "id": 1410, - "nodeType": "IfStatement", - "src": "11788:247:1", - "trueBody": { - "id": 1409, - "nodeType": "Block", - "src": "11818:217:1", - "statements": [ + "id": 2647, + "nodeType": "ExpressionStatement", + "src": "12605:37:5" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ { - "assignments": [ - 1386 - ], - "declarations": [ - { - "constant": false, - "id": 1386, - "name": "tokensFee", - "nodeType": "VariableDeclaration", - "scope": 1474, - "src": "11832:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1385, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "11832:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1391, - "initialValue": { + "argumentTypes": null, + "expression": { "argumentTypes": null, - "arguments": [ + "id": 2649, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10042, + "src": "12672:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2650, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12672:10:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2651, + "name": "invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2607, + "src": "12684:7:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2653, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2652, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12692: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": "12684:10:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2654, + "name": "invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2607, + "src": "12696:7:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2656, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 2655, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12704: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": "12696:10:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2657, + "name": "invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2607, + "src": "12708:7:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2659, + "indexExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 2658, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12716: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": "12708:10:5", + "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": 2648, + "name": "TokenPurchase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1341, + "src": "12658:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256,uint256)" + } + }, + "id": 2660, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12658:61:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2661, + "nodeType": "EmitStatement", + "src": "12653:66:5" + } + ] + }, + "documentation": null, + "id": 2663, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 2576, + "modifierName": { + "argumentTypes": null, + "id": 2575, + "name": "nonReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9330, + "src": "12135:12:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "12135:12:5" + }, + { + "arguments": null, + "id": 2578, + "modifierName": { + "argumentTypes": null, + "id": 2577, + "name": "onlyWhenSaleActive", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3167, + "src": "12148:18:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "12148:18:5" + } + ], + "name": "buyTokens", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2574, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2571, + "name": "method", + "nodeType": "VariableDeclaration", + "scope": 2663, + "src": "12091:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2570, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "12091:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2573, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 2663, + "src": "12107:11:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2572, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "12107:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12090:29:5" + }, + "payable": true, + "returnParameters": { + "id": 2579, + "nodeType": "ParameterList", + "parameters": [], + "src": "12167:0:5" + }, + "scope": 3168, + "src": "12072:654:5", + "stateMutability": "payable", + "superFunction": 1198, + "visibility": "public" + }, + { + "body": { + "id": 2699, + "nodeType": "Block", + "src": "12793:282:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2675, + "name": "_fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "12847:4:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + { + "argumentTypes": null, + "id": 2676, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2669, + "src": "12865:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "arguments": [ { "argumentTypes": null, - "id": 1389, - "name": "WTokenSaleFeePercent", + "id": 2679, + "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 131, - "src": "11869:20:1", + "referencedDeclaration": 2669, + "src": "12899:6:5", "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, - "id": 1387, - "name": "tokenAmount", + "id": 2677, + "name": "rates", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1370, - "src": "11849:11:1", + "referencedDeclaration": 1285, + "src": "12885:5:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" } }, - "id": 1388, + "id": 2678, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "percent", + "memberName": "isToken", "nodeType": "MemberAccess", - "referencedDeclaration": 4568, - "src": "11849:19:1", + "referencedDeclaration": 6992, + "src": "12885:13: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)" + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (bytes32) view external returns (bool)" } }, - "id": 1390, + "id": 2680, "isConstant": false, "isLValue": false, "isPure": false, @@ -19163,267 +20717,127 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11849:41:1", + "src": "12885:21:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "nodeType": "VariableDeclarationStatement", - "src": "11832:58:1" - }, - { - "expression": { + "falseExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1395, - "name": "swap", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 135, - "src": "11938:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1396, - "name": "serviceWallet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 133, - "src": "11944:13:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1397, - "name": "tokensFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1386, - "src": "11959:9:1", - "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": 1393, - "name": "originToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 125, - "src": "11913:11:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", - "typeString": "contract ERC20" - } - }, - "id": 1394, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 6999, - "src": "11913:24:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,address,uint256) external returns (bool)" - } - }, - "id": 1398, + "hexValue": "30", + "id": 2686, "isConstant": false, "isLValue": false, - "isPure": false, - "kind": "functionCall", + "isPure": true, + "kind": "number", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11913:56:1", + "nodeType": "Literal", + "src": "12949:1:5", + "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": 1392, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 7297, - 7298 - ], - "referencedDeclaration": 7297, - "src": "11905:7:1", + "id": 2685, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12941:7:5", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, - "id": 1399, + "id": 2687, "isConstant": false, "isLValue": false, - "isPure": false, - "kind": "functionCall", + "isPure": true, + "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11905:65:1", + "src": "12941:10:5", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 1400, - "nodeType": "ExpressionStatement", - "src": "11905:65:1" - }, - { - "expression": { + "id": 2688, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "12885:66:5", + "trueExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1404, - "name": "swap", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 135, - "src": "12007:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1405, - "name": "tokensFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1386, - "src": "12013:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1402, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 123, - "src": "11992:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" - } - }, - "id": 1403, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 5219, - "src": "11992:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 1406, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11992:31:1", + "id": 2683, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2669, + "src": "12931:6:5", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } ], - "id": 1401, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 7297, - 7298 - ], - "referencedDeclaration": 7297, - "src": "11984:7:1", + "expression": { + "argumentTypes": null, + "id": 2681, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1285, + "src": "12909:5:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "id": 2682, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getTokenAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 6985, + "src": "12909:21:5", "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": 1407, + "id": 2684, "isConstant": false, "isLValue": false, "isPure": false, @@ -19431,161 +20845,205 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11984:40:1", + "src": "12909:29:5", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 1408, - "nodeType": "ExpressionStatement", - "src": "11984:40:1" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1414, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "12075:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1415, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12075:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1416, - "name": "tokenAmount", + "id": 2690, + "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1370, - "src": "12087:11:1", + "referencedDeclaration": 1279, + "src": "12973:5:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" } + ], + "id": 2689, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12965:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" }, + "typeName": "address" + }, + "id": 2691, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12965:14:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ { "argumentTypes": null, - "id": 1417, - "name": "vesting", + "id": 2693, + "name": "originToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "12100:7:1", + "referencedDeclaration": 1281, + "src": "13001:11:5", "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" + "typeIdentifier": "t_contract$_ERC20_$9765", + "typeString": "contract ERC20" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" + "typeIdentifier": "t_contract$_ERC20_$9765", + "typeString": "contract ERC20" } ], - "expression": { - "argumentTypes": null, - "id": 1412, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 123, - "src": "12053:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" - } - }, - "id": 1413, + "id": 2692, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, "lValueRequested": false, - "memberName": "vestingTransfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 5264, - "src": "12053:21:1", + "nodeType": "ElementaryTypeNameExpression", + "src": "12993:7:5", "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_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, - "id": 1418, + "id": 2694, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", + "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12053:55:1", + "src": "12993:20:5", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2695, + "name": "swap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1295, + "src": "13027:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2696, + "name": "serviceWallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1293, + "src": "13045:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "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" } ], - "id": 1411, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 7297, - 7298 - ], - "referencedDeclaration": 7297, - "src": "12045:7:1", + "expression": { + "argumentTypes": null, + "id": 2672, + "name": "PurchaseProcessing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5854, + "src": "12803:18:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$5854_$", + "typeString": "type(library PurchaseProcessing)" + } + }, + "id": 2674, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFee", + "nodeType": "MemberAccess", + "referencedDeclaration": 5638, + "src": "12803:30:5", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "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)" } }, - "id": 1419, + "id": 2697, "isConstant": false, "isLValue": false, "isPure": false, @@ -19593,145 +21051,241 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12045:64:1", + "src": "12803:265:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1420, + "id": 2698, "nodeType": "ExpressionStatement", - "src": "12045:64:1" - }, + "src": "12803:265:5" + } + ] + }, + "documentation": null, + "id": 2700, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "_transferFee", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2670, + "nodeType": "ParameterList", + "parameters": [ { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1423, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1421, - "name": "change", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1374, - "src": "12124:6:1", + "constant": false, + "id": 2667, + "name": "_fee", + "nodeType": "VariableDeclaration", + "scope": 2700, + "src": "12754:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2]" + }, + "typeName": { + "baseType": { + "id": 2664, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "12754:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { + "id": 2666, + "length": { "argumentTypes": null, - "hexValue": "30", - "id": 1422, + "hexValue": "32", + "id": 2665, "isConstant": false, "isLValue": false, - "isPure": true, + "isPure": false, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12133:1:1", + "src": "12759:1:5", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "typeIdentifier": null, + "typeString": null }, - "value": "0" + "value": "2" }, - "src": "12124:10:1", + "nodeType": "ArrayTypeName", + "src": "12754:7:5", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" } }, - "falseBody": null, - "id": 1433, - "nodeType": "IfStatement", - "src": "12120:68:1", - "trueBody": { - "id": 1432, - "nodeType": "Block", - "src": "12136:52:1", - "statements": [ + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2669, + "name": "method", + "nodeType": "VariableDeclaration", + "scope": 2700, + "src": "12768:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2668, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "12768:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12753:30:5" + }, + "payable": false, + "returnParameters": { + "id": 2671, + "nodeType": "ParameterList", + "parameters": [], + "src": "12793:0:5" + }, + "scope": 3168, + "src": "12732:343:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2739, + "nodeType": "Block", + "src": "13181:251:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ { - "expression": { + "argumentTypes": null, + "id": 2718, + "name": "_invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2704, + "src": "13240:8:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + { + "argumentTypes": null, + "id": 2719, + "name": "_fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2708, + "src": "13262:4:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + { + "argumentTypes": null, + "id": 2720, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2710, + "src": "13280:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 2721, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2712, + "src": "13301:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "condition": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1429, - "name": "change", + "id": 2724, + "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1374, - "src": "12170:6:1", + "referencedDeclaration": 2712, + "src": "13335:6:5", "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": 1424, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "12150:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1427, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12150:10:1", + "id": 2722, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1285, + "src": "13321:5:5", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" } }, - "id": 1428, + "id": 2723, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "transfer", + "memberName": "isToken", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12150:19:1", + "referencedDeclaration": 6992, + "src": "13321:13:5", "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (bytes32) view external returns (bool)" } }, - "id": 1430, + "id": 2725, "isConstant": false, "isLValue": false, "isPure": false, @@ -19739,130 +21293,127 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12150:27:1", + "src": "13321:21:5", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 1431, - "nodeType": "ExpressionStatement", - "src": "12150:27:1" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1436, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1434, - "name": "serviceFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 129, - "src": "12201:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1435, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12214:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "12201:14:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1446, - "nodeType": "IfStatement", - "src": "12198:82:1", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { + "falseExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 2731, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13385: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": 2730, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13377:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2732, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13377:10:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2733, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "13321:66:5", + "trueExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1442, - "name": "serviceFee", + "id": 2728, + "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 129, - "src": "12268:10:1", + "referencedDeclaration": 2712, + "src": "13367:6:5", "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, - "id": 1440, - "name": "weiCost", + "id": 2726, + "name": "rates", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1372, - "src": "12252:7:1", + "referencedDeclaration": 1285, + "src": "13345:5:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" } }, - "id": 1441, + "id": 2727, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "percent", + "memberName": "getTokenAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 4568, - "src": "12252:15:1", + "referencedDeclaration": 6985, + "src": "13345:21: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)" + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view external returns (address)" } }, - "id": 1443, + "id": 2729, "isConstant": false, "isLValue": false, "isPure": false, @@ -19870,436 +21421,124 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12252:27:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1437, - "name": "serviceWallet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 133, - "src": "12229:13:1", + "src": "13345:29:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1439, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12229:22:1", "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 1444, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12229:51:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1445, - "nodeType": "ExpressionStatement", - "src": "12229:51:1" - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ { "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2735, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1279, + "src": "13409:5:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" + } + } + ], "expression": { - "argumentTypes": null, - "id": 1460, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "12352:3:1", + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" + } + ], + "id": 2734, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13401:7:5", "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, - "id": 1461, + "id": 2736, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "typeConversion", "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12352:10:1", + "names": [], + "nodeType": "FunctionCall", + "src": "13401:14:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - { - "argumentTypes": null, - "id": 1462, - "name": "tokenAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1370, - "src": "12364:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" }, { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "arguments": [ + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + }, { - "argumentTypes": null, - "hexValue": "313030303030", - "id": 1458, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12344:6:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_100000_by_1", - "typeString": "int_const 100000" - }, - "value": "100000" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_100000_by_1", - "typeString": "int_const 100000" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1453, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7333, - "src": "12325:4:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_W12Crowdsale_$1809", - "typeString": "contract W12Crowdsale" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_W12Crowdsale_$1809", - "typeString": "contract W12Crowdsale" - } - ], - "id": 1452, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "12317:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1454, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12317:13:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1455, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12317:21:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1447, - "name": "fund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 137, - "src": "12291:4:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", - "typeString": "contract IW12Fund" - } - }, - "id": 1450, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "recordPurchase", - "nodeType": "MemberAccess", - "referencedDeclaration": 4483, - "src": "12291:19:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) payable external" - } - }, - "id": 1451, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12291:25:1", - "typeDescriptions": { - "typeIdentifier": "t_function_setvalue_nonpayable$_t_uint256_$returns$_t_function_external_payable$_t_address_$_t_uint256_$returns$__$value_$", - "typeString": "function (uint256) returns (function (address,uint256) payable external)" - } - }, - "id": 1456, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12291:48:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$_t_address_$_t_uint256_$returns$__$value", - "typeString": "function (address,uint256) payable external" - } + "typeIdentifier": "t_uint32", + "typeString": "uint32" }, - "id": 1457, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "gas", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12291:52:1", - "typeDescriptions": { - "typeIdentifier": "t_function_setgas_nonpayable$_t_uint256_$returns$_t_function_external_payable$_t_address_$_t_uint256_$returns$__$gasvalue_$value", - "typeString": "function (uint256) returns (function (address,uint256) payable external)" - } - }, - "id": 1459, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12291:60:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$_t_address_$_t_uint256_$returns$__$gasvalue", - "typeString": "function (address,uint256) payable external" - } - }, - "id": 1463, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12291:85:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1464, - "nodeType": "ExpressionStatement", - "src": "12291:85:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1466, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "12406:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" }, - "id": 1467, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12406:10:1", - "typeDescriptions": { + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { "typeIdentifier": "t_address", "typeString": "address" } - }, - { - "argumentTypes": null, - "id": 1468, - "name": "weiCost", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1372, - "src": "12418:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { + ], + "expression": { "argumentTypes": null, - "id": 1469, - "name": "tokenAmount", + "id": 2715, + "name": "PurchaseProcessing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1370, - "src": "12427:11:1", + "referencedDeclaration": 5854, + "src": "13191:18:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$5854_$", + "typeString": "type(library PurchaseProcessing)" } }, - { - "argumentTypes": null, - "id": 1470, - "name": "change", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1374, - "src": "12440:6:1", - "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": 1465, - "name": "TokenPurchase", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 153, - "src": "12392:13:1", + "id": 2717, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferPurchase", + "nodeType": "MemberAccess", + "referencedDeclaration": 5811, + "src": "13191:35:5", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256,uint256,uint256)" + "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)" } }, - "id": 1471, + "id": 2737, "isConstant": false, "isLValue": false, "isPure": false, @@ -20307,771 +21546,979 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12392:55:1", + "src": "13191:234:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1472, - "nodeType": "EmitStatement", - "src": "12387:60:1" + "id": 2738, + "nodeType": "ExpressionStatement", + "src": "13191:234:5" } ] }, "documentation": null, - "id": 1474, + "id": 2740, "implemented": true, "isConstructor": false, "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 1332, - "modifierName": { - "argumentTypes": null, - "id": 1331, - "name": "nonReentrant", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6689, - "src": "11399:12:1", + "modifiers": [], + "name": "_transferPurchase", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2713, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2704, + "name": "_invoice", + "nodeType": "VariableDeclaration", + "scope": 2740, + "src": "13108:16:5", + "stateVariable": false, + "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5]" + }, + "typeName": { + "baseType": { + "id": 2701, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "13108:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2703, + "length": { + "argumentTypes": null, + "hexValue": "35", + "id": 2702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13113:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "5" + }, + "nodeType": "ArrayTypeName", + "src": "13108:7:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr", + "typeString": "uint256[5]" + } + }, + "value": null, + "visibility": "internal" }, - "nodeType": "ModifierInvocation", - "src": "11399:12:1" - }, - { - "arguments": null, - "id": 1334, - "modifierName": { - "argumentTypes": null, - "id": 1333, - "name": "onlyWhenSaleActive", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1808, - "src": "11412:18:1", + { + "constant": false, + "id": 2708, + "name": "_fee", + "nodeType": "VariableDeclaration", + "scope": 2740, + "src": "13126:12:5", + "stateVariable": false, + "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2]" + }, + "typeName": { + "baseType": { + "id": 2705, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "13126:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2707, + "length": { + "argumentTypes": null, + "hexValue": "32", + "id": 2706, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13131:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "13126:7:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "value": null, + "visibility": "internal" }, - "nodeType": "ModifierInvocation", - "src": "11412:18:1" - } - ], - "name": "buyTokens", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1330, - "nodeType": "ParameterList", - "parameters": [], - "src": "11381:2:1" + { + "constant": false, + "id": 2710, + "name": "vesting", + "nodeType": "VariableDeclaration", + "scope": 2740, + "src": "13140:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2709, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "13140:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2712, + "name": "method", + "nodeType": "VariableDeclaration", + "scope": 2740, + "src": "13156:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2711, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "13156:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13107:64:5" }, - "payable": true, + "payable": false, "returnParameters": { - "id": 1335, + "id": 2714, "nodeType": "ParameterList", "parameters": [], - "src": "11431:0:1" + "src": "13181:0:5" }, - "scope": 1809, - "src": "11363:1091:1", - "stateMutability": "payable", - "superFunction": 4420, - "visibility": "public" + "scope": 3168, + "src": "13081:351:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" }, { "body": { - "id": 1585, + "id": 2838, "nodeType": "Block", - "src": "12621:633:1", + "src": "13520:442:5", "statements": [ { - "expression": { + "condition": { "argumentTypes": null, - "id": 1493, + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 2757, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftHandSide": { + "leftExpression": { "argumentTypes": null, - "id": 1491, - "name": "weiCost", + "id": 2753, + "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1485, - "src": "12631:7:1", + "referencedDeclaration": 2750, + "src": "13534:6:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { "argumentTypes": null, - "id": 1492, - "name": "_wei", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1476, - "src": "12641:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "12631:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1494, - "nodeType": "ExpressionStatement", - "src": "12631:14:1" - }, - { - "assignments": [ - 1496 - ], - "declarations": [ - { - "constant": false, - "id": 1496, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 1586, - "src": "12656:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1495, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "12656:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1503, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1500, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7333, - "src": "12695:4:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_W12Crowdsale_$1809", - "typeString": "contract W12Crowdsale" - } - } - ], + "arguments": [], + "expression": { + "argumentTypes": [], "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_W12Crowdsale_$1809", - "typeString": "contract W12Crowdsale" - } - ], - "id": 1499, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "12687:7:1", + "argumentTypes": null, + "id": 2754, + "name": "PurchaseProcessing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5854, + "src": "13544:18:5", "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$5854_$", + "typeString": "type(library PurchaseProcessing)" + } }, - "id": 1501, + "id": 2755, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "typeConversion", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12687:13:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1497, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 123, - "src": "12671:5:1", + "memberName": "METHOD_ETH", + "nodeType": "MemberAccess", + "referencedDeclaration": 5192, + "src": "13544:29:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" + "typeIdentifier": "t_function_internal_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" } }, - "id": 1498, + "id": 2756, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 5276, - "src": "12671:15:1", + "names": [], + "nodeType": "FunctionCall", + "src": "13544:31:5", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, - "id": 1502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12671:30:1", + "src": "13534:41:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "nodeType": "VariableDeclarationStatement", - "src": "12656:45:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ + "falseBody": { + "id": 2836, + "nodeType": "Block", + "src": "13731:225:5", + "statements": [ { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1513, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1505, - "name": "balance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1496, - "src": "12720:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { + "expression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1512, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 1506, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12731:2:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2801, + "name": "fund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1283, + "src": "13807:4:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1241", + "typeString": "contract IW12Fund" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IW12Fund_$1241", + "typeString": "contract IW12Fund" + } + ], + "id": 2800, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13799:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2802, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13799:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2807, + "name": "_fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2748, + "src": "13830: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": "13835: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": "13830: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": 2744, + "src": "13814: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": "13823: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": "13814:11:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2806, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9577, + "src": "13814: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": "13814:24:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], "expression": { - "argumentTypes": [], + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2796, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2750, + "src": "13781:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 2794, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1285, + "src": "13759:5:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "id": 2795, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getTokenAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 6985, + "src": "13759:21:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view external returns (address)" + } + }, + "id": 2797, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13759:29:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], "expression": { - "argumentTypes": null, - "id": 1508, - "name": "token", + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2793, + "name": "ERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 123, - "src": "12742:5:1", + "referencedDeclaration": 9765, + "src": "13753:5:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" + "typeIdentifier": "t_type$_t_contract$_ERC20_$9765_$", + "typeString": "type(contract ERC20)" } }, - "id": 1509, + "id": 2798, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "typeConversion", "lValueRequested": false, - "memberName": "decimals", - "nodeType": "MemberAccess", - "referencedDeclaration": 6951, - "src": "12742:14:1", + "names": [], + "nodeType": "FunctionCall", + "src": "13753:36:5", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", - "typeString": "function () view external returns (uint8)" + "typeIdentifier": "t_contract$_ERC20_$9765", + "typeString": "contract ERC20" } }, - "id": 1510, + "id": 2799, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12742:16:1", + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 9788, + "src": "13753:45:5", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" } - ], - "id": 1507, + }, + "id": 2811, "isConstant": false, "isLValue": false, - "isPure": true, + "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "12737:4:1", + "names": [], + "nodeType": "FunctionCall", + "src": "13753:86:5", "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint" - }, - "id": 1511, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12737:22:1", + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2792, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "13745:7:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" } }, - "src": "12731:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "12720:39:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1504, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 7297, - 7298 - ], - "referencedDeclaration": 7297, - "src": "12712:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1514, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12712:48:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1515, - "nodeType": "ExpressionStatement", - "src": "12712:48:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1530, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1516, - "name": "actualPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1489, - "src": "12771:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1519, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1517, - "name": "discount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1478, - "src": "12785:8:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1518, + "id": 2812, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "number", + "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "Literal", - "src": "12796:1:1", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "13745:95:5", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } }, - "src": "12785:12:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "id": 1528, - "name": "price", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 127, - "src": "12866:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "id": 2813, + "nodeType": "ExpressionStatement", + "src": "13745:95:5" }, - "id": 1529, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "12785:86:1", - "trueExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1526, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + { + "expression": { + "argumentTypes": null, + "arguments": [ + { "argumentTypes": null, - "arguments": [], "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 1522, - "name": "Percent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4631, - "src": "12826:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Percent_$4631_$", - "typeString": "type(library Percent)" - } - }, - "id": 1523, + "argumentTypes": null, + "id": 2817, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10042, + "src": "13874:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2818, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13874:10:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2819, + "name": "_invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2744, + "src": "13886:8:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2821, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2820, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "number", "lValueRequested": false, - "memberName": "MAX", - "nodeType": "MemberAccess", - "referencedDeclaration": 4543, - "src": "12826:11:1", + "nodeType": "Literal", + "src": "13895:1:5", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$__$returns$_t_uint256_$", - "typeString": "function () pure returns (uint256)" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" }, - "id": 1524, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12826:13:1", + "nodeType": "IndexAccess", + "src": "13886:11:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { + { "argumentTypes": null, - "id": 1525, - "name": "discount", + "id": 2822, + "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1478, - "src": "12842:8:1", + "referencedDeclaration": 2750, + "src": "13899:6:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2827, + "name": "_fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2748, + "src": "13923:4:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + "id": 2829, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 2828, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13928: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": "13923:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2823, + "name": "_invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2744, + "src": "13907:8:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2825, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 2824, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13916: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": "13907:11:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2826, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9577, + "src": "13907: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": 2830, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13907:24:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "12826:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2831, + "name": "_invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2744, + "src": "13933:8:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2833, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 2832, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13942: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": "13933:11:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } } ], "expression": { - "argumentTypes": null, - "id": 1520, - "name": "price", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 127, - "src": "12812:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1521, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "percent", - "nodeType": "MemberAccess", - "referencedDeclaration": 4568, - "src": "12812:13: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": 1527, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12812:39:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "12771:100:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1531, - "nodeType": "ExpressionStatement", - "src": "12771:100:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1558, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1532, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1483, - "src": "12882:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], + "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": 1554, - "name": "Percent", + "id": 2814, + "name": "fund", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4631, - "src": "13036:7:1", + "referencedDeclaration": 1283, + "src": "13854:4:5", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Percent_$4631_$", - "typeString": "type(library Percent)" + "typeIdentifier": "t_contract$_IW12Fund_$1241", + "typeString": "contract IW12Fund" } }, - "id": 1555, + "id": 2816, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "MAX", + "memberName": "recordPurchase", "nodeType": "MemberAccess", - "referencedDeclaration": 4543, - "src": "13036:11:1", + "referencedDeclaration": 1240, + "src": "13854:19:5", "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$__$returns$_t_uint256_$", - "typeString": "function () pure returns (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": 1556, + "id": 2834, "isConstant": false, "isLValue": false, "isPure": false, @@ -21079,163 +22526,160 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13036:13:1", + "src": "13854:91:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } - ], + }, + "id": 2835, + "nodeType": "ExpressionStatement", + "src": "13854:91:5" + } + ] + }, + "id": 2837, + "nodeType": "IfStatement", + "src": "13530:426:5", + "trueBody": { + "id": 2791, + "nodeType": "Block", + "src": "13577:148:5", + "statements": [ + { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1551, - "name": "actualPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1489, - "src": "13006:11:1", + "expression": { + "argumentTypes": null, + "id": 2772, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10042, + "src": "13643:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13643:10:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } - } - ], - "expression": { - "argumentTypes": [ - { + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2774, + "name": "_invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2744, + "src": "13655:8:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2776, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2775, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13664: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": "13655:11:5", + "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - ], - "expression": { + }, + { + "argumentTypes": null, + "id": 2777, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2750, + "src": "13668:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "baseExpression": { + "argumentTypes": null, + "id": 2782, + "name": "_fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2748, + "src": "13692:4:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } }, - "id": 1548, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "id": 2784, + "indexExpression": { "argumentTypes": null, - "hexValue": "3130", - "id": 1542, + "hexValue": "31", + "id": 2783, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12959:2:1", + "src": "13697:1:5", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 1544, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 123, - "src": "12970:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" - } - }, - "id": 1545, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "decimals", - "nodeType": "MemberAccess", - "referencedDeclaration": 6951, - "src": "12970:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", - "typeString": "function () view external returns (uint8)" - } - }, - "id": 1546, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12970:16:1", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 1543, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "12965:4:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint" + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" }, - "id": 1547, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12965:22:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "value": "1" }, - "src": "12959:28:1", + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13692:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21251,149 +22695,64 @@ ], "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1539, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 1535, - "name": "Percent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4631, - "src": "12913:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Percent_$4631_$", - "typeString": "type(library Percent)" - } - }, - "id": 1536, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "MAX", - "nodeType": "MemberAccess", - "referencedDeclaration": 4543, - "src": "12913:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$__$returns$_t_uint256_$", - "typeString": "function () pure returns (uint256)" - } - }, - "id": 1537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12913:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 1538, - "name": "volumeBonus", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1480, - "src": "12929:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "12913:27:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "baseExpression": { + "argumentTypes": null, + "id": 2778, + "name": "_invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2744, + "src": "13676:8:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1533, - "name": "_wei", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1476, - "src": "12891:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1534, + }, + "id": 2780, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 2779, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "number", "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 6795, - "src": "12891:21:1", + "nodeType": "Literal", + "src": "13685:1:5", + "subdenomination": null, "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_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" }, - "id": 1540, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12891:50:1", + "nodeType": "IndexAccess", + "src": "13676:11:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1541, + "id": 2781, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "mul", + "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 6795, - "src": "12891:67:1", + "referencedDeclaration": 9577, + "src": "13676: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": 1549, + "id": 2785, "isConstant": false, "isLValue": false, "isPure": false, @@ -21401,191 +22760,125 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12891:97:1", + "src": "13676:24:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1550, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 6809, - "src": "12891:114: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": 1552, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12891:127:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1553, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 6809, - "src": "12891:144: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": 1557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12891:159:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "12882:168:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1559, - "nodeType": "ExpressionStatement", - "src": "12882:168:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1562, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1560, - "name": "balance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1496, - "src": "13065:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 1561, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1483, - "src": "13075:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13065:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1584, - "nodeType": "IfStatement", - "src": "13061:187:1", - "trueBody": { - "id": 1583, - "nodeType": "Block", - "src": "13083:165:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1571, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1563, - "name": "weiCost", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1485, - "src": "13097:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { + { + "argumentTypes": null, + "baseExpression": { "argumentTypes": null, - "id": 1569, - "name": "tokens", + "id": 2786, + "name": "_invoice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1483, - "src": "13163:6:1", + "referencedDeclaration": 2744, + "src": "13702:8:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" } + }, + "id": 2788, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 2787, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13711: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": "13702: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": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { + "arguments": [ + { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1566, - "name": "balance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1496, - "src": "13133:7:1", + "baseExpression": { + "argumentTypes": null, + "id": 2767, + "name": "_fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2748, + "src": "13633:4:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + "id": 2769, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 2768, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13638: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": "13633:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21601,32 +22894,64 @@ ], "expression": { "argumentTypes": null, - "id": 1564, - "name": "_wei", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1476, - "src": "13107:4:1", + "baseExpression": { + "argumentTypes": null, + "id": 2763, + "name": "_invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2744, + "src": "13617:8:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2765, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 2764, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13626: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": "13617:11:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1565, + "id": 2766, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "mul", + "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 6795, - "src": "13107:25:1", + "referencedDeclaration": 9577, + "src": "13617: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": 1567, + "id": 2770, "isConstant": false, "isLValue": false, "isPure": false, @@ -21634,27 +22959,64 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13107:34:1", + "src": "13617:24:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2758, + "name": "fund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1283, + "src": "13591:4:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1241", + "typeString": "contract IW12Fund" + } + }, + "id": 2761, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "recordPurchase", + "nodeType": "MemberAccess", + "referencedDeclaration": 1240, + "src": "13591: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": 1568, + "id": 2762, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "div", + "memberName": "value", "nodeType": "MemberAccess", - "referencedDeclaration": 6809, - "src": "13107:55:1", + "referencedDeclaration": null, + "src": "13591:25: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)" + "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": 1570, + "id": 2771, "isConstant": false, "isLValue": false, "isPure": false, @@ -21662,145 +23024,29 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13107:63:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13097:73:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1572, - "nodeType": "ExpressionStatement", - "src": "13097:73:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1577, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1573, - "name": "change", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1487, - "src": "13184:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1576, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1574, - "name": "_wei", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1476, - "src": "13193:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 1575, - "name": "weiCost", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1485, - "src": "13200:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13193:14:1", + "src": "13591:51:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "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" } }, - "src": "13184:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1578, - "nodeType": "ExpressionStatement", - "src": "13184:23:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1581, + "id": 2789, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1579, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1483, - "src": "13221:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1580, - "name": "balance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1496, - "src": "13230:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13221:16:1", + "names": [], + "nodeType": "FunctionCall", + "src": "13591:123:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 1582, + "id": 2790, "nodeType": "ExpressionStatement", - "src": "13221:16:1" + "src": "13591:123:5" } ] } @@ -21808,38 +23054,65 @@ ] }, "documentation": null, - "id": 1586, + "id": 2839, "implemented": true, "isConstructor": false, - "isDeclaredConst": true, + "isDeclaredConst": false, "modifiers": [], - "name": "_purchaseOrder", + "name": "_recordPurchase", "nodeType": "FunctionDefinition", "parameters": { - "id": 1481, + "id": 2751, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1476, - "name": "_wei", + "id": 2744, + "name": "_invoice", "nodeType": "VariableDeclaration", - "scope": 1586, - "src": "12484:9:1", + "scope": 2839, + "src": "13463:16:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5]" }, "typeName": { - "id": 1475, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "12484:4:1", + "baseType": { + "id": 2741, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "13463:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2743, + "length": { + "argumentTypes": null, + "hexValue": "35", + "id": 2742, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13468:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "5" + }, + "nodeType": "ArrayTypeName", + "src": "13463:7:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr", + "typeString": "uint256[5]" } }, "value": null, @@ -21847,25 +23120,52 @@ }, { "constant": false, - "id": 1478, - "name": "discount", + "id": 2748, + "name": "_fee", "nodeType": "VariableDeclaration", - "scope": 1586, - "src": "12495:13:1", + "scope": 2839, + "src": "13481:12:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2]" }, "typeName": { - "id": 1477, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "12495:4:1", + "baseType": { + "id": 2745, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "13481:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2747, + "length": { + "argumentTypes": null, + "hexValue": "32", + "id": 2746, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13486:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "13481:7:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" } }, "value": null, @@ -21873,180 +23173,75 @@ }, { "constant": false, - "id": 1480, - "name": "volumeBonus", + "id": 2750, + "name": "method", "nodeType": "VariableDeclaration", - "scope": 1586, - "src": "12510:16:1", + "scope": 2839, + "src": "13495:14:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" }, "typeName": { - "id": 1479, - "name": "uint", + "id": 2749, + "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "12510:4:1", + "src": "13495:7:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, "value": null, "visibility": "internal" } ], - "src": "12483:44:1" + "src": "13462:48:5" }, "payable": false, "returnParameters": { - "id": 1490, + "id": 2752, "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1483, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 1586, - "src": "12559:11:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1482, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "12559:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1485, - "name": "weiCost", - "nodeType": "VariableDeclaration", - "scope": 1586, - "src": "12572:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1484, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "12572:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1487, - "name": "change", - "nodeType": "VariableDeclaration", - "scope": 1586, - "src": "12586:11:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1486, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "12586:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1489, - "name": "actualPrice", - "nodeType": "VariableDeclaration", - "scope": 1586, - "src": "12599:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1488, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "12599:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12558:58:1" + "parameters": [], + "src": "13520:0:5" }, - "scope": 1809, - "src": "12460:794:1", - "stateMutability": "view", + "scope": 3168, + "src": "13438:524:5", + "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 1593, + "id": 2846, "nodeType": "Block", - "src": "13311:29:1", + "src": "14020:29:5", "statements": [ { "expression": { "argumentTypes": null, - "id": 1591, + "id": 2844, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 123, - "src": "13328:5:1", + "referencedDeclaration": 1279, + "src": "14037:5:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" } }, - "functionReturnParameters": 1590, - "id": 1592, + "functionReturnParameters": 2843, + "id": 2845, "nodeType": "Return", - "src": "13321:12:1" + "src": "14030:12:5" } ] }, "documentation": null, - "id": 1594, + "id": 2847, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -22054,82 +23249,82 @@ "name": "getWToken", "nodeType": "FunctionDefinition", "parameters": { - "id": 1587, + "id": 2840, "nodeType": "ParameterList", "parameters": [], - "src": "13278:2:1" + "src": "13986:2:5" }, "payable": false, "returnParameters": { - "id": 1590, + "id": 2843, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1589, + "id": 2842, "name": "", "nodeType": "VariableDeclaration", - "scope": 1594, - "src": "13303:6:1", + "scope": 2847, + "src": "14011:7:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" }, "typeName": { "contractScope": null, - "id": 1588, - "name": "WToken", + "id": 2841, + "name": "IWToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5925, - "src": "13303:6:1", + "referencedDeclaration": 7630, + "src": "14011:7:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" } }, "value": null, "visibility": "internal" } ], - "src": "13302:8:1" + "src": "14010:9:5" }, - "scope": 1809, - "src": "13260:80:1", + "scope": 3168, + "src": "13968:81:5", "stateMutability": "view", - "superFunction": 4335, + "superFunction": 1112, "visibility": "external" }, { "body": { - "id": 1601, + "id": 2854, "nodeType": "Block", - "src": "13397:28:1", + "src": "14106:28:5", "statements": [ { "expression": { "argumentTypes": null, - "id": 1599, + "id": 2852, "name": "fund", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 137, - "src": "13414:4:1", + "referencedDeclaration": 1283, + "src": "14123:4:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", + "typeIdentifier": "t_contract$_IW12Fund_$1241", "typeString": "contract IW12Fund" } }, - "functionReturnParameters": 1598, - "id": 1600, + "functionReturnParameters": 2851, + "id": 2853, "nodeType": "Return", - "src": "13407:11:1" + "src": "14116:11:5" } ] }, "documentation": null, - "id": 1602, + "id": 2855, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -22137,38 +23332,38 @@ "name": "getFund", "nodeType": "FunctionDefinition", "parameters": { - "id": 1595, + "id": 2848, "nodeType": "ParameterList", "parameters": [], - "src": "13362:2:1" + "src": "14071:2:5" }, "payable": false, "returnParameters": { - "id": 1598, + "id": 2851, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1597, + "id": 2850, "name": "", "nodeType": "VariableDeclaration", - "scope": 1602, - "src": "13387:8:1", + "scope": 2855, + "src": "14096:8:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", + "typeIdentifier": "t_contract$_IW12Fund_$1241", "typeString": "contract IW12Fund" }, "typeName": { "contractScope": null, - "id": 1596, + "id": 2849, "name": "IW12Fund", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4484, - "src": "13387:8:1", + "referencedDeclaration": 1241, + "src": "14096:8:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", + "typeIdentifier": "t_contract$_IW12Fund_$1241", "typeString": "contract IW12Fund" } }, @@ -22176,44 +23371,328 @@ "visibility": "internal" } ], - "src": "13386:10:1" + "src": "14095:10:5" }, - "scope": 1809, - "src": "13346:79:1", + "scope": 3168, + "src": "14055:79:5", "stateMutability": "view", "superFunction": null, "visibility": "external" }, { "body": { - "id": 1658, + "id": 2865, "nodeType": "Block", - "src": "13503:380:1", + "src": "14206:45:5", "statements": [ { - "assignments": [ - 1610, - 1612 - ], - "declarations": [ - { - "constant": false, - "id": 1610, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1659, - "src": "13514:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 2861, + "name": "paymentMethods", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1297, + "src": "14223:14:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Methods_$4851_storage", + "typeString": "struct PaymentMethods.Methods storage ref" + } + }, + "id": 2862, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "list", + "nodeType": "MemberAccess", + "referencedDeclaration": 4957, + "src": "14223:19:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Methods_$4851_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$bound_to$_t_struct$_Methods_$4851_storage_ptr_$", + "typeString": "function (struct PaymentMethods.Methods storage pointer) view returns (bytes32[] memory)" + } + }, + "id": 2863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14223:21:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[] memory" + } + }, + "functionReturnParameters": 2860, + "id": 2864, + "nodeType": "Return", + "src": "14216:28:5" + } + ] + }, + "documentation": null, + "id": 2866, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getPaymentMethodsList", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2856, + "nodeType": "ParameterList", + "parameters": [], + "src": "14170:2:5" + }, + "payable": false, + "returnParameters": { + "id": 2860, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2859, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2866, + "src": "14195:9:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 2857, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "14195:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 2858, + "length": null, + "nodeType": "ArrayTypeName", + "src": "14195:9:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14194:11:5" + }, + "scope": 3168, + "src": "14140:111:5", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 2878, + "nodeType": "Block", + "src": "14335:57:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2875, + "name": "_method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2868, + "src": "14377:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 2873, + "name": "paymentMethods", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1297, + "src": "14352:14:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Methods_$4851_storage", + "typeString": "struct PaymentMethods.Methods storage ref" + } + }, + "id": 2874, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isAllowed", + "nodeType": "MemberAccess", + "referencedDeclaration": 4945, + "src": "14352:24:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Methods_$4851_storage_ptr_$_t_bytes32_$returns$_t_bool_$bound_to$_t_struct$_Methods_$4851_storage_ptr_$", + "typeString": "function (struct PaymentMethods.Methods storage pointer,bytes32) view returns (bool)" + } + }, + "id": 2876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14352:33:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2872, + "id": 2877, + "nodeType": "Return", + "src": "14345:40:5" + } + ] + }, + "documentation": null, + "id": 2879, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isPaymentMethodAllowed", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2869, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2868, + "name": "_method", + "nodeType": "VariableDeclaration", + "scope": 2879, + "src": "14289:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2867, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "14289:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14288:17:5" + }, + "payable": false, + "returnParameters": { + "id": 2872, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2871, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2879, + "src": "14329:4:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2870, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "14329:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14328:6:5" + }, + "scope": 3168, + "src": "14257:135:5", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 2970, + "nodeType": "Block", + "src": "14477:765:5", + "statements": [ + { + "assignments": [ + 2891, + 2893 + ], + "declarations": [ + { + "constant": false, + "id": 2891, + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2971, + "src": "14488:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 1609, + "id": 2890, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "13514:4:1", + "src": "14488:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -22224,11 +23703,11 @@ }, { "constant": false, - "id": 1612, + "id": 2893, "name": "found", "nodeType": "VariableDeclaration", - "scope": 1659, - "src": "13526:10:1", + "scope": 2971, + "src": "14500:10:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -22236,10 +23715,10 @@ "typeString": "bool" }, "typeName": { - "id": 1611, + "id": 2892, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "13526:4:1", + "src": "14500:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -22249,24 +23728,24 @@ "visibility": "internal" } ], - "id": 1615, + "id": 2896, "initialValue": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 1613, + "id": 2894, "name": "getCurrentStageIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1705, - "src": "13540:20:1", + "referencedDeclaration": 3071, + "src": "14514:20:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_bool_$", "typeString": "function () view returns (uint256,bool)" } }, - "id": 1614, + "id": 2895, "isConstant": false, "isLValue": false, "isPure": false, @@ -22274,19 +23753,19 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13540:22:1", + "src": "14514:22:5", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", "typeString": "tuple(uint256,bool)" } }, "nodeType": "VariableDeclarationStatement", - "src": "13513:49:1" + "src": "14487:49:5" }, { "condition": { "argumentTypes": null, - "id": 1617, + "id": 2898, "isConstant": false, "isLValue": false, "isPure": false, @@ -22294,15 +23773,15 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "13577:6:1", + "src": "14551:6:5", "subExpression": { "argumentTypes": null, - "id": 1616, + "id": 2897, "name": "found", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1612, - "src": "13578:5:1", + "referencedDeclaration": 2893, + "src": "14552:5:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -22314,644 +23793,436 @@ } }, "falseBody": null, - "id": 1620, + "id": 2900, "nodeType": "IfStatement", - "src": "13573:20:1", + "src": "14547:19:5", "trueBody": { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1618, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13592:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 1608, - "id": 1619, + "expression": null, + "functionReturnParameters": 2889, + "id": 2899, "nodeType": "Return", - "src": "13585:8:1" + "src": "14559:7:5" } }, { - "assignments": [ - 1622 - ], - "declarations": [ - { - "constant": false, - "id": 1622, - "name": "stage", - "nodeType": "VariableDeclaration", - "scope": 1659, - "src": "13604:19:1", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$108_storage_ptr", - "typeString": "struct W12Crowdsale.Stage" - }, - "typeName": { - "contractScope": null, - "id": 1621, - "name": "Stage", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 108, - "src": "13604:5:1", + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 2905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 2901, + "name": "PurchaseProcessing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5854, + "src": "14580:18:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$5854_$", + "typeString": "type(library PurchaseProcessing)" + } + }, + "id": 2902, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "METHOD_ETH", + "nodeType": "MemberAccess", + "referencedDeclaration": 5192, + "src": "14580:29:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$108_storage_ptr", - "typeString": "struct W12Crowdsale.Stage" + "typeIdentifier": "t_function_internal_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" } }, - "value": null, - "visibility": "internal" - } - ], - "id": 1626, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1623, - "name": "stages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "13626:6:1", + "id": 2903, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14580:31:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$108_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, - "id": 1625, - "indexExpression": { + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { "argumentTypes": null, - "id": 1624, - "name": "index", + "id": 2904, + "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1610, - "src": "13633:5:1", + "referencedDeclaration": 2881, + "src": "14615:6:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13626:13:1", + "src": "14580:41:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$108_storage", - "typeString": "struct W12Crowdsale.Stage storage ref" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "nodeType": "VariableDeclarationStatement", - "src": "13604:35:1" - }, - { - "body": { - "id": 1656, + "falseBody": null, + "id": 2918, + "nodeType": "IfStatement", + "src": "14576:159:5", + "trueBody": { + "id": 2917, "nodeType": "Block", - "src": "13706:171:1", + "src": "14623:112:5", "statements": [ { "condition": { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" }, - "id": 1644, + "id": 2913, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1639, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1604, - "src": "13724:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2908, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2881, + "src": "14663:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], "expression": { "argumentTypes": null, - "id": 1640, - "name": "stage", + "id": 2906, + "name": "rates", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1622, - "src": "13733:5:1", + "referencedDeclaration": 1285, + "src": "14641:5:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$108_storage_ptr", - "typeString": "struct W12Crowdsale.Stage storage pointer" + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" } }, - "id": 1641, + "id": 2907, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "volumeBoundaries", + "memberName": "getTokenAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 104, - "src": "13733:22:1", + "referencedDeclaration": 6985, + "src": "14641:21:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view external returns (address)" } }, - "id": 1643, - "indexExpression": { - "argumentTypes": null, - "id": 1642, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1628, - "src": "13756:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "id": 2909, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14641:29:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 2911, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14682: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": 2910, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14674:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, + "id": 2912, "isConstant": false, - "isLValue": true, - "isPure": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13733:25:1", + "names": [], + "nodeType": "FunctionCall", + "src": "14674:10:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "src": "13724:34:1", + "src": "14641:43:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "falseBody": { - "id": 1654, - "nodeType": "Block", - "src": "13829:38:1", - "statements": [ - { - "id": 1653, - "nodeType": "Break", - "src": "13847:5:1" - } - ] - }, - "id": 1655, + "falseBody": null, + "id": 2916, "nodeType": "IfStatement", - "src": "13720:147:1", + "src": "14637:88:5", "trueBody": { - "id": 1652, + "id": 2915, "nodeType": "Block", - "src": "13760:63:1", + "src": "14686:39:5", "statements": [ { - "expression": { - "argumentTypes": null, - "id": 1650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1645, - "name": "bonus", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1607, - "src": "13778:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1646, - "name": "stage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1622, - "src": "13786:5:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$108_storage_ptr", - "typeString": "struct W12Crowdsale.Stage storage pointer" - } - }, - "id": 1647, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "volumeBonuses", - "nodeType": "MemberAccess", - "referencedDeclaration": 107, - "src": "13786:19:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1649, - "indexExpression": { - "argumentTypes": null, - "id": 1648, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1628, - "src": "13806:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13786:22:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13778:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1651, - "nodeType": "ExpressionStatement", - "src": "13778:30:1" + "expression": null, + "functionReturnParameters": 2889, + "id": 2914, + "nodeType": "Return", + "src": "14704:7:5" } ] } } ] - }, - "condition": { + } + }, + { + "expression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1635, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1631, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1628, - "src": "13666:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { + "arguments": [ + { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1632, - "name": "stage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1622, - "src": "13670:5:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$108_storage_ptr", - "typeString": "struct W12Crowdsale.Stage storage pointer" - } - }, - "id": 1633, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "volumeBoundaries", - "nodeType": "MemberAccess", - "referencedDeclaration": 104, - "src": "13670:22:1", + "id": 2921, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2881, + "src": "14792:6:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, - "id": 1634, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13670:29:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13666:33:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1657, - "initializationExpression": { - "assignments": [ - 1628 - ], - "declarations": [ { - "constant": false, - "id": 1628, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 1659, - "src": "13654:6:1", - "stateVariable": false, - "storageLocation": "default", + "argumentTypes": null, + "id": 2922, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2883, + "src": "14812:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" - }, - "typeName": { - "id": 1627, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "13654:4:1", + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2923, + "name": "stages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1300, + "src": "14832:6:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", + "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" + } + }, + "id": 2925, + "indexExpression": { + "argumentTypes": null, + "id": 2924, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2891, + "src": "14839:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14832:13:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_struct$_Stage_$1318_storage", + "typeString": "struct W12Crowdsale.Stage storage ref" } }, - "value": null, - "visibility": "internal" - } - ], - "id": 1630, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 1629, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13663:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "13654:10:1" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 1637, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "13701:3:1", - "subExpression": { - "argumentTypes": null, - "id": 1636, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1628, - "src": "13701:1:1", + "id": 2926, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "discount", + "nodeType": "MemberAccess", + "referencedDeclaration": 1309, + "src": "14832:22:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1638, - "nodeType": "ExpressionStatement", - "src": "13701:3:1" - }, - "nodeType": "ForStatement", - "src": "13650:227:1" - } - ] - }, - "documentation": null, - "id": 1659, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getSaleVolumeBonus", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1605, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1604, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 1659, - "src": "13459:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1603, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "13459:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13458:12:1" - }, - "payable": false, - "returnParameters": { - "id": 1608, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1607, - "name": "bonus", - "nodeType": "VariableDeclaration", - "scope": 1659, - "src": "13491:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1606, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "13491:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13490:12:1" - }, - "scope": 1809, - "src": "13431:452:1", - "stateMutability": "view", - "superFunction": 4404, - "visibility": "public" - }, - { - "body": { - "id": 1704, - "nodeType": "Block", - "src": "13966:254:1", - "statements": [ - { - "body": { - "id": 1698, - "nodeType": "Block", - "src": "14016:170:1", - "statements": [ { - "assignments": [ - 1678 - ], - "declarations": [ - { - "constant": false, - "id": 1678, - "name": "stage", - "nodeType": "VariableDeclaration", - "scope": 1705, - "src": "14030:19:1", - "stateVariable": false, - "storageLocation": "storage", + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2927, + "name": "stages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1300, + "src": "14868:6:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$108_storage_ptr", - "typeString": "struct W12Crowdsale.Stage" - }, - "typeName": { - "contractScope": null, - "id": 1677, - "name": "Stage", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 108, - "src": "14030:5:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$108_storage_ptr", - "typeString": "struct W12Crowdsale.Stage" - } - }, - "value": null, - "visibility": "internal" + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", + "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" + } + }, + "id": 2929, + "indexExpression": { + "argumentTypes": null, + "id": 2928, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2891, + "src": "14875:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14868:13:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Stage_$1318_storage", + "typeString": "struct W12Crowdsale.Stage storage ref" } - ], - "id": 1682, - "initialValue": { + }, + "id": 2930, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "volumeBoundaries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1314, + "src": "14868:30:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + { + "argumentTypes": null, + "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1679, + "id": 2931, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "14052:6:1", + "referencedDeclaration": 1300, + "src": "14912:6:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$108_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" } }, - "id": 1681, + "id": 2933, "indexExpression": { "argumentTypes": null, - "id": 1680, - "name": "i", + "id": 2932, + "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1667, - "src": "14059:1:1", + "referencedDeclaration": 2891, + "src": "14919:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -22962,465 +24233,710 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "14052:9:1", + "src": "14912:13:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$108_storage", + "typeIdentifier": "t_struct$_Stage_$1318_storage", "typeString": "struct W12Crowdsale.Stage storage ref" } }, - "nodeType": "VariableDeclarationStatement", - "src": "14030:31:1" + "id": 2934, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "volumeBonuses", + "nodeType": "MemberAccess", + "referencedDeclaration": 1317, + "src": "14912:27:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } }, { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2937, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2881, + "src": "14963:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 2935, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1285, + "src": "14953:5:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } }, - "id": 1691, + "id": 2936, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftExpression": { + "memberName": "get", + "nodeType": "MemberAccess", + "referencedDeclaration": 6999, + "src": "14953:9:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_uint256_$", + "typeString": "function (bytes32) view external returns (uint256)" + } + }, + "id": 2938, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14953:17:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2939, + "name": "price", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1287, + "src": "14984:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1686, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 1683, - "name": "stage", + "id": 2941, + "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1678, - "src": "14080:5:1", + "referencedDeclaration": 1279, + "src": "15008:5:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$108_storage_ptr", - "typeString": "struct W12Crowdsale.Stage storage pointer" + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" } }, - "id": 1684, + "id": 2942, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "startDate", + "memberName": "decimals", "nodeType": "MemberAccess", - "referencedDeclaration": 95, - "src": "14080:15:1", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 1685, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7296, - "src": "14099:3:1", + "referencedDeclaration": 9699, + "src": "15008:14:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", + "typeString": "function () view external returns (uint8)" } }, - "src": "14080:22:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1690, + "id": 2943, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, + "names": [], + "nodeType": "FunctionCall", + "src": "15008:16:5", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 2940, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15003:4:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint" + }, + "id": 2944, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15003:22:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 2949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 1687, - "name": "stage", + "id": 2945, + "name": "PurchaseProcessing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1678, - "src": "14106:5:1", + "referencedDeclaration": 5854, + "src": "15039:18:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$108_storage_ptr", - "typeString": "struct W12Crowdsale.Stage storage pointer" + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$5854_$", + "typeString": "type(library PurchaseProcessing)" } }, - "id": 1688, + "id": 2946, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "endDate", + "memberName": "METHOD_ETH", "nodeType": "MemberAccess", - "referencedDeclaration": 97, - "src": "14106:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "id": 1689, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7296, - "src": "14122:3:1", + "referencedDeclaration": 5192, + "src": "15039:29:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_internal_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" } }, - "src": "14106:19:1", + "id": 2947, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15039:31:5", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, - "src": "14080:45:1", + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 2948, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2881, + "src": "15074:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "15039:41:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "falseBody": null, - "id": 1697, - "nodeType": "IfStatement", - "src": "14076:100:1", - "trueBody": { - "id": 1696, - "nodeType": "Block", - "src": "14127:49:1", - "statements": [ + "falseExpression": { + "argumentTypes": null, + "arguments": [ { + "argumentTypes": null, + "arguments": [], "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 1692, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1667, - "src": "14153:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "74727565", - "id": 1693, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14156:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - } - ], - "id": 1694, - "isConstant": false, - "isInlineArray": false, + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2955, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2881, + "src": "15161:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 2953, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1285, + "src": "15139:5:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "id": 2954, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getTokenAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 6985, + "src": "15139:21:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view external returns (address)" + } + }, + "id": 2956, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15139:29:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2952, + "name": "DetailedERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9722, + "src": "15125:13:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DetailedERC20_$9722_$", + "typeString": "type(contract DetailedERC20)" + } + }, + "id": 2957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15125:44:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DetailedERC20_$9722", + "typeString": "contract DetailedERC20" + } + }, + "id": 2958, + "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "14152:9:1", + "memberName": "decimals", + "nodeType": "MemberAccess", + "referencedDeclaration": 9699, + "src": "15125:53:5", "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", - "typeString": "tuple(uint256,bool)" + "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", + "typeString": "function () view external returns (uint8)" } }, - "functionReturnParameters": 1665, - "id": 1695, - "nodeType": "Return", - "src": "14145:16:1" + "id": 2959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15125:55:5", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } } - ] - } - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1673, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1670, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1667, - "src": "13992:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1671, - "name": "stages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "13996:6:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$108_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" - } - }, - "id": 1672, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13996:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13992:17:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1699, - "initializationExpression": { - "assignments": [ - 1667 - ], - "declarations": [ - { - "constant": false, - "id": 1667, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 1705, - "src": "13980:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1666, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "13980:4:1", + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 2951, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15120:4:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint" + }, + "id": 2960, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15120:61:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, - "visibility": "internal" - } - ], - "id": 1669, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 1668, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13989:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "13980:10:1" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 1675, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "14011:3:1", - "subExpression": { - "argumentTypes": null, - "id": 1674, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1667, - "src": "14011:1:1", + "id": 2961, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "15039:142:5", + "trueExpression": { + "argumentTypes": null, + "hexValue": "3138", + "id": 2950, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15099:2:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1676, - "nodeType": "ExpressionStatement", - "src": "14011:3:1" - }, - "nodeType": "ForStatement", - "src": "13976:210:1" - }, - { - "expression": { - "argumentTypes": null, - "components": [ { "argumentTypes": null, - "hexValue": "30", - "id": 1700, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2965, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10113, + "src": "15219:4:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_W12Crowdsale_$3168", + "typeString": "contract W12Crowdsale" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_W12Crowdsale_$3168", + "typeString": "contract W12Crowdsale" + } + ], + "id": 2964, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15211:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2966, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15211:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 2962, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1279, + "src": "15195:5:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" + } + }, + "id": 2963, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 9779, + "src": "15195:15:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 2967, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "number", + "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "Literal", - "src": "14204:1:1", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "15195:30:5", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" }, - "value": "0" - }, - { + { + "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, - "hexValue": "66616c7365", - "id": 1701, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14207:5:1", - "subdenomination": null, + "id": 2919, + "name": "PurchaseProcessing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5854, + "src": "14752:18:5", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$5854_$", + "typeString": "type(library PurchaseProcessing)" + } + }, + "id": 2920, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "invoice", + "nodeType": "MemberAccess", + "referencedDeclaration": 5439, + "src": "14752: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": 1702, + }, + "id": 2968, "isConstant": false, - "isInlineArray": false, "isLValue": false, - "isPure": true, + "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "14203:10:1", + "names": [], + "nodeType": "FunctionCall", + "src": "14752:483:5", "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_rational_0_by_1_$_t_bool_$", - "typeString": "tuple(int_const 0,bool)" + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" } }, - "functionReturnParameters": 1665, - "id": 1703, + "functionReturnParameters": 2889, + "id": 2969, "nodeType": "Return", - "src": "14196:17:1" + "src": "14745:490:5" } ] }, "documentation": null, - "id": 1705, + "id": 2971, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], - "name": "getCurrentStageIndex", + "name": "getInvoice", "nodeType": "FunctionDefinition", "parameters": { - "id": 1660, - "nodeType": "ParameterList", - "parameters": [], - "src": "13918:2:1" - }, - "payable": false, - "returnParameters": { - "id": 1665, + "id": 2884, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1662, - "name": "index", + "id": 2881, + "name": "method", + "nodeType": "VariableDeclaration", + "scope": 2971, + "src": "14418:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2880, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "14418:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2883, + "name": "amount", "nodeType": "VariableDeclaration", - "scope": 1705, - "src": "13942:10:1", + "scope": 2971, + "src": "14434:11:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23428,10 +24944,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1661, + "id": 2882, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "13942:4:1", + "src": "14434:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -23439,47 +24955,82 @@ }, "value": null, "visibility": "internal" - }, + } + ], + "src": "14417:29:5" + }, + "payable": false, + "returnParameters": { + "id": 2889, + "nodeType": "ParameterList", + "parameters": [ { "constant": false, - "id": 1664, - "name": "found", + "id": 2888, + "name": "", "nodeType": "VariableDeclaration", - "scope": 1705, - "src": "13954:10:1", + "scope": 2971, + "src": "14468:7:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5]" }, "typeName": { - "id": 1663, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "13954:4:1", + "baseType": { + "id": 2885, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "14468:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2887, + "length": { + "argumentTypes": null, + "hexValue": "35", + "id": 2886, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14473:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "5" + }, + "nodeType": "ArrayTypeName", + "src": "14468:7:5", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr", + "typeString": "uint256[5]" } }, "value": null, "visibility": "internal" } ], - "src": "13941:24:1" + "src": "14467:9:5" }, - "scope": 1809, - "src": "13889:331:1", + "scope": 3168, + "src": "14398:844:5", "stateMutability": "view", - "superFunction": 4397, + "superFunction": null, "visibility": "public" }, { "body": { - "id": 1737, + "id": 2990, "nodeType": "Block", - "src": "14277:189:1", + "src": "15322:99:5", "statements": [ { "expression": { @@ -23487,57 +25038,104 @@ "arguments": [ { "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1711, - "name": "isEnded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1759, - "src": "14295:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", - "typeString": "function () view returns (bool)" - } - }, - "id": 1712, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14295:9:1", + "id": 2984, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2973, + "src": "15362:11:5", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2985, + "name": "cost", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2975, + "src": "15375:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2986, + "name": "serviceFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1289, + "src": "15381:10:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2987, + "name": "WTokenSaleFeePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1291, + "src": "15393:20:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1710, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 7297, - 7298 - ], - "referencedDeclaration": 7297, - "src": "14287:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2982, + "name": "PurchaseProcessing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5854, + "src": "15339:18:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$5854_$", + "typeString": "type(library PurchaseProcessing)" + } + }, + "id": 2983, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "fee", + "nodeType": "MemberAccess", + "referencedDeclaration": 5481, + "src": "15339: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": 1713, + "id": 2988, "isConstant": false, "isLValue": false, "isPure": false, @@ -23545,28 +25143,172 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "14287:18:1", + "src": "15339:75:5", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" } }, - "id": 1714, - "nodeType": "ExpressionStatement", - "src": "14287:18:1" + "functionReturnParameters": 2981, + "id": 2989, + "nodeType": "Return", + "src": "15332:82:5" + } + ] + }, + "documentation": null, + "id": 2991, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getFee", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2976, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2973, + "name": "tokenAmount", + "nodeType": "VariableDeclaration", + "scope": 2991, + "src": "15264:16:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2972, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "15264:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" }, + { + "constant": false, + "id": 2975, + "name": "cost", + "nodeType": "VariableDeclaration", + "scope": 2991, + "src": "15282:9:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2974, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "15282:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15263:29:5" + }, + "payable": false, + "returnParameters": { + "id": 2981, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2980, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2991, + "src": "15313:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2]" + }, + "typeName": { + "baseType": { + "id": 2977, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "15313:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2979, + "length": { + "argumentTypes": null, + "hexValue": "32", + "id": 2978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15318:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "15313:7:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15312:9:5" + }, + "scope": 3168, + "src": "15248:173:5", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3024, + "nodeType": "Block", + "src": "15499:238:5", + "statements": [ { "assignments": [ - 1716 + 2999, + 3001 ], "declarations": [ { "constant": false, - "id": 1716, - "name": "amount", + "id": 2999, + "name": "index", "nodeType": "VariableDeclaration", - "scope": 1738, - "src": "14316:11:1", + "scope": 3025, + "src": "15510:10:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23574,10 +25316,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1715, + "id": 2998, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "14316:4:1", + "src": "15510:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -23585,99 +25327,52 @@ }, "value": null, "visibility": "internal" + }, + { + "constant": false, + "id": 3001, + "name": "found", + "nodeType": "VariableDeclaration", + "scope": 3025, + "src": "15522:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3000, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "15522:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" } ], - "id": 1723, + "id": 3004, "initialValue": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1720, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7333, - "src": "14354:4:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_W12Crowdsale_$1809", - "typeString": "contract W12Crowdsale" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_W12Crowdsale_$1809", - "typeString": "contract W12Crowdsale" - } - ], - "id": 1719, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14346:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1721, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14346:13:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], + "arguments": [], "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1717, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 123, - "src": "14330:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" - } - }, - "id": 1718, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 5276, - "src": "14330:15:1", + "argumentTypes": [], + "id": 3002, + "name": "getCurrentStageIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3071, + "src": "15536:20:5", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_bool_$", + "typeString": "function () view returns (uint256,bool)" } }, - "id": 1722, + "id": 3003, "isConstant": false, "isLValue": false, "isPure": false, @@ -23685,195 +25380,254 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "14330:30:1", + "src": "15536:22:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", + "typeString": "tuple(uint256,bool)" } }, "nodeType": "VariableDeclarationStatement", - "src": "14316:44:1" + "src": "15509:49:5" }, { - "expression": { + "condition": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1727, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "14394:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1728, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1716, - "src": "14401:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1725, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 123, - "src": "14379:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" - } - }, - "id": 1726, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 5219, - "src": "14379:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 1729, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14379:29:1", + "id": 3006, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "15573:6:5", + "subExpression": { + "argumentTypes": null, + "id": 3005, + "name": "found", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3001, + "src": "15574:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 3008, + "nodeType": "IfStatement", + "src": "15569:19:5", + "trueBody": { + "expression": null, + "functionReturnParameters": 2997, + "id": 3007, + "nodeType": "Return", + "src": "15581:7:5" + } + }, + { + "assignments": [ + 3010 + ], + "declarations": [ + { + "constant": false, + "id": 3010, + "name": "stage", + "nodeType": "VariableDeclaration", + "scope": 3025, + "src": "15598:19:5", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Stage_$1318_storage_ptr", + "typeString": "struct W12Crowdsale.Stage" + }, + "typeName": { + "contractScope": null, + "id": 3009, + "name": "Stage", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1318, + "src": "15598:5:5", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_struct$_Stage_$1318_storage_ptr", + "typeString": "struct W12Crowdsale.Stage" } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3014, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3011, + "name": "stages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1300, + "src": "15620:6:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", + "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1724, - "name": "require", + }, + "id": 3013, + "indexExpression": { + "argumentTypes": null, + "id": 3012, + "name": "index", "nodeType": "Identifier", - "overloadedDeclarations": [ - 7297, - 7298 - ], - "referencedDeclaration": 7297, - "src": "14371:7:1", + "overloadedDeclarations": [], + "referencedDeclaration": 2999, + "src": "15627:5:5", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 1730, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14371:38:1", + "nodeType": "IndexAccess", + "src": "15620:13:5", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_struct$_Stage_$1318_storage", + "typeString": "struct W12Crowdsale.Stage storage ref" } }, - "id": 1731, - "nodeType": "ExpressionStatement", - "src": "14371:38:1" + "nodeType": "VariableDeclarationStatement", + "src": "15598:35:5" }, { - "eventCall": { + "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1733, - "name": "owner", + "id": 3017, + "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "14445:5:1", + "referencedDeclaration": 2993, + "src": "15679:5:5", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, { "argumentTypes": null, - "id": 1734, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1716, - "src": "14452:6:1", + "expression": { + "argumentTypes": null, + "id": 3018, + "name": "stage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3010, + "src": "15686:5:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Stage_$1318_storage_ptr", + "typeString": "struct W12Crowdsale.Stage storage pointer" + } + }, + "id": 3019, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "volumeBoundaries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1314, + "src": "15686:22:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3020, + "name": "stage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3010, + "src": "15710:5:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Stage_$1318_storage_ptr", + "typeString": "struct W12Crowdsale.Stage storage pointer" + } + }, + "id": 3021, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "volumeBonuses", + "nodeType": "MemberAccess", + "referencedDeclaration": 1317, + "src": "15710:19:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" } } ], "expression": { "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, { "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": 1732, - "name": "UnsoldTokenReturned", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "14425:19:1", + "expression": { + "argumentTypes": null, + "id": 3015, + "name": "PurchaseProcessing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5854, + "src": "15651:18:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$5854_$", + "typeString": "type(library PurchaseProcessing)" + } + }, + "id": 3016, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getBonus", + "nodeType": "MemberAccess", + "referencedDeclaration": 5853, + "src": "15651:27:5", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" + "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": 1735, + "id": 3022, "isConstant": false, "isLValue": false, "isPure": false, @@ -23881,187 +25635,209 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "14425:34:1", + "src": "15651:79:5", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 1736, - "nodeType": "EmitStatement", - "src": "14420:39:1" + "functionReturnParameters": 2997, + "id": 3023, + "nodeType": "Return", + "src": "15644:86:5" } ] }, "documentation": null, - "id": 1738, + "id": 3025, "implemented": true, "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 1708, - "modifierName": { - "argumentTypes": null, - "id": 1707, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6888, - "src": "14267:9:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "14267:9:1" - } - ], - "name": "claimRemainingTokens", + "isDeclaredConst": true, + "modifiers": [], + "name": "getSaleVolumeBonus", "nodeType": "FunctionDefinition", "parameters": { - "id": 1706, - "nodeType": "ParameterList", - "parameters": [], - "src": "14255:2:1" - }, - "payable": false, - "returnParameters": { - "id": 1709, + "id": 2994, "nodeType": "ParameterList", - "parameters": [], - "src": "14277:0:1" - }, - "scope": 1809, - "src": "14226:240:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" + "parameters": [ + { + "constant": false, + "id": 2993, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 3025, + "src": "15455:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2992, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "15455:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15454:12:5" + }, + "payable": false, + "returnParameters": { + "id": 2997, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2996, + "name": "bonus", + "nodeType": "VariableDeclaration", + "scope": 3025, + "src": "15487:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2995, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "15487:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15486:12:5" + }, + "scope": 3168, + "src": "15427:310:5", + "stateMutability": "view", + "superFunction": 1181, + "visibility": "public" }, { "body": { - "id": 1758, + "id": 3070, "nodeType": "Block", - "src": "14518:85:1", + "src": "15820:254:5", "statements": [ { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1756, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1746, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1743, - "name": "stages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "14535:6:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$108_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" + "body": { + "id": 3064, + "nodeType": "Block", + "src": "15870:170:5", + "statements": [ + { + "assignments": [ + 3044 + ], + "declarations": [ + { + "constant": false, + "id": 3044, + "name": "stage", + "nodeType": "VariableDeclaration", + "scope": 3071, + "src": "15884:19:5", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Stage_$1318_storage_ptr", + "typeString": "struct W12Crowdsale.Stage" + }, + "typeName": { + "contractScope": null, + "id": 3043, + "name": "Stage", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1318, + "src": "15884:5:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Stage_$1318_storage_ptr", + "typeString": "struct W12Crowdsale.Stage" + } + }, + "value": null, + "visibility": "internal" } - }, - "id": 1744, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14535:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1745, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14552:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "14535:18:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1755, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { + ], + "id": 3048, + "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1747, + "id": 3045, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "14557:6:1", + "referencedDeclaration": 1300, + "src": "15906:6:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$108_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" } }, - "id": 1752, + "id": 3047, "indexExpression": { + "argumentTypes": null, + "id": 3046, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3033, + "src": "15913:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15906:9:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Stage_$1318_storage", + "typeString": "struct W12Crowdsale.Stage storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15884:31:5" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3057, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1751, + "id": 3052, "isConstant": false, "isLValue": false, "isPure": false, @@ -24070,142 +25846,455 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1748, - "name": "stages", + "id": 3049, + "name": "stage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "14564:6:1", + "referencedDeclaration": 3044, + "src": "15934:5:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$108_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" + "typeIdentifier": "t_struct$_Stage_$1318_storage_ptr", + "typeString": "struct W12Crowdsale.Stage storage pointer" } }, - "id": 1749, + "id": 3050, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberName": "length", + "memberName": "startDate", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14564:13:1", + "referencedDeclaration": 1305, + "src": "15934:15:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_uint32", + "typeString": "uint32" } }, "nodeType": "BinaryOperation", - "operator": "-", + "operator": "<=", "rightExpression": { "argumentTypes": null, - "hexValue": "31", - "id": 1750, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14580:1:1", - "subdenomination": null, + "id": 3051, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10044, + "src": "15953:3:5", "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - "src": "14564:17:1", + "src": "15934:22:5", "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" + }, + "id": 3056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3053, + "name": "stage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3044, + "src": "15960:5:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Stage_$1318_storage_ptr", + "typeString": "struct W12Crowdsale.Stage storage pointer" + } + }, + "id": 3054, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "endDate", + "nodeType": "MemberAccess", + "referencedDeclaration": 1307, + "src": "15960:13:5", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 3055, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10044, + "src": "15976:3:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15960:19:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14557:25:1", + "src": "15934:45:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$108_storage", - "typeString": "struct W12Crowdsale.Stage storage ref" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 1753, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "endDate", - "nodeType": "MemberAccess", - "referencedDeclaration": 97, - "src": "14557:33:1", + "falseBody": null, + "id": 3063, + "nodeType": "IfStatement", + "src": "15930:100:5", + "trueBody": { + "id": 3062, + "nodeType": "Block", + "src": "15981:49:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 3058, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3033, + "src": "16007:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3059, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16010:4:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + } + ], + "id": 3060, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "16006:9:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", + "typeString": "tuple(uint256,bool)" + } + }, + "functionReturnParameters": 3031, + "id": 3061, + "nodeType": "Return", + "src": "15999:16:5" + } + ] + } + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3039, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3036, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3033, + "src": "15846:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3037, + "name": "stages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1300, + "src": "15850:6:5", "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", + "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" } }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { + "id": 3038, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "15850:13:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15846:17:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3065, + "initializationExpression": { + "assignments": [ + 3033 + ], + "declarations": [ + { + "constant": false, + "id": 3033, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 3071, + "src": "15834:6:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3032, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "15834:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3035, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 3034, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15843:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "15834:10:5" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 3041, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "15865:3:5", + "subExpression": { "argumentTypes": null, - "id": 1754, - "name": "now", + "id": 3040, + "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7296, - "src": "14593:3:1", + "referencedDeclaration": 3033, + "src": "15865:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "14557:39:1", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "src": "14535:61:1", + "id": 3042, + "nodeType": "ExpressionStatement", + "src": "15865:3:5" + }, + "nodeType": "ForStatement", + "src": "15830:210:5" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3066, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16058:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 3067, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16061:5:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + } + ], + "id": 3068, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "16057:10:5", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_tuple$_t_rational_0_by_1_$_t_bool_$", + "typeString": "tuple(int_const 0,bool)" } }, - "functionReturnParameters": 1742, - "id": 1757, + "functionReturnParameters": 3031, + "id": 3069, "nodeType": "Return", - "src": "14528:68:1" + "src": "16050:17:5" } ] }, "documentation": null, - "id": 1759, + "id": 3071, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], - "name": "isEnded", + "name": "getCurrentStageIndex", "nodeType": "FunctionDefinition", "parameters": { - "id": 1739, + "id": 3026, "nodeType": "ParameterList", "parameters": [], - "src": "14488:2:1" + "src": "15772:2:5" }, "payable": false, "returnParameters": { - "id": 1742, + "id": 3031, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1741, - "name": "", + "id": 3028, + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 3071, + "src": "15796:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3027, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "15796:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3030, + "name": "found", "nodeType": "VariableDeclaration", - "scope": 1759, - "src": "14512:4:1", + "scope": 3071, + "src": "15808:10:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24213,10 +26302,10 @@ "typeString": "bool" }, "typeName": { - "id": 1740, + "id": 3029, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "14512:4:1", + "src": "15808:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -24226,72 +26315,217 @@ "visibility": "internal" } ], - "src": "14511:6:1" + "src": "15795:24:5" }, - "scope": 1809, - "src": "14472:131:1", + "scope": 3168, + "src": "15743:331:5", "stateMutability": "view", - "superFunction": 4409, + "superFunction": 1174, "visibility": "public" }, { "body": { - "id": 1771, + "id": 3103, "nodeType": "Block", - "src": "14660:79:1", + "src": "16131:189:5", "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3077, + "name": "isEnded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3125, + "src": "16149:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", + "typeString": "function () view returns (bool)" + } + }, + "id": 3078, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16149:9:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3076, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "16141:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16141:18:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3080, + "nodeType": "ExpressionStatement", + "src": "16141:18:5" + }, { "assignments": [ - null, - 1765 + 3082 ], "declarations": [ - null, { "constant": false, - "id": 1765, - "name": "found", + "id": 3082, + "name": "amount", "nodeType": "VariableDeclaration", - "scope": 1772, - "src": "14673:10:1", + "scope": 3104, + "src": "16170:11:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 1764, - "name": "bool", + "id": 3081, + "name": "uint", "nodeType": "ElementaryTypeName", - "src": "14673:4:1", + "src": "16170:4:5", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], - "id": 1768, + "id": 3089, "initialValue": { "argumentTypes": null, - "arguments": [], + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3086, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10113, + "src": "16208:4:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_W12Crowdsale_$3168", + "typeString": "contract W12Crowdsale" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_W12Crowdsale_$3168", + "typeString": "contract W12Crowdsale" + } + ], + "id": 3085, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16200:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 3087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16200:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], "expression": { - "argumentTypes": [], - "id": 1766, - "name": "getCurrentStageIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1705, - "src": "14687:20:1", + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 3083, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1279, + "src": "16184:5:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" + } + }, + "id": 3084, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 9779, + "src": "16184:15:5", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_bool_$", - "typeString": "function () view returns (uint256,bool)" + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" } }, - "id": 1767, + "id": 3088, "isConstant": false, "isLValue": false, "isPure": false, @@ -24299,114 +26533,195 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "14687:22:1", + "src": "16184:30:5", "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", - "typeString": "tuple(uint256,bool)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "14670:39:1" + "src": "16170:44:5" }, { "expression": { "argumentTypes": null, - "id": 1769, - "name": "found", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1765, - "src": "14727:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 1763, - "id": 1770, - "nodeType": "Return", - "src": "14720:12:1" - } - ] - }, - "documentation": null, - "id": 1772, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "isSaleActive", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1760, - "nodeType": "ParameterList", - "parameters": [], - "src": "14630:2:1" - }, - "payable": false, - "returnParameters": { - "id": 1763, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1762, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1772, - "src": "14654:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1761, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "14654:4:1", + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3093, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9606, + "src": "16248:5:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3094, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3082, + "src": "16255:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 3091, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1279, + "src": "16233:5:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" + } + }, + "id": 3092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 9788, + "src": "16233:14:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 3095, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16233:29:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3090, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "16225:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3096, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16225:38:5", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "value": null, - "visibility": "internal" - } - ], - "src": "14653:6:1" - }, - "scope": 1809, - "src": "14609:130:1", - "stateMutability": "view", - "superFunction": 4414, - "visibility": "public" - }, - { - "body": { - "id": 1778, - "nodeType": "Block", - "src": "14773:28:1", - "statements": [ + "id": 3097, + "nodeType": "ExpressionStatement", + "src": "16225:38:5" + }, { - "expression": { + "eventCall": { "argumentTypes": null, - "arguments": [], + "arguments": [ + { + "argumentTypes": null, + "id": 3099, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9606, + "src": "16299:5:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3100, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3082, + "src": "16306:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], "expression": { - "argumentTypes": [], - "id": 1775, - "name": "buyTokens", + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3098, + "name": "UnsoldTokenReturned", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1474, - "src": "14783:9:1", + "referencedDeclaration": 1355, + "src": "16279:19:5", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" } }, - "id": 1776, + "id": 3101, "isConstant": false, "isLValue": false, "isPure": false, @@ -24414,138 +26729,601 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "14783:11:1", + "src": "16279:34:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1777, - "nodeType": "ExpressionStatement", - "src": "14783:11:1" + "id": 3102, + "nodeType": "EmitStatement", + "src": "16274:39:5" } ] }, "documentation": null, - "id": 1779, + "id": 3104, "implemented": true, "isConstructor": false, "isDeclaredConst": false, - "modifiers": [], - "name": "", + "modifiers": [ + { + "arguments": null, + "id": 3074, + "modifierName": { + "argumentTypes": null, + "id": 3073, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9636, + "src": "16121:9:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "16121:9:5" + } + ], + "name": "claimRemainingTokens", "nodeType": "FunctionDefinition", "parameters": { - "id": 1773, + "id": 3072, "nodeType": "ParameterList", "parameters": [], - "src": "14753:2:1" + "src": "16109:2:5" }, - "payable": true, + "payable": false, "returnParameters": { - "id": 1774, + "id": 3075, "nodeType": "ParameterList", "parameters": [], - "src": "14773:0:1" + "src": "16131:0:5" }, - "scope": 1809, - "src": "14745:56:1", - "stateMutability": "payable", - "superFunction": 4417, + "scope": 3168, + "src": "16080:240:5", + "stateMutability": "nonpayable", + "superFunction": null, "visibility": "external" }, { "body": { - "id": 1797, + "id": 3124, "nodeType": "Block", - "src": "14834:110:1", + "src": "16372:85:5", "statements": [ { - "condition": { + "expression": { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" }, - "id": 1784, + "id": 3122, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1781, - "name": "stages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "14848:6:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$108_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" - } + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - "id": 1782, + "id": 3112, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14848:13:1", + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3109, + "name": "stages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1300, + "src": "16389:6:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", + "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" + } + }, + "id": 3110, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "16389:13:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3111, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16406:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "16389:18:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, "nodeType": "BinaryOperation", - "operator": ">", + "operator": "||", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 1783, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3121, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "number", + "isPure": false, "lValueRequested": false, - "nodeType": "Literal", - "src": "14864:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "14848:17:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1795, - "nodeType": "IfStatement", - "src": "14844:82:1", - "trueBody": { - "id": 1794, - "nodeType": "Block", - "src": "14867:59:1", - "statements": [ - { + "leftExpression": { + "argumentTypes": null, "expression": { "argumentTypes": null, - "arguments": [ - { + "baseExpression": { + "argumentTypes": null, + "id": 3113, + "name": "stages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1300, + "src": "16411:6:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", + "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" + } + }, + "id": 3118, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, - "commonType": { + "expression": { + "argumentTypes": null, + "id": 3114, + "name": "stages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1300, + "src": "16418:6:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", + "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" + } + }, + "id": 3115, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "16418:13:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 3116, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16434:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "16418:17:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "16411:25:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Stage_$1318_storage", + "typeString": "struct W12Crowdsale.Stage storage ref" + } + }, + "id": 3119, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "endDate", + "nodeType": "MemberAccess", + "referencedDeclaration": 1307, + "src": "16411:33:5", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 3120, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10044, + "src": "16447:3:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16411:39:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "16389:61:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3108, + "id": 3123, + "nodeType": "Return", + "src": "16382:68:5" + } + ] + }, + "documentation": null, + "id": 3125, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isEnded", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3105, + "nodeType": "ParameterList", + "parameters": [], + "src": "16342:2:5" + }, + "payable": false, + "returnParameters": { + "id": 3108, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3107, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3125, + "src": "16366:4:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3106, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "16366:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "16365:6:5" + }, + "scope": 3168, + "src": "16326:131:5", + "stateMutability": "view", + "superFunction": 1186, + "visibility": "public" + }, + { + "body": { + "id": 3137, + "nodeType": "Block", + "src": "16514:79:5", + "statements": [ + { + "assignments": [ + null, + 3131 + ], + "declarations": [ + null, + { + "constant": false, + "id": 3131, + "name": "found", + "nodeType": "VariableDeclaration", + "scope": 3138, + "src": "16527:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3130, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "16527:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3134, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3132, + "name": "getCurrentStageIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3071, + "src": "16541:20:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_bool_$", + "typeString": "function () view returns (uint256,bool)" + } + }, + "id": 3133, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16541:22:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", + "typeString": "tuple(uint256,bool)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16524:39:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 3135, + "name": "found", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3131, + "src": "16581:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3129, + "id": 3136, + "nodeType": "Return", + "src": "16574:12:5" + } + ] + }, + "documentation": null, + "id": 3138, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isSaleActive", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3126, + "nodeType": "ParameterList", + "parameters": [], + "src": "16484:2:5" + }, + "payable": false, + "returnParameters": { + "id": 3129, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3128, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3138, + "src": "16508:4:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3127, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "16508:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "16507:6:5" + }, + "scope": 3168, + "src": "16463:130:5", + "stateMutability": "view", + "superFunction": 1191, + "visibility": "public" + }, + { + "body": { + "id": 3156, + "nodeType": "Block", + "src": "16626:110:5", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3143, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3140, + "name": "stages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1300, + "src": "16640:6:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", + "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" + } + }, + "id": 3141, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "16640:13:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3142, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16656:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "16640:17:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 3154, + "nodeType": "IfStatement", + "src": "16636:82:5", + "trueBody": { + "id": 3153, + "nodeType": "Block", + "src": "16659:59:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1791, + "id": 3150, "isConstant": false, "isLValue": false, "isPure": false, @@ -24556,29 +27334,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1786, + "id": 3145, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "14889:6:1", + "referencedDeclaration": 1300, + "src": "16681:6:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$108_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" } }, - "id": 1788, + "id": 3147, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1787, + "id": 3146, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14896:1:1", + "src": "16688:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -24591,21 +27369,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "14889:9:1", + "src": "16681:9:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$108_storage", + "typeIdentifier": "t_struct$_Stage_$1318_storage", "typeString": "struct W12Crowdsale.Stage storage ref" } }, - "id": 1789, + "id": 3148, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "startDate", "nodeType": "MemberAccess", - "referencedDeclaration": 95, - "src": "14889:19:1", + "referencedDeclaration": 1305, + "src": "16681:19:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -24615,18 +27393,18 @@ "operator": ">", "rightExpression": { "argumentTypes": null, - "id": 1790, + "id": 3149, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7296, - "src": "14911:3:1", + "referencedDeclaration": 10044, + "src": "16703:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "14889:25:1", + "src": "16681:25:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -24640,21 +27418,21 @@ "typeString": "bool" } ], - "id": 1785, + "id": 3144, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "14881:7:1", + "referencedDeclaration": 10045, + "src": "16673:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1792, + "id": 3151, "isConstant": false, "isLValue": false, "isPure": false, @@ -24662,44 +27440,44 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "14881:34:1", + "src": "16673:34:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1793, + "id": 3152, "nodeType": "ExpressionStatement", - "src": "14881:34:1" + "src": "16673:34:5" } ] } }, { - "id": 1796, + "id": 3155, "nodeType": "PlaceholderStatement", - "src": "14936:1:1" + "src": "16728:1:5" } ] }, "documentation": null, - "id": 1798, + "id": 3157, "name": "beforeSaleStart", "nodeType": "ModifierDefinition", "parameters": { - "id": 1780, + "id": 3139, "nodeType": "ParameterList", "parameters": [], - "src": "14831:2:1" + "src": "16623:2:5" }, - "src": "14807:137:1", + "src": "16599:137:5", "visibility": "internal" }, { "body": { - "id": 1807, + "id": 3166, "nodeType": "Block", - "src": "14980:79:1", + "src": "16772:79:5", "statements": [ { "expression": { @@ -24710,18 +27488,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1801, + "id": 3160, "name": "isSaleActive", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1772, - "src": "14998:12:1", + "referencedDeclaration": 3138, + "src": "16790:12:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", "typeString": "function () view returns (bool)" } }, - "id": 1802, + "id": 3161, "isConstant": false, "isLValue": false, "isPure": false, @@ -24729,7 +27507,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "14998:14:1", + "src": "16790:14:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -24738,14 +27516,14 @@ { "argumentTypes": null, "hexValue": "53616c65206973206e6f74207374617274656420796574", - "id": 1803, + "id": 3162, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "15014:25:1", + "src": "16806:25:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_5d3dac2c5e5eaf55904e5c5b3584f31d9fc0f4cb1622762f2b62bd65063805dc", @@ -24765,21 +27543,21 @@ "typeString": "literal_string \"Sale is not started yet\"" } ], - "id": 1800, + "id": 3159, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7298, - "src": "14990:7:1", + "referencedDeclaration": 10046, + "src": "16782:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1804, + "id": 3163, "isConstant": false, "isLValue": false, "isPure": false, @@ -24787,55 +27565,55 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "14990:50:1", + "src": "16782:50:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1805, + "id": 3164, "nodeType": "ExpressionStatement", - "src": "14990:50:1" + "src": "16782:50:5" }, { - "id": 1806, + "id": 3165, "nodeType": "PlaceholderStatement", - "src": "15051:1:1" + "src": "16843:1:5" } ] }, "documentation": null, - "id": 1808, + "id": 3167, "name": "onlyWhenSaleActive", "nodeType": "ModifierDefinition", "parameters": { - "id": 1799, + "id": 3158, "nodeType": "ParameterList", "parameters": [], - "src": "14977:2:1" + "src": "16769:2:5" }, - "src": "14950:109:1", + "src": "16742:109:5", "visibility": "internal" } ], - "scope": 1810, - "src": "505:14556:1" + "scope": 3169, + "src": "667:16186:5" } ], - "src": "0:15062:1" + "src": "0:16854:5" }, "legacyAST": { - "absolutePath": "/home/circleci/code/contracts/W12Crowdsale.sol", + "absolutePath": "/home/circleci/code/contracts/crowdsale/W12Crowdsale.sol", "exportedSymbols": { "W12Crowdsale": [ - 1809 + 3168 ] }, - "id": 1810, + "id": 3169, "nodeType": "SourceUnit", "nodes": [ { - "id": 66, + "id": 1243, "literals": [ "solidity", "^", @@ -24843,115 +27621,159 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:1" + "src": "0:24:5" }, { "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 67, + "id": 1244, "nodeType": "ImportDirective", - "scope": 1810, - "sourceUnit": 6941, - "src": "26:63:1", + "scope": 3169, + "sourceUnit": 9689, + "src": "26:63:5", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "openzeppelin-solidity/contracts/ReentrancyGuard.sol", "file": "openzeppelin-solidity/contracts/ReentrancyGuard.sol", - "id": 68, + "id": 1245, "nodeType": "ImportDirective", - "scope": 1810, - "sourceUnit": 6691, - "src": "90:61:1", + "scope": 3169, + "sourceUnit": 9332, + "src": "90:61:5", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 69, + "id": 1246, "nodeType": "ImportDirective", - "scope": 1810, - "sourceUnit": 6855, - "src": "152:59:1", + "scope": 3169, + "sourceUnit": 9603, + "src": "152:59:5", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", + "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", + "id": 1247, + "nodeType": "ImportDirective", + "scope": 3169, + "sourceUnit": 9766, + "src": "212:63:5", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/DetailedERC20.sol", + "file": "openzeppelin-solidity/contracts/token/ERC20/DetailedERC20.sol", + "id": 1248, + "nodeType": "ImportDirective", + "scope": 3169, + "sourceUnit": 9723, + "src": "276:71:5", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "solidity-bytes-utils/contracts/BytesLib.sol", "file": "solidity-bytes-utils/contracts/BytesLib.sol", - "id": 70, + "id": 1249, "nodeType": "ImportDirective", - "scope": 1810, - "sourceUnit": 7280, - "src": "212:53:1", + "scope": 3169, + "sourceUnit": 10028, + "src": "348:53:5", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "id": 71, + "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Crowdsale.sol", + "file": "./IW12Crowdsale.sol", + "id": 1250, "nodeType": "ImportDirective", - "scope": 1810, - "sourceUnit": 7018, - "src": "266:63:1", + "scope": 3169, + "sourceUnit": 1205, + "src": "402:29:5", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/home/circleci/code/contracts/interfaces/IW12Crowdsale.sol", - "file": "./interfaces/IW12Crowdsale.sol", - "id": 72, + "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Fund.sol", + "file": "./IW12Fund.sol", + "id": 1251, "nodeType": "ImportDirective", - "scope": 1810, - "sourceUnit": 4427, - "src": "330:40:1", + "scope": 3169, + "sourceUnit": 1242, + "src": "432:24:5", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/home/circleci/code/contracts/interfaces/IW12Fund.sol", - "file": "./interfaces/IW12Fund.sol", - "id": 73, + "absolutePath": "/home/circleci/code/contracts/rates/IRates.sol", + "file": "../rates/IRates.sol", + "id": 1252, "nodeType": "ImportDirective", - "scope": 1810, - "sourceUnit": 4485, - "src": "371:35:1", + "scope": 3169, + "sourceUnit": 7016, + "src": "457:29:5", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/libs/Percent.sol", - "file": "./libs/Percent.sol", - "id": 74, + "file": "../libs/Percent.sol", + "id": 1253, + "nodeType": "ImportDirective", + "scope": 3169, + "sourceUnit": 5104, + "src": "487:29:5", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/libs/PaymentMethods.sol", + "file": "../libs/PaymentMethods.sol", + "id": 1254, + "nodeType": "ImportDirective", + "scope": 3169, + "sourceUnit": 4959, + "src": "517:36:5", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/libs/PurchaseProcessing.sol", + "file": "../libs/PurchaseProcessing.sol", + "id": 1255, "nodeType": "ImportDirective", - "scope": 1810, - "sourceUnit": 4632, - "src": "407:28:1", + "scope": 3169, + "sourceUnit": 5855, + "src": "554:40:5", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/versioning/Versionable.sol", - "file": "./versioning/Versionable.sol", - "id": 75, + "file": "../versioning/Versionable.sol", + "id": 1256, "nodeType": "ImportDirective", - "scope": 1810, - "sourceUnit": 6510, - "src": "436:38:1", + "scope": 3169, + "sourceUnit": 9071, + "src": "595:39:5", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/home/circleci/code/contracts/token/WToken.sol", - "file": "./token/WToken.sol", - "id": 76, + "absolutePath": "/home/circleci/code/contracts/token/IWToken.sol", + "file": "../token/IWToken.sol", + "id": 1257, "nodeType": "ImportDirective", - "scope": 1810, - "sourceUnit": 5926, - "src": "475:28:1", + "scope": 3169, + "sourceUnit": 7631, + "src": "635:30:5", "symbolAliases": [], "unitAlias": "" }, @@ -24961,116 +27783,116 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 77, + "id": 1258, "name": "Versionable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6509, - "src": "530:11:1", + "referencedDeclaration": 9070, + "src": "692:11:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Versionable_$6509", + "typeIdentifier": "t_contract$_Versionable_$9070", "typeString": "contract Versionable" } }, - "id": 78, + "id": 1259, "nodeType": "InheritanceSpecifier", - "src": "530:11:1" + "src": "692:11:5" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 79, + "id": 1260, "name": "IW12Crowdsale", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4426, - "src": "543:13:1", + "referencedDeclaration": 1204, + "src": "705:13:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } }, - "id": 80, + "id": 1261, "nodeType": "InheritanceSpecifier", - "src": "543:13:1" + "src": "705:13:5" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 81, + "id": 1262, "name": "Ownable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6940, - "src": "558:7:1", + "referencedDeclaration": 9688, + "src": "720:7:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$6940", + "typeIdentifier": "t_contract$_Ownable_$9688", "typeString": "contract Ownable" } }, - "id": 82, + "id": 1263, "nodeType": "InheritanceSpecifier", - "src": "558:7:1" + "src": "720:7:5" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 83, + "id": 1264, "name": "ReentrancyGuard", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6690, - "src": "567:15:1", + "referencedDeclaration": 9331, + "src": "729:15:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_ReentrancyGuard_$6690", + "typeIdentifier": "t_contract$_ReentrancyGuard_$9331", "typeString": "contract ReentrancyGuard" } }, - "id": 84, + "id": 1265, "nodeType": "InheritanceSpecifier", - "src": "567:15:1" + "src": "729:15:5" } ], "contractDependencies": [ - 4426, - 6509, - 6690, - 6940 + 1204, + 9070, + 9331, + 9688 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 1809, + "id": 3168, "linearizedBaseContracts": [ - 1809, - 6690, - 6940, - 4426, - 6509 + 3168, + 9331, + 9688, + 1204, + 9070 ], "name": "W12Crowdsale", "nodeType": "ContractDefinition", "nodes": [ { - "id": 87, + "id": 1268, "libraryName": { "contractScope": null, - "id": 85, + "id": 1266, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6854, - "src": "595:8:1", + "referencedDeclaration": 9602, + "src": "757:8:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$6854", + "typeIdentifier": "t_contract$_SafeMath_$9602", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "589:24:1", + "src": "751:24:5", "typeName": { - "id": 86, + "id": 1267, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "608:4:1", + "src": "770:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -25078,26 +27900,26 @@ } }, { - "id": 90, + "id": 1271, "libraryName": { "contractScope": null, - "id": 88, + "id": 1269, "name": "Percent", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4631, - "src": "624:7:1", + "referencedDeclaration": 5103, + "src": "786:7:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Percent_$4631", + "typeIdentifier": "t_contract$_Percent_$5103", "typeString": "library Percent" } }, "nodeType": "UsingForDirective", - "src": "618:23:1", + "src": "780:23:5", "typeName": { - "id": 89, + "id": 1270, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "636:4:1", + "src": "798:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -25105,26 +27927,26 @@ } }, { - "id": 93, + "id": 1274, "libraryName": { "contractScope": null, - "id": 91, + "id": 1272, "name": "BytesLib", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7279, - "src": "652:8:1", + "referencedDeclaration": 10027, + "src": "814:8:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_BytesLib_$7279", + "typeIdentifier": "t_contract$_BytesLib_$10027", "typeString": "library BytesLib" } }, "nodeType": "UsingForDirective", - "src": "646:25:1", + "src": "808:25:5", "typeName": { - "id": 92, + "id": 1273, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "665:5:1", + "src": "827:5:5", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -25132,382 +27954,57 @@ } }, { - "canonicalName": "W12Crowdsale.Stage", - "id": 108, - "members": [ - { - "constant": false, - "id": 95, - "name": "startDate", - "nodeType": "VariableDeclaration", - "scope": 108, - "src": "700:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 94, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "700:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 97, - "name": "endDate", - "nodeType": "VariableDeclaration", - "scope": 108, - "src": "726:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 96, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "726:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 99, - "name": "discount", - "nodeType": "VariableDeclaration", - "scope": 108, - "src": "750:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 98, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "750:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 101, - "name": "vesting", - "nodeType": "VariableDeclaration", - "scope": 108, - "src": "773:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 100, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "773:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 104, - "name": "volumeBoundaries", - "nodeType": "VariableDeclaration", - "scope": 108, - "src": "797:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 102, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "797:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 103, - "length": null, - "nodeType": "ArrayTypeName", - "src": "797:6:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 107, - "name": "volumeBonuses", - "nodeType": "VariableDeclaration", - "scope": 108, - "src": "830:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 105, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "830:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 106, - "length": null, - "nodeType": "ArrayTypeName", - "src": "830:6:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" + "id": 1277, + "libraryName": { + "contractScope": null, + "id": 1275, + "name": "PaymentMethods", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4958, + "src": "844:14:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_PaymentMethods_$4958", + "typeString": "library PaymentMethods" } - ], - "name": "Stage", - "nodeType": "StructDefinition", - "scope": 1809, - "src": "677:180:1", - "visibility": "public" - }, - { - "canonicalName": "W12Crowdsale.Milestone", - "id": 121, - "members": [ - { - "constant": false, - "id": 110, - "name": "endDate", - "nodeType": "VariableDeclaration", - "scope": 121, - "src": "890:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 109, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "890:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 112, - "name": "tranchePercent", - "nodeType": "VariableDeclaration", - "scope": 121, - "src": "914:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 111, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "914:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 114, - "name": "voteEndDate", - "nodeType": "VariableDeclaration", - "scope": 121, - "src": "944:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 113, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "944:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 116, - "name": "withdrawalWindow", - "nodeType": "VariableDeclaration", - "scope": 121, - "src": "972:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 115, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "972:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 118, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 121, - "src": "1005:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 117, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1005:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 120, - "name": "description", - "nodeType": "VariableDeclaration", - "scope": 121, - "src": "1025:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 119, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1025:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Milestone", - "nodeType": "StructDefinition", - "scope": 1809, - "src": "863:186:1", - "visibility": "public" + }, + "nodeType": "UsingForDirective", + "src": "838:48:5", + "typeName": { + "contractScope": null, + "id": 1276, + "name": "PaymentMethods.Methods", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4851, + "src": "863:22:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Methods_$4851_storage_ptr", + "typeString": "struct PaymentMethods.Methods" + } + } }, { "constant": false, - "id": 123, + "id": 1279, "name": "token", "nodeType": "VariableDeclaration", - "scope": 1809, - "src": "1055:19:1", + "scope": 3168, + "src": "892:20:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" }, "typeName": { "contractScope": null, - "id": 122, - "name": "WToken", + "id": 1278, + "name": "IWToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5925, - "src": "1055:6:1", + "referencedDeclaration": 7630, + "src": "892:7:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" } }, "value": null, @@ -25515,26 +28012,26 @@ }, { "constant": false, - "id": 125, + "id": 1281, "name": "originToken", "nodeType": "VariableDeclaration", - "scope": 1809, - "src": "1080:24:1", + "scope": 3168, + "src": "918:24:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" }, "typeName": { "contractScope": null, - "id": 124, + "id": 1280, "name": "ERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7017, - "src": "1080:5:1", + "referencedDeclaration": 9765, + "src": "918:5:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, @@ -25543,11 +28040,67 @@ }, { "constant": false, - "id": 127, + "id": 1283, + "name": "fund", + "nodeType": "VariableDeclaration", + "scope": 3168, + "src": "948:20:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1241", + "typeString": "contract IW12Fund" + }, + "typeName": { + "contractScope": null, + "id": 1282, + "name": "IW12Fund", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1241, + "src": "948:8:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1241", + "typeString": "contract IW12Fund" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 1285, + "name": "rates", + "nodeType": "VariableDeclaration", + "scope": 3168, + "src": "974:19:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + }, + "typeName": { + "contractScope": null, + "id": 1284, + "name": "IRates", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7015, + "src": "974:6:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 1287, "name": "price", "nodeType": "VariableDeclaration", - "scope": 1809, - "src": "1110:17:1", + "scope": 3168, + "src": "999:17:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -25555,10 +28108,10 @@ "typeString": "uint256" }, "typeName": { - "id": 126, + "id": 1286, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1110:4:1", + "src": "999:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -25569,11 +28122,11 @@ }, { "constant": false, - "id": 129, + "id": 1289, "name": "serviceFee", "nodeType": "VariableDeclaration", - "scope": 1809, - "src": "1133:22:1", + "scope": 3168, + "src": "1022:22:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -25581,10 +28134,10 @@ "typeString": "uint256" }, "typeName": { - "id": 128, + "id": 1288, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1133:4:1", + "src": "1022:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -25595,11 +28148,11 @@ }, { "constant": false, - "id": 131, + "id": 1291, "name": "WTokenSaleFeePercent", "nodeType": "VariableDeclaration", - "scope": 1809, - "src": "1161:32:1", + "scope": 3168, + "src": "1050:32:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -25607,10 +28160,10 @@ "typeString": "uint256" }, "typeName": { - "id": 130, + "id": 1290, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1161:4:1", + "src": "1050:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -25621,11 +28174,11 @@ }, { "constant": false, - "id": 133, + "id": 1293, "name": "serviceWallet", "nodeType": "VariableDeclaration", - "scope": 1809, - "src": "1199:28:1", + "scope": 3168, + "src": "1088:28:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -25633,10 +28186,10 @@ "typeString": "address" }, "typeName": { - "id": 132, + "id": 1292, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1199:7:1", + "src": "1088:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -25647,11 +28200,11 @@ }, { "constant": false, - "id": 135, + "id": 1295, "name": "swap", "nodeType": "VariableDeclaration", - "scope": 1809, - "src": "1233:19:1", + "scope": 3168, + "src": "1122:19:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -25659,10 +28212,10 @@ "typeString": "address" }, "typeName": { - "id": 134, + "id": 1294, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1233:7:1", + "src": "1122:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -25673,64 +28226,64 @@ }, { "constant": false, - "id": 137, - "name": "fund", + "id": 1297, + "name": "paymentMethods", "nodeType": "VariableDeclaration", - "scope": 1809, - "src": "1258:20:1", + "scope": 3168, + "src": "1179:37:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", - "typeString": "contract IW12Fund" + "typeIdentifier": "t_struct$_Methods_$4851_storage", + "typeString": "struct PaymentMethods.Methods" }, "typeName": { "contractScope": null, - "id": 136, - "name": "IW12Fund", + "id": 1296, + "name": "PaymentMethods.Methods", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4484, - "src": "1258:8:1", + "referencedDeclaration": 4851, + "src": "1179:22:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", - "typeString": "contract IW12Fund" + "typeIdentifier": "t_struct$_Methods_$4851_storage_ptr", + "typeString": "struct PaymentMethods.Methods" } }, "value": null, - "visibility": "public" + "visibility": "internal" }, { "constant": false, - "id": 140, + "id": 1300, "name": "stages", "nodeType": "VariableDeclaration", - "scope": 1809, - "src": "1285:21:1", + "scope": 3168, + "src": "1223:21:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$108_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Stage[]" }, "typeName": { "baseType": { "contractScope": null, - "id": 138, + "id": 1298, "name": "Stage", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 108, - "src": "1285:5:1", + "referencedDeclaration": 1318, + "src": "1223:5:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$108_storage_ptr", + "typeIdentifier": "t_struct$_Stage_$1318_storage_ptr", "typeString": "struct W12Crowdsale.Stage" } }, - "id": 139, + "id": 1299, "length": null, "nodeType": "ArrayTypeName", - "src": "1285:7:1", + "src": "1223:7:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$108_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage_ptr", "typeString": "struct W12Crowdsale.Stage[]" } }, @@ -25739,60 +28292,414 @@ }, { "constant": false, - "id": 143, + "id": 1303, "name": "milestones", "nodeType": "VariableDeclaration", - "scope": 1809, - "src": "1312:29:1", + "scope": 3168, + "src": "1250:29:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$121_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Milestone_$1331_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Milestone[]" }, "typeName": { "baseType": { "contractScope": null, - "id": 141, + "id": 1301, "name": "Milestone", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 121, - "src": "1312:9:1", + "referencedDeclaration": 1331, + "src": "1250:9:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$121_storage_ptr", + "typeIdentifier": "t_struct$_Milestone_$1331_storage_ptr", "typeString": "struct W12Crowdsale.Milestone" } }, - "id": 142, + "id": 1302, "length": null, "nodeType": "ArrayTypeName", - "src": "1312:11:1", + "src": "1250:11:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$121_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Milestone_$1331_storage_$dyn_storage_ptr", "typeString": "struct W12Crowdsale.Milestone[]" } }, "value": null, "visibility": "public" }, + { + "canonicalName": "W12Crowdsale.Stage", + "id": 1318, + "members": [ + { + "constant": false, + "id": 1305, + "name": "startDate", + "nodeType": "VariableDeclaration", + "scope": 1318, + "src": "1309:16:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 1304, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1309:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1307, + "name": "endDate", + "nodeType": "VariableDeclaration", + "scope": 1318, + "src": "1335:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 1306, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1335:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1309, + "name": "discount", + "nodeType": "VariableDeclaration", + "scope": 1318, + "src": "1359:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1308, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1359:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1311, + "name": "vesting", + "nodeType": "VariableDeclaration", + "scope": 1318, + "src": "1382:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 1310, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1382:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1314, + "name": "volumeBoundaries", + "nodeType": "VariableDeclaration", + "scope": 1318, + "src": "1406:23:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1312, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1406:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1313, + "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": 1317, + "name": "volumeBonuses", + "nodeType": "VariableDeclaration", + "scope": 1318, + "src": "1439:20:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1315, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1439:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1316, + "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": 3168, + "src": "1286:180:5", + "visibility": "public" + }, + { + "canonicalName": "W12Crowdsale.Milestone", + "id": 1331, + "members": [ + { + "constant": false, + "id": 1320, + "name": "endDate", + "nodeType": "VariableDeclaration", + "scope": 1331, + "src": "1499:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 1319, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1499:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1322, + "name": "tranchePercent", + "nodeType": "VariableDeclaration", + "scope": 1331, + "src": "1523:19:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1321, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1523:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1324, + "name": "voteEndDate", + "nodeType": "VariableDeclaration", + "scope": 1331, + "src": "1552:18:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 1323, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1552:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1326, + "name": "withdrawalWindow", + "nodeType": "VariableDeclaration", + "scope": 1331, + "src": "1580:23:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 1325, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1580:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1328, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 1331, + "src": "1613:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1327, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1613:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1330, + "name": "description", + "nodeType": "VariableDeclaration", + "scope": 1331, + "src": "1633:17:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1329, + "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": 3168, + "src": "1472:185:5", + "visibility": "public" + }, { "anonymous": false, "documentation": null, - "id": 153, + "id": 1341, "name": "TokenPurchase", "nodeType": "EventDefinition", "parameters": { - "id": 152, + "id": 1340, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 145, + "id": 1333, "indexed": true, "name": "buyer", "nodeType": "VariableDeclaration", - "scope": 153, - "src": "1368:21:1", + "scope": 1341, + "src": "1683:21:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25800,10 +28707,10 @@ "typeString": "address" }, "typeName": { - "id": 144, + "id": 1332, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1368:7:1", + "src": "1683:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -25814,12 +28721,12 @@ }, { "constant": false, - "id": 147, + "id": 1335, "indexed": false, - "name": "amountPaid", + "name": "tokensBought", "nodeType": "VariableDeclaration", - "scope": 153, - "src": "1391:15:1", + "scope": 1341, + "src": "1706:17:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25827,10 +28734,10 @@ "typeString": "uint256" }, "typeName": { - "id": 146, + "id": 1334, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1391:4:1", + "src": "1706:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -25841,12 +28748,12 @@ }, { "constant": false, - "id": 149, + "id": 1337, "indexed": false, - "name": "tokensBought", + "name": "cost", "nodeType": "VariableDeclaration", - "scope": 153, - "src": "1408:17:1", + "scope": 1341, + "src": "1725:9:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25854,10 +28761,10 @@ "typeString": "uint256" }, "typeName": { - "id": 148, + "id": 1336, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1408:4:1", + "src": "1725:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -25868,12 +28775,12 @@ }, { "constant": false, - "id": 151, + "id": 1339, "indexed": false, "name": "change", "nodeType": "VariableDeclaration", - "scope": 153, - "src": "1427:11:1", + "scope": 1341, + "src": "1736:11:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25881,10 +28788,10 @@ "typeString": "uint256" }, "typeName": { - "id": 150, + "id": 1338, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1427:4:1", + "src": "1736:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -25894,42 +28801,42 @@ "visibility": "internal" } ], - "src": "1367:72:1" + "src": "1682:66:5" }, - "src": "1348:92:1" + "src": "1663:86:5" }, { "anonymous": false, "documentation": null, - "id": 155, + "id": 1343, "name": "StagesUpdated", "nodeType": "EventDefinition", "parameters": { - "id": 154, + "id": 1342, "nodeType": "ParameterList", "parameters": [], - "src": "1464:2:1" + "src": "1773:2:5" }, - "src": "1445:22:1" + "src": "1754:22:5" }, { "anonymous": false, "documentation": null, - "id": 159, + "id": 1347, "name": "StageUpdated", "nodeType": "EventDefinition", "parameters": { - "id": 158, + "id": 1346, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 157, + "id": 1345, "indexed": false, "name": "index", "nodeType": "VariableDeclaration", - "scope": 159, - "src": "1491:10:1", + "scope": 1347, + "src": "1800:10:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25937,10 +28844,10 @@ "typeString": "uint256" }, "typeName": { - "id": 156, + "id": 1344, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1491:4:1", + "src": "1800:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -25950,42 +28857,42 @@ "visibility": "internal" } ], - "src": "1490:12:1" + "src": "1799:12:5" }, - "src": "1472:31:1" + "src": "1781:31:5" }, { "anonymous": false, "documentation": null, - "id": 161, + "id": 1349, "name": "MilestonesUpdated", "nodeType": "EventDefinition", "parameters": { - "id": 160, + "id": 1348, "nodeType": "ParameterList", "parameters": [], - "src": "1531:2:1" + "src": "1840:2:5" }, - "src": "1508:26:1" + "src": "1817:26:5" }, { "anonymous": false, "documentation": null, - "id": 167, + "id": 1355, "name": "UnsoldTokenReturned", "nodeType": "EventDefinition", "parameters": { - "id": 166, + "id": 1354, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 163, + "id": 1351, "indexed": true, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 167, - "src": "1565:21:1", + "scope": 1355, + "src": "1874:21:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25993,10 +28900,10 @@ "typeString": "address" }, "typeName": { - "id": 162, + "id": 1350, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1565:7:1", + "src": "1874:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -26007,12 +28914,12 @@ }, { "constant": false, - "id": 165, + "id": 1353, "indexed": false, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 167, - "src": "1588:11:1", + "scope": 1355, + "src": "1897:11:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26020,10 +28927,10 @@ "typeString": "uint256" }, "typeName": { - "id": 164, + "id": 1352, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1588:4:1", + "src": "1897:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -26033,15 +28940,15 @@ "visibility": "internal" } ], - "src": "1564:36:1" + "src": "1873:36:5" }, - "src": "1539:62:1" + "src": "1848:62:5" }, { "body": { - "id": 280, + "id": 1482, "nodeType": "Block", - "src": "1904:599:1", + "src": "2236:663:5", "statements": [ { "expression": { @@ -26053,19 +28960,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 196, + "id": 1386, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 192, + "id": 1382, "name": "_originToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 171, - "src": "1922:12:1", + "referencedDeclaration": 1359, + "src": "2254:12:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -26079,14 +28986,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 194, + "id": 1384, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1946:1:1", + "src": "2278:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -26102,20 +29009,20 @@ "typeString": "int_const 0" } ], - "id": 193, + "id": 1383, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1938:7:1", + "src": "2270:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 195, + "id": 1385, "isConstant": false, "isLValue": false, "isPure": true, @@ -26123,13 +29030,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1938:10:1", + "src": "2270:10:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1922:26:1", + "src": "2254:26:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -26143,21 +29050,21 @@ "typeString": "bool" } ], - "id": 191, + "id": 1381, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "1914:7:1", + "referencedDeclaration": 10045, + "src": "2246:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 197, + "id": 1387, "isConstant": false, "isLValue": false, "isPure": false, @@ -26165,15 +29072,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1914:35:1", + "src": "2246:35:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 198, + "id": 1388, "nodeType": "ExpressionStatement", - "src": "1914:35:1" + "src": "2246:35:5" }, { "expression": { @@ -26185,19 +29092,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 204, + "id": 1394, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 200, + "id": 1390, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 173, - "src": "1967:6:1", + "referencedDeclaration": 1361, + "src": "2299:6:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -26211,14 +29118,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 202, + "id": 1392, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1985:1:1", + "src": "2317:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -26234,20 +29141,20 @@ "typeString": "int_const 0" } ], - "id": 201, + "id": 1391, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1977:7:1", + "src": "2309:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 203, + "id": 1393, "isConstant": false, "isLValue": false, "isPure": true, @@ -26255,13 +29162,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1977:10:1", + "src": "2309:10:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1967:20:1", + "src": "2299:20:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -26275,21 +29182,21 @@ "typeString": "bool" } ], - "id": 199, + "id": 1389, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "1959:7:1", + "referencedDeclaration": 10045, + "src": "2291:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 205, + "id": 1395, "isConstant": false, "isLValue": false, "isPure": false, @@ -26297,15 +29204,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1959:29:1", + "src": "2291:29:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 206, + "id": 1396, "nodeType": "ExpressionStatement", - "src": "1959:29:1" + "src": "2291:29:5" }, { "expression": { @@ -26317,7 +29224,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 216, + "id": 1406, "isConstant": false, "isLValue": false, "isPure": false, @@ -26329,32 +29236,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 208, + "id": 1398, "name": "_serviceFee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 181, - "src": "2006:11:1", + "referencedDeclaration": 1369, + "src": "2338:11:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 209, + "id": 1399, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isPercent", "nodeType": "MemberAccess", - "referencedDeclaration": 4586, - "src": "2006:21:1", + "referencedDeclaration": 5058, + "src": "2338:21:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$", "typeString": "function (uint256) pure returns (bool)" } }, - "id": 210, + "id": 1400, "isConstant": false, "isLValue": false, "isPure": false, @@ -26362,7 +29269,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2006:23:1", + "src": "2338:23:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -26376,7 +29283,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 215, + "id": 1405, "isConstant": false, "isLValue": false, "isPure": false, @@ -26388,32 +29295,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 211, + "id": 1401, "name": "_serviceFee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 181, - "src": "2033:11:1", + "referencedDeclaration": 1369, + "src": "2365:11:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 212, + "id": 1402, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "fromPercent", "nodeType": "MemberAccess", - "referencedDeclaration": 4630, - "src": "2033:23:1", + "referencedDeclaration": 5102, + "src": "2365:23:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256) pure returns (uint256)" } }, - "id": 213, + "id": 1403, "isConstant": false, "isLValue": false, "isPure": false, @@ -26421,7 +29328,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2033:25:1", + "src": "2365:25:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -26432,14 +29339,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "313030", - "id": 214, + "id": 1404, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2061:3:1", + "src": "2393:3:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_100_by_1", @@ -26447,13 +29354,13 @@ }, "value": "100" }, - "src": "2033:31:1", + "src": "2365:31:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2006:58:1", + "src": "2338:58:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -26467,21 +29374,21 @@ "typeString": "bool" } ], - "id": 207, + "id": 1397, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "1998:7:1", + "referencedDeclaration": 10045, + "src": "2330:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 217, + "id": 1407, "isConstant": false, "isLValue": false, "isPure": false, @@ -26489,15 +29396,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1998:67:1", + "src": "2330:67:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 218, + "id": 1408, "nodeType": "ExpressionStatement", - "src": "1998:67:1" + "src": "2330:67:5" }, { "expression": { @@ -26509,7 +29416,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 228, + "id": 1418, "isConstant": false, "isLValue": false, "isPure": false, @@ -26521,32 +29428,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 220, + "id": 1410, "name": "_WTokenSaleFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 183, - "src": "2083:21:1", + "referencedDeclaration": 1371, + "src": "2415:21:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 221, + "id": 1411, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isPercent", "nodeType": "MemberAccess", - "referencedDeclaration": 4586, - "src": "2083:31:1", + "referencedDeclaration": 5058, + "src": "2415:31:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$", "typeString": "function (uint256) pure returns (bool)" } }, - "id": 222, + "id": 1412, "isConstant": false, "isLValue": false, "isPure": false, @@ -26554,7 +29461,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2083:33:1", + "src": "2415:33:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -26568,7 +29475,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 227, + "id": 1417, "isConstant": false, "isLValue": false, "isPure": false, @@ -26580,32 +29487,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 223, + "id": 1413, "name": "_WTokenSaleFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 183, - "src": "2120:21:1", + "referencedDeclaration": 1371, + "src": "2452:21:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 224, + "id": 1414, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "fromPercent", "nodeType": "MemberAccess", - "referencedDeclaration": 4630, - "src": "2120:33:1", + "referencedDeclaration": 5102, + "src": "2452:33:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256) pure returns (uint256)" } }, - "id": 225, + "id": 1415, "isConstant": false, "isLValue": false, "isPure": false, @@ -26613,7 +29520,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2120:35:1", + "src": "2452:35:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -26624,14 +29531,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "313030", - "id": 226, + "id": 1416, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2158:3:1", + "src": "2490:3:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_100_by_1", @@ -26639,13 +29546,13 @@ }, "value": "100" }, - "src": "2120:41:1", + "src": "2452:41:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2083:78:1", + "src": "2415:78:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -26659,21 +29566,21 @@ "typeString": "bool" } ], - "id": 219, + "id": 1409, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "2075:7:1", + "referencedDeclaration": 10045, + "src": "2407:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 229, + "id": 1419, "isConstant": false, "isLValue": false, "isPure": false, @@ -26681,15 +29588,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2075:87:1", + "src": "2407:87:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 230, + "id": 1420, "nodeType": "ExpressionStatement", - "src": "2075:87:1" + "src": "2407:87:5" }, { "expression": { @@ -26701,21 +29608,21 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 236, + "id": 1426, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 232, + "id": 1422, "name": "_fund", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 185, - "src": "2180:5:1", + "referencedDeclaration": 1373, + "src": "2512:5:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", + "typeIdentifier": "t_contract$_IW12Fund_$1241", "typeString": "contract IW12Fund" } }, @@ -26727,14 +29634,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 234, + "id": 1424, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2197:1:1", + "src": "2529:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -26750,20 +29657,20 @@ "typeString": "int_const 0" } ], - "id": 233, + "id": 1423, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2189:7:1", + "src": "2521:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 235, + "id": 1425, "isConstant": false, "isLValue": false, "isPure": true, @@ -26771,13 +29678,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2189:10:1", + "src": "2521:10:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2180:19:1", + "src": "2512:19:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -26791,21 +29698,21 @@ "typeString": "bool" } ], - "id": 231, + "id": 1421, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "2172:7:1", + "referencedDeclaration": 10045, + "src": "2504:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 237, + "id": 1427, "isConstant": false, "isLValue": false, "isPure": false, @@ -26813,15 +29720,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2172:28:1", + "src": "2504:28:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 238, + "id": 1428, "nodeType": "ExpressionStatement", - "src": "2172:28:1" + "src": "2504:28:5" }, { "expression": { @@ -26833,24 +29740,156 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 244, + "id": 1434, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 240, + "id": 1430, "name": "_swap", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 179, - "src": "2218:5:1", + "referencedDeclaration": 1367, + "src": "2550:5:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1432, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2567: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": 1431, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2559:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1433, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2559:10:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, + "src": "2550:19:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1429, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "2542:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1435, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2542:28:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1436, + "nodeType": "ExpressionStatement", + "src": "2542:28:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1438, + "name": "_rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1375, + "src": "2588:6:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { @@ -26859,14 +29898,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 242, + "id": 1440, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2235:1:1", + "src": "2606:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -26882,20 +29921,20 @@ "typeString": "int_const 0" } ], - "id": 241, + "id": 1439, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2227:7:1", + "src": "2598:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 243, + "id": 1441, "isConstant": false, "isLValue": false, "isPure": true, @@ -26903,13 +29942,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2227:10:1", + "src": "2598:10:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2218:19:1", + "src": "2588:20:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -26923,21 +29962,21 @@ "typeString": "bool" } ], - "id": 239, + "id": 1437, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "2210:7:1", + "referencedDeclaration": 10045, + "src": "2580:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 245, + "id": 1443, "isConstant": false, "isLValue": false, "isPure": false, @@ -26945,15 +29984,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2210:28:1", + "src": "2580:29:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 246, + "id": 1444, "nodeType": "ExpressionStatement", - "src": "2210:28:1" + "src": "2580:29:5" }, { "expression": { @@ -26961,12 +30000,12 @@ "arguments": [ { "argumentTypes": null, - "id": 248, + "id": 1446, "name": "_price", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 175, - "src": "2265:6:1", + "referencedDeclaration": 1363, + "src": "2636:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -26974,12 +30013,12 @@ }, { "argumentTypes": null, - "id": 249, + "id": 1447, "name": "_serviceWallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 177, - "src": "2273:14:1", + "referencedDeclaration": 1365, + "src": "2644:14:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -26997,18 +30036,18 @@ "typeString": "address" } ], - "id": 247, + "id": 1445, "name": "__setParameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 509, - "src": "2249:15:1", + "referencedDeclaration": 1711, + "src": "2620:15:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$__$", "typeString": "function (uint256,address)" } }, - "id": 250, + "id": 1448, "isConstant": false, "isLValue": false, "isPure": false, @@ -27016,35 +30055,35 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2249:39:1", + "src": "2620:39:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 251, + "id": 1449, "nodeType": "ExpressionStatement", - "src": "2249:39:1" + "src": "2620:39:5" }, { "expression": { "argumentTypes": null, - "id": 256, + "id": 1454, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 252, + "id": 1450, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 123, - "src": "2299:5:1", + "referencedDeclaration": 1279, + "src": "2670:5:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" } }, "nodeType": "Assignment", @@ -27054,12 +30093,12 @@ "arguments": [ { "argumentTypes": null, - "id": 254, + "id": 1452, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 173, - "src": "2314:6:1", + "referencedDeclaration": 1361, + "src": "2686:6:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -27073,18 +30112,18 @@ "typeString": "address" } ], - "id": 253, - "name": "WToken", + "id": 1451, + "name": "IWToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5925, - "src": "2307:6:1", + "referencedDeclaration": 7630, + "src": "2678:7:5", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_WToken_$5925_$", - "typeString": "type(contract WToken)" + "typeIdentifier": "t_type$_t_contract$_IWToken_$7630_$", + "typeString": "type(contract IWToken)" } }, - "id": 255, + "id": 1453, "isConstant": false, "isLValue": false, "isPure": false, @@ -27092,40 +30131,40 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2307:14:1", + "src": "2678:15:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" } }, - "src": "2299:22:1", + "src": "2670:23:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" } }, - "id": 257, + "id": 1455, "nodeType": "ExpressionStatement", - "src": "2299:22:1" + "src": "2670:23:5" }, { "expression": { "argumentTypes": null, - "id": 262, + "id": 1460, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 258, + "id": 1456, "name": "originToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 125, - "src": "2331:11:1", + "referencedDeclaration": 1281, + "src": "2703:11:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, @@ -27136,12 +30175,12 @@ "arguments": [ { "argumentTypes": null, - "id": 260, + "id": 1458, "name": "_originToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 171, - "src": "2351:12:1", + "referencedDeclaration": 1359, + "src": "2723:12:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -27155,18 +30194,18 @@ "typeString": "address" } ], - "id": 259, + "id": 1457, "name": "ERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7017, - "src": "2345:5:1", + "referencedDeclaration": 9765, + "src": "2717:5:5", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$7017_$", + "typeIdentifier": "t_type$_t_contract$_ERC20_$9765_$", "typeString": "type(contract ERC20)" } }, - "id": 261, + "id": 1459, "isConstant": false, "isLValue": false, "isPure": false, @@ -27174,38 +30213,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2345:19:1", + "src": "2717:19:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, - "src": "2331:33:1", + "src": "2703:33:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, - "id": 263, + "id": 1461, "nodeType": "ExpressionStatement", - "src": "2331:33:1" + "src": "2703:33:5" }, { "expression": { "argumentTypes": null, - "id": 266, + "id": 1464, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 264, + "id": 1462, "name": "serviceFee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 129, - "src": "2374:10:1", + "referencedDeclaration": 1289, + "src": "2746:10:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -27215,43 +30254,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 265, + "id": 1463, "name": "_serviceFee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 181, - "src": "2387:11:1", + "referencedDeclaration": 1369, + "src": "2759:11:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2374:24:1", + "src": "2746:24:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 267, + "id": 1465, "nodeType": "ExpressionStatement", - "src": "2374:24:1" + "src": "2746:24:5" }, { "expression": { "argumentTypes": null, - "id": 270, + "id": 1468, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 268, + "id": 1466, "name": "swap", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 135, - "src": "2408:4:1", + "referencedDeclaration": 1295, + "src": "2780:4:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -27261,43 +30300,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 269, + "id": 1467, "name": "_swap", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 179, - "src": "2415:5:1", + "referencedDeclaration": 1367, + "src": "2787:5:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2408:12:1", + "src": "2780:12:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 271, + "id": 1469, "nodeType": "ExpressionStatement", - "src": "2408:12:1" + "src": "2780:12:5" }, { "expression": { "argumentTypes": null, - "id": 274, + "id": 1472, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 272, + "id": 1470, "name": "WTokenSaleFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 131, - "src": "2430:20:1", + "referencedDeclaration": 1291, + "src": "2802:20:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -27307,45 +30346,45 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 273, + "id": 1471, "name": "_WTokenSaleFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 183, - "src": "2453:21:1", + "referencedDeclaration": 1371, + "src": "2825:21:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2430:44:1", + "src": "2802:44:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 275, + "id": 1473, "nodeType": "ExpressionStatement", - "src": "2430:44:1" + "src": "2802:44:5" }, { "expression": { "argumentTypes": null, - "id": 278, + "id": 1476, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 276, + "id": 1474, "name": "fund", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 137, - "src": "2484:4:1", + "referencedDeclaration": 1283, + "src": "2856:4:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", + "typeIdentifier": "t_contract$_IW12Fund_$1241", "typeString": "contract IW12Fund" } }, @@ -27353,31 +30392,77 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 277, + "id": 1475, "name": "_fund", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 185, - "src": "2491:5:1", + "referencedDeclaration": 1373, + "src": "2863:5:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", + "typeIdentifier": "t_contract$_IW12Fund_$1241", "typeString": "contract IW12Fund" } }, - "src": "2484:12:1", + "src": "2856:12:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", + "typeIdentifier": "t_contract$_IW12Fund_$1241", "typeString": "contract IW12Fund" } }, - "id": 279, + "id": 1477, "nodeType": "ExpressionStatement", - "src": "2484:12:1" + "src": "2856:12:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 1480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1478, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1285, + "src": "2878:5:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1479, + "name": "_rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1375, + "src": "2886:6:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "src": "2878:14:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "id": 1481, + "nodeType": "ExpressionStatement", + "src": "2878:14:5" } ] }, "documentation": null, - "id": 281, + "id": 1483, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -27386,49 +30471,49 @@ "arguments": [ { "argumentTypes": null, - "id": 188, + "id": 1378, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "1884:7:1", + "referencedDeclaration": 1357, + "src": "2216:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 189, + "id": 1379, "modifierName": { "argumentTypes": null, - "id": 187, + "id": 1377, "name": "Versionable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6509, - "src": "1872:11:1", + "referencedDeclaration": 9070, + "src": "2204:11:5", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Versionable_$6509_$", + "typeIdentifier": "t_type$_t_contract$_Versionable_$9070_$", "typeString": "type(contract Versionable)" } }, "nodeType": "ModifierInvocation", - "src": "1872:20:1" + "src": "2204:20:5" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 186, + "id": 1376, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 169, + "id": 1357, "name": "version", "nodeType": "VariableDeclaration", - "scope": 281, - "src": "1629:12:1", + "scope": 1483, + "src": "1938:12:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -27436,10 +30521,10 @@ "typeString": "uint256" }, "typeName": { - "id": 168, + "id": 1356, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1629:4:1", + "src": "1938:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -27450,11 +30535,11 @@ }, { "constant": false, - "id": 171, + "id": 1359, "name": "_originToken", "nodeType": "VariableDeclaration", - "scope": 281, - "src": "1651:20:1", + "scope": 1483, + "src": "1960:20:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -27462,10 +30547,10 @@ "typeString": "address" }, "typeName": { - "id": 170, + "id": 1358, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1651:7:1", + "src": "1960:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -27476,11 +30561,11 @@ }, { "constant": false, - "id": 173, + "id": 1361, "name": "_token", "nodeType": "VariableDeclaration", - "scope": 281, - "src": "1681:14:1", + "scope": 1483, + "src": "1990:14:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -27488,10 +30573,10 @@ "typeString": "address" }, "typeName": { - "id": 172, + "id": 1360, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1681:7:1", + "src": "1990:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -27502,11 +30587,11 @@ }, { "constant": false, - "id": 175, + "id": 1363, "name": "_price", "nodeType": "VariableDeclaration", - "scope": 281, - "src": "1705:11:1", + "scope": 1483, + "src": "2014:11:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -27514,10 +30599,10 @@ "typeString": "uint256" }, "typeName": { - "id": 174, + "id": 1362, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1705:4:1", + "src": "2014:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -27528,11 +30613,11 @@ }, { "constant": false, - "id": 177, + "id": 1365, "name": "_serviceWallet", "nodeType": "VariableDeclaration", - "scope": 281, - "src": "1726:22:1", + "scope": 1483, + "src": "2035:22:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -27540,10 +30625,10 @@ "typeString": "address" }, "typeName": { - "id": 176, + "id": 1364, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1726:7:1", + "src": "2035:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -27554,11 +30639,11 @@ }, { "constant": false, - "id": 179, + "id": 1367, "name": "_swap", "nodeType": "VariableDeclaration", - "scope": 281, - "src": "1758:13:1", + "scope": 1483, + "src": "2067:13:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -27566,10 +30651,10 @@ "typeString": "address" }, "typeName": { - "id": 178, + "id": 1366, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1758:7:1", + "src": "2067:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -27580,11 +30665,11 @@ }, { "constant": false, - "id": 181, + "id": 1369, "name": "_serviceFee", "nodeType": "VariableDeclaration", - "scope": 281, - "src": "1781:16:1", + "scope": 1483, + "src": "2090:16:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -27592,10 +30677,10 @@ "typeString": "uint256" }, "typeName": { - "id": 180, + "id": 1368, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1781:4:1", + "src": "2090:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -27606,11 +30691,11 @@ }, { "constant": false, - "id": 183, + "id": 1371, "name": "_WTokenSaleFeePercent", "nodeType": "VariableDeclaration", - "scope": 281, - "src": "1807:26:1", + "scope": 1483, + "src": "2116:26:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -27618,10 +30703,10 @@ "typeString": "uint256" }, "typeName": { - "id": 182, + "id": 1370, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1807:4:1", + "src": "2116:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -27632,71 +30717,99 @@ }, { "constant": false, - "id": 185, + "id": 1373, "name": "_fund", "nodeType": "VariableDeclaration", - "scope": 281, - "src": "1843:14:1", + "scope": 1483, + "src": "2152:14:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", + "typeIdentifier": "t_contract$_IW12Fund_$1241", "typeString": "contract IW12Fund" }, "typeName": { "contractScope": null, - "id": 184, + "id": 1372, "name": "IW12Fund", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4484, - "src": "1843:8:1", + "referencedDeclaration": 1241, + "src": "2152:8:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", + "typeIdentifier": "t_contract$_IW12Fund_$1241", "typeString": "contract IW12Fund" } }, "value": null, "visibility": "internal" + }, + { + "constant": false, + "id": 1375, + "name": "_rates", + "nodeType": "VariableDeclaration", + "scope": 1483, + "src": "2176:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + }, + "typeName": { + "contractScope": null, + "id": 1374, + "name": "IRates", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7015, + "src": "2176:6:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "value": null, + "visibility": "internal" } ], - "src": "1619:244:1" + "src": "1928:267:5" }, "payable": false, "returnParameters": { - "id": 190, + "id": 1380, "nodeType": "ParameterList", "parameters": [], - "src": "1904:0:1" + "src": "2236:0:5" }, - "scope": 1809, - "src": "1607:896:1", + "scope": 3168, + "src": "1916:983:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 289, + "id": 1491, "nodeType": "Block", - "src": "2562:37:1", + "src": "2958:37:5", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 286, + "id": 1488, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "2579:6:1", + "referencedDeclaration": 1300, + "src": "2975:6:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$108_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" } }, - "id": 287, + "id": 1489, "isConstant": false, "isLValue": true, "isPure": false, @@ -27704,21 +30817,21 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2579:13:1", + "src": "2975:13:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 285, - "id": 288, + "functionReturnParameters": 1487, + "id": 1490, "nodeType": "Return", - "src": "2572:20:1" + "src": "2968:20:5" } ] }, "documentation": null, - "id": 290, + "id": 1492, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -27726,23 +30839,23 @@ "name": "stagesLength", "nodeType": "FunctionDefinition", "parameters": { - "id": 282, + "id": 1484, "nodeType": "ParameterList", "parameters": [], - "src": "2530:2:1" + "src": "2926:2:5" }, "payable": false, "returnParameters": { - "id": 285, + "id": 1487, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 284, + "id": 1486, "name": "", "nodeType": "VariableDeclaration", - "scope": 290, - "src": "2556:4:1", + "scope": 1492, + "src": "2952:4:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -27750,10 +30863,10 @@ "typeString": "uint256" }, "typeName": { - "id": 283, + "id": 1485, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2556:4:1", + "src": "2952:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -27763,37 +30876,37 @@ "visibility": "internal" } ], - "src": "2555:6:1" + "src": "2951:6:5" }, - "scope": 1809, - "src": "2509:90:1", + "scope": 3168, + "src": "2905:90:5", "stateMutability": "view", "superFunction": null, "visibility": "external" }, { "body": { - "id": 298, + "id": 1500, "nodeType": "Block", - "src": "2662:41:1", + "src": "3058:41:5", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 295, + "id": 1497, "name": "milestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 143, - "src": "2679:10:1", + "referencedDeclaration": 1303, + "src": "3075:10:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$121_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Milestone_$1331_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" } }, - "id": 296, + "id": 1498, "isConstant": false, "isLValue": true, "isPure": false, @@ -27801,21 +30914,21 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2679:17:1", + "src": "3075:17:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 294, - "id": 297, + "functionReturnParameters": 1496, + "id": 1499, "nodeType": "Return", - "src": "2672:24:1" + "src": "3068:24:5" } ] }, "documentation": null, - "id": 299, + "id": 1501, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -27823,23 +30936,23 @@ "name": "milestonesLength", "nodeType": "FunctionDefinition", "parameters": { - "id": 291, + "id": 1493, "nodeType": "ParameterList", "parameters": [], - "src": "2630:2:1" + "src": "3026:2:5" }, "payable": false, "returnParameters": { - "id": 294, + "id": 1496, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 293, + "id": 1495, "name": "", "nodeType": "VariableDeclaration", - "scope": 299, - "src": "2656:4:1", + "scope": 1501, + "src": "3052:4:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -27847,10 +30960,10 @@ "typeString": "uint256" }, "typeName": { - "id": 292, + "id": 1494, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2656:4:1", + "src": "3052:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -27860,19 +30973,19 @@ "visibility": "internal" } ], - "src": "2655:6:1" + "src": "3051:6:5" }, - "scope": 1809, - "src": "2605:98:1", + "scope": 3168, + "src": "3001:98:5", "stateMutability": "view", - "superFunction": 4390, + "superFunction": 1167, "visibility": "external" }, { "body": { - "id": 342, + "id": 1544, "nodeType": "Block", - "src": "2808:289:1", + "src": "3204:289:5", "statements": [ { "expression": { @@ -27884,26 +30997,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 316, + "id": 1518, "name": "milestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 143, - "src": "2839:10:1", + "referencedDeclaration": 1303, + "src": "3235:10:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$121_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Milestone_$1331_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" } }, - "id": 318, + "id": 1520, "indexExpression": { "argumentTypes": null, - "id": 317, + "id": 1519, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 301, - "src": "2850:5:1", + "referencedDeclaration": 1503, + "src": "3246:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -27914,21 +31027,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2839:17:1", + "src": "3235:17:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$121_storage", + "typeIdentifier": "t_struct$_Milestone_$1331_storage", "typeString": "struct W12Crowdsale.Milestone storage ref" } }, - "id": 319, + "id": 1521, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "endDate", "nodeType": "MemberAccess", - "referencedDeclaration": 110, - "src": "2839:25:1", + "referencedDeclaration": 1320, + "src": "3235:25:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -27940,26 +31053,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 320, + "id": 1522, "name": "milestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 143, - "src": "2878:10:1", + "referencedDeclaration": 1303, + "src": "3274:10:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$121_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Milestone_$1331_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" } }, - "id": 322, + "id": 1524, "indexExpression": { "argumentTypes": null, - "id": 321, + "id": 1523, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 301, - "src": "2889:5:1", + "referencedDeclaration": 1503, + "src": "3285:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -27970,21 +31083,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2878:17:1", + "src": "3274:17:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$121_storage", + "typeIdentifier": "t_struct$_Milestone_$1331_storage", "typeString": "struct W12Crowdsale.Milestone storage ref" } }, - "id": 323, + "id": 1525, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "tranchePercent", "nodeType": "MemberAccess", - "referencedDeclaration": 112, - "src": "2878:32:1", + "referencedDeclaration": 1322, + "src": "3274:32:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -27996,26 +31109,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 324, + "id": 1526, "name": "milestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 143, - "src": "2924:10:1", + "referencedDeclaration": 1303, + "src": "3320:10:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$121_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Milestone_$1331_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" } }, - "id": 326, + "id": 1528, "indexExpression": { "argumentTypes": null, - "id": 325, + "id": 1527, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 301, - "src": "2935:5:1", + "referencedDeclaration": 1503, + "src": "3331:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -28026,21 +31139,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2924:17:1", + "src": "3320:17:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$121_storage", + "typeIdentifier": "t_struct$_Milestone_$1331_storage", "typeString": "struct W12Crowdsale.Milestone storage ref" } }, - "id": 327, + "id": 1529, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "voteEndDate", "nodeType": "MemberAccess", - "referencedDeclaration": 114, - "src": "2924:29:1", + "referencedDeclaration": 1324, + "src": "3320:29:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -28052,26 +31165,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 328, + "id": 1530, "name": "milestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 143, - "src": "2967:10:1", + "referencedDeclaration": 1303, + "src": "3363:10:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$121_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Milestone_$1331_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" } }, - "id": 330, + "id": 1532, "indexExpression": { "argumentTypes": null, - "id": 329, + "id": 1531, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 301, - "src": "2978:5:1", + "referencedDeclaration": 1503, + "src": "3374:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -28082,21 +31195,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2967:17:1", + "src": "3363:17:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$121_storage", + "typeIdentifier": "t_struct$_Milestone_$1331_storage", "typeString": "struct W12Crowdsale.Milestone storage ref" } }, - "id": 331, + "id": 1533, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "withdrawalWindow", "nodeType": "MemberAccess", - "referencedDeclaration": 116, - "src": "2967:34:1", + "referencedDeclaration": 1326, + "src": "3363:34:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -28108,26 +31221,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 332, + "id": 1534, "name": "milestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 143, - "src": "3015:10:1", + "referencedDeclaration": 1303, + "src": "3411:10:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$121_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Milestone_$1331_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" } }, - "id": 334, + "id": 1536, "indexExpression": { "argumentTypes": null, - "id": 333, + "id": 1535, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 301, - "src": "3026:5:1", + "referencedDeclaration": 1503, + "src": "3422:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -28138,21 +31251,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3015:17:1", + "src": "3411:17:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$121_storage", + "typeIdentifier": "t_struct$_Milestone_$1331_storage", "typeString": "struct W12Crowdsale.Milestone storage ref" } }, - "id": 335, + "id": 1537, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "name", "nodeType": "MemberAccess", - "referencedDeclaration": 118, - "src": "3015:22:1", + "referencedDeclaration": 1328, + "src": "3411:22:5", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" @@ -28164,26 +31277,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 336, + "id": 1538, "name": "milestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 143, - "src": "3051:10:1", + "referencedDeclaration": 1303, + "src": "3447:10:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$121_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Milestone_$1331_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" } }, - "id": 338, + "id": 1540, "indexExpression": { "argumentTypes": null, - "id": 337, + "id": 1539, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 301, - "src": "3062:5:1", + "referencedDeclaration": 1503, + "src": "3458:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -28194,49 +31307,49 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3051:17:1", + "src": "3447:17:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$121_storage", + "typeIdentifier": "t_struct$_Milestone_$1331_storage", "typeString": "struct W12Crowdsale.Milestone storage ref" } }, - "id": 339, + "id": 1541, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "description", "nodeType": "MemberAccess", - "referencedDeclaration": 120, - "src": "3051:29:1", + "referencedDeclaration": 1330, + "src": "3447:29:5", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } } ], - "id": 340, + "id": 1542, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "2825:265:1", + "src": "3221: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": 315, - "id": 341, + "functionReturnParameters": 1517, + "id": 1543, "nodeType": "Return", - "src": "2818:272:1" + "src": "3214:272:5" } ] }, "documentation": null, - "id": 343, + "id": 1545, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -28244,16 +31357,16 @@ "name": "getMilestone", "nodeType": "FunctionDefinition", "parameters": { - "id": 302, + "id": 1504, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 301, + "id": 1503, "name": "index", "nodeType": "VariableDeclaration", - "scope": 343, - "src": "2731:10:1", + "scope": 1545, + "src": "3127:10:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -28261,10 +31374,10 @@ "typeString": "uint256" }, "typeName": { - "id": 300, + "id": 1502, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2731:4:1", + "src": "3127:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -28274,20 +31387,20 @@ "visibility": "internal" } ], - "src": "2730:12:1" + "src": "3126:12:5" }, "payable": false, "returnParameters": { - "id": 315, + "id": 1517, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 304, + "id": 1506, "name": "", "nodeType": "VariableDeclaration", - "scope": 343, - "src": "2764:6:1", + "scope": 1545, + "src": "3160:6:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -28295,10 +31408,10 @@ "typeString": "uint32" }, "typeName": { - "id": 303, + "id": 1505, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "2764:6:1", + "src": "3160:6:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -28309,11 +31422,11 @@ }, { "constant": false, - "id": 306, + "id": 1508, "name": "", "nodeType": "VariableDeclaration", - "scope": 343, - "src": "2772:4:1", + "scope": 1545, + "src": "3168:4:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -28321,10 +31434,10 @@ "typeString": "uint256" }, "typeName": { - "id": 305, + "id": 1507, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2772:4:1", + "src": "3168:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -28335,11 +31448,11 @@ }, { "constant": false, - "id": 308, + "id": 1510, "name": "", "nodeType": "VariableDeclaration", - "scope": 343, - "src": "2778:6:1", + "scope": 1545, + "src": "3174:6:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -28347,10 +31460,10 @@ "typeString": "uint32" }, "typeName": { - "id": 307, + "id": 1509, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "2778:6:1", + "src": "3174:6:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -28361,11 +31474,11 @@ }, { "constant": false, - "id": 310, + "id": 1512, "name": "", "nodeType": "VariableDeclaration", - "scope": 343, - "src": "2786:6:1", + "scope": 1545, + "src": "3182:6:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -28373,10 +31486,10 @@ "typeString": "uint32" }, "typeName": { - "id": 309, + "id": 1511, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "2786:6:1", + "src": "3182:6:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -28387,11 +31500,11 @@ }, { "constant": false, - "id": 312, + "id": 1514, "name": "", "nodeType": "VariableDeclaration", - "scope": 343, - "src": "2794:5:1", + "scope": 1545, + "src": "3190:5:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -28399,10 +31512,10 @@ "typeString": "bytes" }, "typeName": { - "id": 311, + "id": 1513, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2794:5:1", + "src": "3190:5:5", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -28413,11 +31526,11 @@ }, { "constant": false, - "id": 314, + "id": 1516, "name": "", "nodeType": "VariableDeclaration", - "scope": 343, - "src": "2801:5:1", + "scope": 1545, + "src": "3197:5:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -28425,10 +31538,10 @@ "typeString": "bytes" }, "typeName": { - "id": 313, + "id": 1515, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2801:5:1", + "src": "3197:5:5", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -28438,19 +31551,19 @@ "visibility": "internal" } ], - "src": "2763:44:1" + "src": "3159:44:5" }, - "scope": 1809, - "src": "2709:388:1", + "scope": 3168, + "src": "3105:388:5", "stateMutability": "view", - "superFunction": 4352, + "superFunction": 1129, "visibility": "public" }, { "body": { - "id": 388, + "id": 1590, "nodeType": "Block", - "src": "3200:262:1", + "src": "3596:262:5", "statements": [ { "expression": { @@ -28462,26 +31575,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 362, + "id": 1564, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "3231:6:1", + "referencedDeclaration": 1300, + "src": "3627:6:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$108_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" } }, - "id": 364, + "id": 1566, "indexExpression": { "argumentTypes": null, - "id": 363, + "id": 1565, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 345, - "src": "3238:5:1", + "referencedDeclaration": 1547, + "src": "3634:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -28492,21 +31605,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3231:13:1", + "src": "3627:13:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$108_storage", + "typeIdentifier": "t_struct$_Stage_$1318_storage", "typeString": "struct W12Crowdsale.Stage storage ref" } }, - "id": 365, + "id": 1567, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "startDate", "nodeType": "MemberAccess", - "referencedDeclaration": 95, - "src": "3231:23:1", + "referencedDeclaration": 1305, + "src": "3627:23:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -28518,26 +31631,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 366, + "id": 1568, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "3268:6:1", + "referencedDeclaration": 1300, + "src": "3664:6:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$108_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" } }, - "id": 368, + "id": 1570, "indexExpression": { "argumentTypes": null, - "id": 367, + "id": 1569, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 345, - "src": "3275:5:1", + "referencedDeclaration": 1547, + "src": "3671:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -28548,21 +31661,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3268:13:1", + "src": "3664:13:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$108_storage", + "typeIdentifier": "t_struct$_Stage_$1318_storage", "typeString": "struct W12Crowdsale.Stage storage ref" } }, - "id": 369, + "id": 1571, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "endDate", "nodeType": "MemberAccess", - "referencedDeclaration": 97, - "src": "3268:21:1", + "referencedDeclaration": 1307, + "src": "3664:21:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -28574,26 +31687,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 370, + "id": 1572, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "3303:6:1", + "referencedDeclaration": 1300, + "src": "3699:6:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$108_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" } }, - "id": 372, + "id": 1574, "indexExpression": { "argumentTypes": null, - "id": 371, + "id": 1573, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 345, - "src": "3310:5:1", + "referencedDeclaration": 1547, + "src": "3706:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -28604,21 +31717,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3303:13:1", + "src": "3699:13:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$108_storage", + "typeIdentifier": "t_struct$_Stage_$1318_storage", "typeString": "struct W12Crowdsale.Stage storage ref" } }, - "id": 373, + "id": 1575, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "discount", "nodeType": "MemberAccess", - "referencedDeclaration": 99, - "src": "3303:22:1", + "referencedDeclaration": 1309, + "src": "3699:22:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -28630,26 +31743,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 374, + "id": 1576, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "3339:6:1", + "referencedDeclaration": 1300, + "src": "3735:6:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$108_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" } }, - "id": 376, + "id": 1578, "indexExpression": { "argumentTypes": null, - "id": 375, + "id": 1577, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 345, - "src": "3346:5:1", + "referencedDeclaration": 1547, + "src": "3742:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -28660,21 +31773,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3339:13:1", + "src": "3735:13:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$108_storage", + "typeIdentifier": "t_struct$_Stage_$1318_storage", "typeString": "struct W12Crowdsale.Stage storage ref" } }, - "id": 377, + "id": 1579, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "vesting", "nodeType": "MemberAccess", - "referencedDeclaration": 101, - "src": "3339:21:1", + "referencedDeclaration": 1311, + "src": "3735:21:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -28686,26 +31799,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 378, + "id": 1580, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "3374:6:1", + "referencedDeclaration": 1300, + "src": "3770:6:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$108_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" } }, - "id": 380, + "id": 1582, "indexExpression": { "argumentTypes": null, - "id": 379, + "id": 1581, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 345, - "src": "3381:5:1", + "referencedDeclaration": 1547, + "src": "3777:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -28716,21 +31829,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3374:13:1", + "src": "3770:13:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$108_storage", + "typeIdentifier": "t_struct$_Stage_$1318_storage", "typeString": "struct W12Crowdsale.Stage storage ref" } }, - "id": 381, + "id": 1583, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "volumeBoundaries", "nodeType": "MemberAccess", - "referencedDeclaration": 104, - "src": "3374:30:1", + "referencedDeclaration": 1314, + "src": "3770:30:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" @@ -28742,26 +31855,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 382, + "id": 1584, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "3418:6:1", + "referencedDeclaration": 1300, + "src": "3814:6:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$108_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" } }, - "id": 384, + "id": 1586, "indexExpression": { "argumentTypes": null, - "id": 383, + "id": 1585, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 345, - "src": "3425:5:1", + "referencedDeclaration": 1547, + "src": "3821:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -28772,49 +31885,49 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3418:13:1", + "src": "3814:13:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$108_storage", + "typeIdentifier": "t_struct$_Stage_$1318_storage", "typeString": "struct W12Crowdsale.Stage storage ref" } }, - "id": 385, + "id": 1587, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "volumeBonuses", "nodeType": "MemberAccess", - "referencedDeclaration": 107, - "src": "3418:27:1", + "referencedDeclaration": 1317, + "src": "3814:27:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } } ], - "id": 386, + "id": 1588, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "3217:238:1", + "src": "3613: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": 361, - "id": 387, + "functionReturnParameters": 1563, + "id": 1589, "nodeType": "Return", - "src": "3210:245:1" + "src": "3606:245:5" } ] }, "documentation": null, - "id": 389, + "id": 1591, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -28822,16 +31935,16 @@ "name": "getStage", "nodeType": "FunctionDefinition", "parameters": { - "id": 346, + "id": 1548, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 345, + "id": 1547, "name": "index", "nodeType": "VariableDeclaration", - "scope": 389, - "src": "3121:10:1", + "scope": 1591, + "src": "3517:10:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -28839,10 +31952,10 @@ "typeString": "uint256" }, "typeName": { - "id": 344, + "id": 1546, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3121:4:1", + "src": "3517:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -28852,20 +31965,20 @@ "visibility": "internal" } ], - "src": "3120:12:1" + "src": "3516:12:5" }, "payable": false, "returnParameters": { - "id": 361, + "id": 1563, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 348, + "id": 1550, "name": "", "nodeType": "VariableDeclaration", - "scope": 389, - "src": "3154:6:1", + "scope": 1591, + "src": "3550:6:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -28873,10 +31986,10 @@ "typeString": "uint32" }, "typeName": { - "id": 347, + "id": 1549, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "3154:6:1", + "src": "3550:6:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -28887,11 +32000,11 @@ }, { "constant": false, - "id": 350, + "id": 1552, "name": "", "nodeType": "VariableDeclaration", - "scope": 389, - "src": "3162:6:1", + "scope": 1591, + "src": "3558:6:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -28899,10 +32012,10 @@ "typeString": "uint32" }, "typeName": { - "id": 349, + "id": 1551, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "3162:6:1", + "src": "3558:6:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -28913,11 +32026,11 @@ }, { "constant": false, - "id": 352, + "id": 1554, "name": "", "nodeType": "VariableDeclaration", - "scope": 389, - "src": "3170:4:1", + "scope": 1591, + "src": "3566:4:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -28925,10 +32038,10 @@ "typeString": "uint256" }, "typeName": { - "id": 351, + "id": 1553, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3170:4:1", + "src": "3566:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -28939,11 +32052,11 @@ }, { "constant": false, - "id": 354, + "id": 1556, "name": "", "nodeType": "VariableDeclaration", - "scope": 389, - "src": "3176:6:1", + "scope": 1591, + "src": "3572:6:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -28951,10 +32064,10 @@ "typeString": "uint32" }, "typeName": { - "id": 353, + "id": 1555, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "3176:6:1", + "src": "3572:6:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -28965,11 +32078,11 @@ }, { "constant": false, - "id": 357, + "id": 1559, "name": "", "nodeType": "VariableDeclaration", - "scope": 389, - "src": "3184:6:1", + "scope": 1591, + "src": "3580:6:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -28978,19 +32091,19 @@ }, "typeName": { "baseType": { - "id": 355, + "id": 1557, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3184:4:1", + "src": "3580:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 356, + "id": 1558, "length": null, "nodeType": "ArrayTypeName", - "src": "3184:6:1", + "src": "3580:6:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -29001,11 +32114,11 @@ }, { "constant": false, - "id": 360, + "id": 1562, "name": "", "nodeType": "VariableDeclaration", - "scope": 389, - "src": "3192:6:1", + "scope": 1591, + "src": "3588:6:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -29014,19 +32127,19 @@ }, "typeName": { "baseType": { - "id": 358, + "id": 1560, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3192:4:1", + "src": "3588:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 359, + "id": 1561, "length": null, "nodeType": "ArrayTypeName", - "src": "3192:6:1", + "src": "3588:6:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -29036,19 +32149,19 @@ "visibility": "internal" } ], - "src": "3153:46:1" + "src": "3549:46:5" }, - "scope": 1809, - "src": "3103:359:1", + "scope": 3168, + "src": "3499:359:5", "stateMutability": "view", - "superFunction": 4371, + "superFunction": 1148, "visibility": "public" }, { "body": { - "id": 409, + "id": 1611, "nodeType": "Block", - "src": "3521:94:1", + "src": "3917:94:5", "statements": [ { "expression": { @@ -29060,7 +32173,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 398, + "id": 1600, "isConstant": false, "isLValue": false, "isPure": false, @@ -29069,18 +32182,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 395, + "id": 1597, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "3539:6:1", + "referencedDeclaration": 1300, + "src": "3935:6:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$108_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" } }, - "id": 396, + "id": 1598, "isConstant": false, "isLValue": true, "isPure": false, @@ -29088,7 +32201,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3539:13:1", + "src": "3935:13:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -29099,14 +32212,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 397, + "id": 1599, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3555:1:1", + "src": "3951:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -29114,7 +32227,7 @@ }, "value": "0" }, - "src": "3539:17:1", + "src": "3935:17:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -29128,21 +32241,21 @@ "typeString": "bool" } ], - "id": 394, + "id": 1596, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "3531:7:1", + "referencedDeclaration": 10045, + "src": "3927:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 399, + "id": 1601, "isConstant": false, "isLValue": false, "isPure": false, @@ -29150,15 +32263,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3531:26:1", + "src": "3927:26:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 400, + "id": 1602, "nodeType": "ExpressionStatement", - "src": "3531:26:1" + "src": "3927:26:5" }, { "expression": { @@ -29167,25 +32280,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 401, + "id": 1603, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "3575:6:1", + "referencedDeclaration": 1300, + "src": "3971:6:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$108_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" } }, - "id": 406, + "id": 1608, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 405, + "id": 1607, "isConstant": false, "isLValue": false, "isPure": false, @@ -29194,18 +32307,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 402, + "id": 1604, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "3582:6:1", + "referencedDeclaration": 1300, + "src": "3978:6:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$108_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" } }, - "id": 403, + "id": 1605, "isConstant": false, "isLValue": true, "isPure": false, @@ -29213,7 +32326,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3582:13:1", + "src": "3978:13:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -29224,14 +32337,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 404, + "id": 1606, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3598:1:1", + "src": "3994:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -29239,7 +32352,7 @@ }, "value": "1" }, - "src": "3582:17:1", + "src": "3978:17:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -29250,35 +32363,35 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3575:25:1", + "src": "3971:25:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$108_storage", + "typeIdentifier": "t_struct$_Stage_$1318_storage", "typeString": "struct W12Crowdsale.Stage storage ref" } }, - "id": 407, + "id": 1609, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "endDate", "nodeType": "MemberAccess", - "referencedDeclaration": 97, - "src": "3575:33:1", + "referencedDeclaration": 1307, + "src": "3971:33:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "functionReturnParameters": 393, - "id": 408, + "functionReturnParameters": 1595, + "id": 1610, "nodeType": "Return", - "src": "3568:40:1" + "src": "3964:40:5" } ] }, "documentation": null, - "id": 410, + "id": 1612, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -29286,23 +32399,23 @@ "name": "getEndDate", "nodeType": "FunctionDefinition", "parameters": { - "id": 390, + "id": 1592, "nodeType": "ParameterList", "parameters": [], - "src": "3487:2:1" + "src": "3883:2:5" }, "payable": false, "returnParameters": { - "id": 393, + "id": 1595, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 392, + "id": 1594, "name": "", "nodeType": "VariableDeclaration", - "scope": 410, - "src": "3513:6:1", + "scope": 1612, + "src": "3909:6:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -29310,10 +32423,10 @@ "typeString": "uint32" }, "typeName": { - "id": 391, + "id": 1593, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "3513:6:1", + "src": "3909:6:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -29323,19 +32436,19 @@ "visibility": "internal" } ], - "src": "3512:8:1" + "src": "3908:8:5" }, - "scope": 1809, - "src": "3468:147:1", + "scope": 3168, + "src": "3864:147:5", "stateMutability": "view", "superFunction": null, "visibility": "external" }, { "body": { - "id": 449, + "id": 1651, "nodeType": "Block", - "src": "3782:266:1", + "src": "4178:266:5", "statements": [ { "condition": { @@ -29344,7 +32457,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 424, + "id": 1626, "isConstant": false, "isLValue": false, "isPure": false, @@ -29355,7 +32468,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 420, + "id": 1622, "isConstant": false, "isLValue": false, "isPure": false, @@ -29364,18 +32477,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 417, + "id": 1619, "name": "milestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 143, - "src": "3795:10:1", + "referencedDeclaration": 1303, + "src": "4191:10:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$121_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Milestone_$1331_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" } }, - "id": 418, + "id": 1620, "isConstant": false, "isLValue": true, "isPure": false, @@ -29383,7 +32496,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3795:17:1", + "src": "4191:17:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -29394,14 +32507,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 419, + "id": 1621, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3816:1:1", + "src": "4212:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -29409,7 +32522,7 @@ }, "value": "0" }, - "src": "3795:22:1", + "src": "4191:22:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -29419,7 +32532,7 @@ "operator": "||", "rightExpression": { "argumentTypes": null, - "id": 423, + "id": 1625, "isConstant": false, "isLValue": false, "isPure": false, @@ -29427,24 +32540,24 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "3821:10:1", + "src": "4217:10:5", "subExpression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 421, + "id": 1623, "name": "isEnded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1759, - "src": "3822:7:1", + "referencedDeclaration": 3125, + "src": "4218:7:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", "typeString": "function () view returns (bool)" } }, - "id": 422, + "id": 1624, "isConstant": false, "isLValue": false, "isPure": false, @@ -29452,7 +32565,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3822:9:1", + "src": "4218:9:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -29463,40 +32576,40 @@ "typeString": "bool" } }, - "src": "3795:36:1", + "src": "4191:36:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 426, + "id": 1628, "nodeType": "IfStatement", - "src": "3792:48:1", + "src": "4188:48:5", "trueBody": { "expression": null, - "functionReturnParameters": 416, - "id": 425, + "functionReturnParameters": 1618, + "id": 1627, "nodeType": "Return", - "src": "3833:7:1" + "src": "4229:7:5" } }, { "expression": { "argumentTypes": null, - "id": 429, + "id": 1631, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 427, + "id": 1629, "name": "found", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "3850:5:1", + "referencedDeclaration": 1617, + "src": "4246:5:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -29507,14 +32620,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 428, + "id": 1630, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3858:4:1", + "src": "4254:4:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -29522,26 +32635,26 @@ }, "value": "true" }, - "src": "3850:12:1", + "src": "4246:12:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 430, + "id": 1632, "nodeType": "ExpressionStatement", - "src": "3850:12:1" + "src": "4246:12:5" }, { "body": { - "id": 447, + "id": 1649, "nodeType": "Block", - "src": "4010:32:1", + "src": "4406:32:5", "statements": [ { "expression": { "argumentTypes": null, - "id": 445, + "id": 1647, "isConstant": false, "isLValue": false, "isPure": false, @@ -29549,15 +32662,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "4024:7:1", + "src": "4420:7:5", "subExpression": { "argumentTypes": null, - "id": 444, + "id": 1646, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 413, - "src": "4024:5:1", + "referencedDeclaration": 1615, + "src": "4420:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -29568,9 +32681,9 @@ "typeString": "uint256" } }, - "id": 446, + "id": 1648, "nodeType": "ExpressionStatement", - "src": "4024:7:1" + "src": "4420:7:5" } ] }, @@ -29580,7 +32693,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 443, + "id": 1645, "isConstant": false, "isLValue": false, "isPure": false, @@ -29591,19 +32704,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 436, + "id": 1638, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 431, + "id": 1633, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 413, - "src": "3934:5:1", + "referencedDeclaration": 1615, + "src": "4330:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -29617,7 +32730,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 435, + "id": 1637, "isConstant": false, "isLValue": false, "isPure": false, @@ -29626,18 +32739,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 432, + "id": 1634, "name": "milestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 143, - "src": "3942:10:1", + "referencedDeclaration": 1303, + "src": "4338:10:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$121_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Milestone_$1331_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" } }, - "id": 433, + "id": 1635, "isConstant": false, "isLValue": true, "isPure": false, @@ -29645,7 +32758,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3942:17:1", + "src": "4338:17:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -29656,14 +32769,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 434, + "id": 1636, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3962:1:1", + "src": "4358:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -29671,13 +32784,13 @@ }, "value": "1" }, - "src": "3942:21:1", + "src": "4338:21:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3934:29:1", + "src": "4330:29:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -29691,19 +32804,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 442, + "id": 1644, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 437, + "id": 1639, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7296, - "src": "3967:3:1", + "referencedDeclaration": 10044, + "src": "4363:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -29717,26 +32830,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 438, + "id": 1640, "name": "milestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 143, - "src": "3974:10:1", + "referencedDeclaration": 1303, + "src": "4370:10:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$121_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Milestone_$1331_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" } }, - "id": 440, + "id": 1642, "indexExpression": { "argumentTypes": null, - "id": 439, + "id": 1641, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 413, - "src": "3985:5:1", + "referencedDeclaration": 1615, + "src": "4381:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -29747,46 +32860,46 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3974:17:1", + "src": "4370:17:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$121_storage", + "typeIdentifier": "t_struct$_Milestone_$1331_storage", "typeString": "struct W12Crowdsale.Milestone storage ref" } }, - "id": 441, + "id": 1643, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "withdrawalWindow", "nodeType": "MemberAccess", - "referencedDeclaration": 116, - "src": "3974:34:1", + "referencedDeclaration": 1326, + "src": "4370:34:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "3967:41:1", + "src": "4363:41:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3934:74:1", + "src": "4330:74:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 448, + "id": 1650, "nodeType": "WhileStatement", - "src": "3928:114:1" + "src": "4324:114:5" } ] }, "documentation": "@dev Returns index of active milestone or last milestone", - "id": 450, + "id": 1652, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -29794,23 +32907,23 @@ "name": "getCurrentMilestoneIndex", "nodeType": "FunctionDefinition", "parameters": { - "id": 411, + "id": 1613, "nodeType": "ParameterList", "parameters": [], - "src": "3734:2:1" + "src": "4130:2:5" }, "payable": false, "returnParameters": { - "id": 416, + "id": 1618, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 413, + "id": 1615, "name": "index", "nodeType": "VariableDeclaration", - "scope": 450, - "src": "3758:10:1", + "scope": 1652, + "src": "4154:10:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -29818,10 +32931,10 @@ "typeString": "uint256" }, "typeName": { - "id": 412, + "id": 1614, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3758:4:1", + "src": "4154:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -29832,11 +32945,11 @@ }, { "constant": false, - "id": 415, + "id": 1617, "name": "found", "nodeType": "VariableDeclaration", - "scope": 450, - "src": "3770:10:1", + "scope": 1652, + "src": "4166:10:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -29844,10 +32957,10 @@ "typeString": "bool" }, "typeName": { - "id": 414, + "id": 1616, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3770:4:1", + "src": "4166:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -29857,19 +32970,19 @@ "visibility": "internal" } ], - "src": "3757:24:1" + "src": "4153:24:5" }, - "scope": 1809, - "src": "3701:347:1", + "scope": 3168, + "src": "4097:347:5", "stateMutability": "view", - "superFunction": 4378, + "superFunction": 1155, "visibility": "public" }, { "body": { - "id": 478, + "id": 1680, "nodeType": "Block", - "src": "4132:127:1", + "src": "4528:127:5", "statements": [ { "condition": { @@ -29878,7 +32991,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 464, + "id": 1666, "isConstant": false, "isLValue": false, "isPure": false, @@ -29889,7 +33002,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 460, + "id": 1662, "isConstant": false, "isLValue": false, "isPure": false, @@ -29898,18 +33011,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 457, + "id": 1659, "name": "milestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 143, - "src": "4146:10:1", + "referencedDeclaration": 1303, + "src": "4542:10:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$121_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Milestone_$1331_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" } }, - "id": 458, + "id": 1660, "isConstant": false, "isLValue": true, "isPure": false, @@ -29917,7 +33030,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4146:17:1", + "src": "4542:17:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -29928,14 +33041,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 459, + "id": 1661, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4167:1:1", + "src": "4563:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -29943,7 +33056,7 @@ }, "value": "0" }, - "src": "4146:22:1", + "src": "4542:22:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -29953,7 +33066,7 @@ "operator": "||", "rightExpression": { "argumentTypes": null, - "id": 463, + "id": 1665, "isConstant": false, "isLValue": false, "isPure": false, @@ -29961,24 +33074,24 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "4172:10:1", + "src": "4568:10:5", "subExpression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 461, + "id": 1663, "name": "isEnded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1759, - "src": "4173:7:1", + "referencedDeclaration": 3125, + "src": "4569:7:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", "typeString": "function () view returns (bool)" } }, - "id": 462, + "id": 1664, "isConstant": false, "isLValue": false, "isPure": false, @@ -29986,7 +33099,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4173:9:1", + "src": "4569:9:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -29997,40 +33110,40 @@ "typeString": "bool" } }, - "src": "4146:36:1", + "src": "4542:36:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 466, + "id": 1668, "nodeType": "IfStatement", - "src": "4142:49:1", + "src": "4538:49:5", "trueBody": { "expression": null, - "functionReturnParameters": 456, - "id": 465, + "functionReturnParameters": 1658, + "id": 1667, "nodeType": "Return", - "src": "4184:7:1" + "src": "4580:7:5" } }, { "expression": { "argumentTypes": null, - "id": 469, + "id": 1671, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 467, + "id": 1669, "name": "found", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 455, - "src": "4201:5:1", + "referencedDeclaration": 1657, + "src": "4597:5:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -30041,14 +33154,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 468, + "id": 1670, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "4209:4:1", + "src": "4605:4:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -30056,32 +33169,32 @@ }, "value": "true" }, - "src": "4201:12:1", + "src": "4597:12:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 470, + "id": 1672, "nodeType": "ExpressionStatement", - "src": "4201:12:1" + "src": "4597:12:5" }, { "expression": { "argumentTypes": null, - "id": 476, + "id": 1678, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 471, + "id": 1673, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 453, - "src": "4223:5:1", + "referencedDeclaration": 1655, + "src": "4619:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -30095,7 +33208,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 475, + "id": 1677, "isConstant": false, "isLValue": false, "isPure": false, @@ -30104,18 +33217,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 472, + "id": 1674, "name": "milestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 143, - "src": "4231:10:1", + "referencedDeclaration": 1303, + "src": "4627:10:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$121_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Milestone_$1331_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" } }, - "id": 473, + "id": 1675, "isConstant": false, "isLValue": true, "isPure": false, @@ -30123,7 +33236,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4231:17:1", + "src": "4627:17:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -30134,14 +33247,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 474, + "id": 1676, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4251:1:1", + "src": "4647:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -30149,26 +33262,26 @@ }, "value": "1" }, - "src": "4231:21:1", + "src": "4627:21:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4223:29:1", + "src": "4619:29:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 477, + "id": 1679, "nodeType": "ExpressionStatement", - "src": "4223:29:1" + "src": "4619:29:5" } ] }, "documentation": null, - "id": 479, + "id": 1681, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -30176,23 +33289,23 @@ "name": "getLastMilestoneIndex", "nodeType": "FunctionDefinition", "parameters": { - "id": 451, + "id": 1653, "nodeType": "ParameterList", "parameters": [], - "src": "4084:2:1" + "src": "4480:2:5" }, "payable": false, "returnParameters": { - "id": 456, + "id": 1658, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 453, + "id": 1655, "name": "index", "nodeType": "VariableDeclaration", - "scope": 479, - "src": "4108:10:1", + "scope": 1681, + "src": "4504:10:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -30200,10 +33313,10 @@ "typeString": "uint256" }, "typeName": { - "id": 452, + "id": 1654, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4108:4:1", + "src": "4504:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -30214,11 +33327,11 @@ }, { "constant": false, - "id": 455, + "id": 1657, "name": "found", "nodeType": "VariableDeclaration", - "scope": 479, - "src": "4120:10:1", + "scope": 1681, + "src": "4516:10:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -30226,10 +33339,10 @@ "typeString": "bool" }, "typeName": { - "id": 454, + "id": 1656, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "4120:4:1", + "src": "4516:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -30239,19 +33352,19 @@ "visibility": "internal" } ], - "src": "4107:24:1" + "src": "4503:24:5" }, - "scope": 1809, - "src": "4054:205:1", + "scope": 3168, + "src": "4450:205:5", "stateMutability": "view", - "superFunction": 4385, + "superFunction": 1162, "visibility": "public" }, { "body": { - "id": 508, + "id": 1710, "nodeType": "Block", - "src": "4336:148:1", + "src": "4732:148:5", "statements": [ { "expression": { @@ -30263,19 +33376,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 489, + "id": 1691, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 487, + "id": 1689, "name": "_price", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 481, - "src": "4354:6:1", + "referencedDeclaration": 1683, + "src": "4750:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -30286,14 +33399,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 488, + "id": 1690, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4363:1:1", + "src": "4759:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -30301,7 +33414,7 @@ }, "value": "0" }, - "src": "4354:10:1", + "src": "4750:10:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -30315,21 +33428,21 @@ "typeString": "bool" } ], - "id": 486, + "id": 1688, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "4346:7:1", + "referencedDeclaration": 10045, + "src": "4742:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 490, + "id": 1692, "isConstant": false, "isLValue": false, "isPure": false, @@ -30337,15 +33450,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4346:19:1", + "src": "4742:19:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 491, + "id": 1693, "nodeType": "ExpressionStatement", - "src": "4346:19:1" + "src": "4742:19:5" }, { "expression": { @@ -30357,19 +33470,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 497, + "id": 1699, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 493, + "id": 1695, "name": "_serviceWallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 483, - "src": "4383:14:1", + "referencedDeclaration": 1685, + "src": "4779:14:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -30383,14 +33496,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 495, + "id": 1697, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4409:1:1", + "src": "4805:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -30406,20 +33519,20 @@ "typeString": "int_const 0" } ], - "id": 494, + "id": 1696, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4401:7:1", + "src": "4797:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 496, + "id": 1698, "isConstant": false, "isLValue": false, "isPure": true, @@ -30427,13 +33540,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4401:10:1", + "src": "4797:10:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4383:28:1", + "src": "4779:28:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -30447,21 +33560,21 @@ "typeString": "bool" } ], - "id": 492, + "id": 1694, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "4375:7:1", + "referencedDeclaration": 10045, + "src": "4771:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 498, + "id": 1700, "isConstant": false, "isLValue": false, "isPure": false, @@ -30469,32 +33582,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4375:37:1", + "src": "4771:37:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 499, + "id": 1701, "nodeType": "ExpressionStatement", - "src": "4375:37:1" + "src": "4771:37:5" }, { "expression": { "argumentTypes": null, - "id": 502, + "id": 1704, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 500, + "id": 1702, "name": "price", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 127, - "src": "4423:5:1", + "referencedDeclaration": 1287, + "src": "4819:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -30504,43 +33617,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 501, + "id": 1703, "name": "_price", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 481, - "src": "4431:6:1", + "referencedDeclaration": 1683, + "src": "4827:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4423:14:1", + "src": "4819:14:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 503, + "id": 1705, "nodeType": "ExpressionStatement", - "src": "4423:14:1" + "src": "4819:14:5" }, { "expression": { "argumentTypes": null, - "id": 506, + "id": 1708, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 504, + "id": 1706, "name": "serviceWallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 133, - "src": "4447:13:1", + "referencedDeclaration": 1293, + "src": "4843:13:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -30550,31 +33663,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 505, + "id": 1707, "name": "_serviceWallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 483, - "src": "4463:14:1", + "referencedDeclaration": 1685, + "src": "4859:14:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4447:30:1", + "src": "4843:30:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 507, + "id": 1709, "nodeType": "ExpressionStatement", - "src": "4447:30:1" + "src": "4843:30:5" } ] }, "documentation": null, - "id": 509, + "id": 1711, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -30582,16 +33695,16 @@ "name": "__setParameters", "nodeType": "FunctionDefinition", "parameters": { - "id": 484, + "id": 1686, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 481, + "id": 1683, "name": "_price", "nodeType": "VariableDeclaration", - "scope": 509, - "src": "4290:11:1", + "scope": 1711, + "src": "4686:11:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -30599,10 +33712,10 @@ "typeString": "uint256" }, "typeName": { - "id": 480, + "id": 1682, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4290:4:1", + "src": "4686:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -30613,11 +33726,11 @@ }, { "constant": false, - "id": 483, + "id": 1685, "name": "_serviceWallet", "nodeType": "VariableDeclaration", - "scope": 509, - "src": "4303:22:1", + "scope": 1711, + "src": "4699:22:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -30625,10 +33738,10 @@ "typeString": "address" }, "typeName": { - "id": 482, + "id": 1684, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4303:7:1", + "src": "4699:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -30638,26 +33751,26 @@ "visibility": "internal" } ], - "src": "4289:37:1" + "src": "4685:37:5" }, "payable": false, "returnParameters": { - "id": 485, + "id": 1687, "nodeType": "ParameterList", "parameters": [], - "src": "4336:0:1" + "src": "4732:0:5" }, - "scope": 1809, - "src": "4265:219:1", + "scope": 3168, + "src": "4661:219:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 523, + "id": 1725, "nodeType": "Block", - "src": "4561:55:1", + "src": "4957:55:5", "statements": [ { "expression": { @@ -30665,12 +33778,12 @@ "arguments": [ { "argumentTypes": null, - "id": 519, + "id": 1721, "name": "_price", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 511, - "src": "4587:6:1", + "referencedDeclaration": 1713, + "src": "4983:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -30678,12 +33791,12 @@ }, { "argumentTypes": null, - "id": 520, + "id": 1722, "name": "serviceWallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 133, - "src": "4595:13:1", + "referencedDeclaration": 1293, + "src": "4991:13:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -30701,18 +33814,18 @@ "typeString": "address" } ], - "id": 518, + "id": 1720, "name": "__setParameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 509, - "src": "4571:15:1", + "referencedDeclaration": 1711, + "src": "4967:15:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$__$", "typeString": "function (uint256,address)" } }, - "id": 521, + "id": 1723, "isConstant": false, "isLValue": false, "isPure": false, @@ -30720,76 +33833,76 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4571:38:1", + "src": "4967:38:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 522, + "id": 1724, "nodeType": "ExpressionStatement", - "src": "4571:38:1" + "src": "4967:38:5" } ] }, "documentation": null, - "id": 524, + "id": 1726, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 514, + "id": 1716, "modifierName": { "argumentTypes": null, - "id": 513, + "id": 1715, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6888, - "src": "4535:9:1", + "referencedDeclaration": 9636, + "src": "4931:9:5", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4535:9:1" + "src": "4931:9:5" }, { "arguments": null, - "id": 516, + "id": 1718, "modifierName": { "argumentTypes": null, - "id": 515, + "id": 1717, "name": "beforeSaleStart", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1798, - "src": "4545:15:1", + "referencedDeclaration": 3157, + "src": "4941:15:5", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4545:15:1" + "src": "4941:15:5" } ], "name": "setParameters", "nodeType": "FunctionDefinition", "parameters": { - "id": 512, + "id": 1714, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 511, + "id": 1713, "name": "_price", "nodeType": "VariableDeclaration", - "scope": 524, - "src": "4513:11:1", + "scope": 1726, + "src": "4909:11:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -30797,10 +33910,10 @@ "typeString": "uint256" }, "typeName": { - "id": 510, + "id": 1712, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4513:4:1", + "src": "4909:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -30810,26 +33923,26 @@ "visibility": "internal" } ], - "src": "4512:13:1" + "src": "4908:13:5" }, "payable": false, "returnParameters": { - "id": 517, + "id": 1719, "nodeType": "ParameterList", "parameters": [], - "src": "4561:0:1" + "src": "4957:0:5" }, - "scope": 1809, - "src": "4490:126:1", + "scope": 3168, + "src": "4886:126:5", "stateMutability": "nonpayable", - "superFunction": 4309, + "superFunction": 1083, "visibility": "external" }, { "body": { - "id": 607, + "id": 1847, "nodeType": "Block", - "src": "4982:740:1", + "src": "5416:1015:5", "statements": [ { "expression": { @@ -30841,7 +33954,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 553, + "id": 1758, "isConstant": false, "isLValue": false, "isPure": false, @@ -30850,18 +33963,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 550, + "id": 1755, "name": "parametersOfStages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "5049:18:1", + "referencedDeclaration": 1731, + "src": "5483:18:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$6_calldata_$dyn_calldata_ptr", "typeString": "uint256[6] calldata[] calldata" } }, - "id": 551, + "id": 1756, "isConstant": false, "isLValue": false, "isPure": false, @@ -30869,7 +33982,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5049:25:1", + "src": "5483:25:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -30880,14 +33993,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 552, + "id": 1757, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5078:1:1", + "src": "5512:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -30895,7 +34008,7 @@ }, "value": "0" }, - "src": "5049:30:1", + "src": "5483:30:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -30909,21 +34022,21 @@ "typeString": "bool" } ], - "id": 549, + "id": 1754, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "5041:7:1", + "referencedDeclaration": 10045, + "src": "5475:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 554, + "id": 1759, "isConstant": false, "isLValue": false, "isPure": false, @@ -30931,15 +34044,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5041:39:1", + "src": "5475:39:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 555, + "id": 1760, "nodeType": "ExpressionStatement", - "src": "5041:39:1" + "src": "5475:39:5" }, { "expression": { @@ -30951,7 +34064,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 563, + "id": 1768, "isConstant": false, "isLValue": false, "isPure": false, @@ -30960,18 +34073,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 557, + "id": 1762, "name": "parametersOfStages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "5098:18:1", + "referencedDeclaration": 1731, + "src": "5532:18:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$6_calldata_$dyn_calldata_ptr", "typeString": "uint256[6] calldata[] calldata" } }, - "id": 558, + "id": 1763, "isConstant": false, "isLValue": false, "isPure": false, @@ -30979,7 +34092,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5098:25:1", + "src": "5532:25:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -30992,7 +34105,7 @@ "arguments": [ { "argumentTypes": null, - "id": 561, + "id": 1766, "isConstant": false, "isLValue": false, "isPure": true, @@ -31000,18 +34113,18 @@ "nodeType": "UnaryOperation", "operator": "-", "prefix": true, - "src": "5133:3:1", + "src": "5567:3:5", "subExpression": { "argumentTypes": null, "hexValue": "31", - "id": 560, + "id": 1765, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5135:1:1", + "src": "5569:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -31032,20 +34145,20 @@ "typeString": "int_const -1" } ], - "id": 559, + "id": 1764, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "5127:5:1", + "src": "5561:5:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": "uint8" }, - "id": 562, + "id": 1767, "isConstant": false, "isLValue": false, "isPure": true, @@ -31053,13 +34166,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5127:10:1", + "src": "5561:10:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "5098:39:1", + "src": "5532:39:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -31073,21 +34186,21 @@ "typeString": "bool" } ], - "id": 556, + "id": 1761, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "5090:7:1", + "referencedDeclaration": 10045, + "src": "5524:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 564, + "id": 1769, "isConstant": false, "isLValue": false, "isPure": false, @@ -31095,15 +34208,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5090:48:1", + "src": "5524:48:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 565, + "id": 1770, "nodeType": "ExpressionStatement", - "src": "5090:48:1" + "src": "5524:48:5" }, { "expression": { @@ -31115,7 +34228,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 573, + "id": 1778, "isConstant": false, "isLValue": false, "isPure": false, @@ -31124,18 +34237,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 567, + "id": 1772, "name": "parametersOfMilestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 537, - "src": "5210:22:1", + "referencedDeclaration": 1739, + "src": "5644:22:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$4_calldata_$dyn_calldata_ptr", "typeString": "uint256[4] calldata[] calldata" } }, - "id": 568, + "id": 1773, "isConstant": false, "isLValue": false, "isPure": false, @@ -31143,7 +34256,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5210:29:1", + "src": "5644:29:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -31156,7 +34269,7 @@ "arguments": [ { "argumentTypes": null, - "id": 571, + "id": 1776, "isConstant": false, "isLValue": false, "isPure": true, @@ -31164,18 +34277,18 @@ "nodeType": "UnaryOperation", "operator": "-", "prefix": true, - "src": "5249:3:1", + "src": "5683:3:5", "subExpression": { "argumentTypes": null, "hexValue": "31", - "id": 570, + "id": 1775, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5251:1:1", + "src": "5685:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -31196,20 +34309,20 @@ "typeString": "int_const -1" } ], - "id": 569, + "id": 1774, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "5243:5:1", + "src": "5677:5:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": "uint8" }, - "id": 572, + "id": 1777, "isConstant": false, "isLValue": false, "isPure": true, @@ -31217,13 +34330,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5243:10:1", + "src": "5677:10:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "5210:43:1", + "src": "5644:43:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -31237,21 +34350,21 @@ "typeString": "bool" } ], - "id": 566, + "id": 1771, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "5202:7:1", + "referencedDeclaration": 10045, + "src": "5636:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 574, + "id": 1779, "isConstant": false, "isLValue": false, "isPure": false, @@ -31259,15 +34372,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5202:52:1", + "src": "5636:52:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 575, + "id": 1780, "nodeType": "ExpressionStatement", - "src": "5202:52:1" + "src": "5636:52:5" }, { "expression": { @@ -31279,7 +34392,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 583, + "id": 1788, "isConstant": false, "isLValue": false, "isPure": false, @@ -31288,18 +34401,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 577, + "id": 1782, "name": "parametersOfMilestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 537, - "src": "5272:22:1", + "referencedDeclaration": 1739, + "src": "5706:22:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$4_calldata_$dyn_calldata_ptr", "typeString": "uint256[4] calldata[] calldata" } }, - "id": 578, + "id": 1783, "isConstant": false, "isLValue": false, "isPure": false, @@ -31307,7 +34420,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5272:29:1", + "src": "5706:29:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -31321,7 +34434,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 582, + "id": 1787, "isConstant": false, "isLValue": false, "isPure": false, @@ -31330,18 +34443,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 579, + "id": 1784, "name": "nameAndDescriptionsOffsetOfMilestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 540, - "src": "5305:37:1", + "referencedDeclaration": 1742, + "src": "5739:37:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_calldata_ptr", "typeString": "uint32[] calldata" } }, - "id": 580, + "id": 1785, "isConstant": false, "isLValue": false, "isPure": false, @@ -31349,7 +34462,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5305:44:1", + "src": "5739:44:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -31360,14 +34473,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "32", - "id": 581, + "id": 1786, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5352:1:1", + "src": "5786:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -31375,13 +34488,13 @@ }, "value": "2" }, - "src": "5305:48:1", + "src": "5739:48:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5272:81:1", + "src": "5706:81:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -31395,21 +34508,21 @@ "typeString": "bool" } ], - "id": 576, + "id": 1781, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "5264:7:1", + "referencedDeclaration": 10045, + "src": "5698:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 584, + "id": 1789, "isConstant": false, "isLValue": false, "isPure": false, @@ -31417,15 +34530,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5264:90:1", + "src": "5698:90:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 585, + "id": 1790, "nodeType": "ExpressionStatement", - "src": "5264:90:1" + "src": "5698:90:5" }, { "expression": { @@ -31437,7 +34550,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 593, + "id": 1798, "isConstant": false, "isLValue": false, "isPure": false, @@ -31446,18 +34559,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 587, + "id": 1792, "name": "parametersOfMilestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 537, - "src": "5372:22:1", + "referencedDeclaration": 1739, + "src": "5806:22:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$4_calldata_$dyn_calldata_ptr", "typeString": "uint256[4] calldata[] calldata" } }, - "id": 588, + "id": 1793, "isConstant": false, "isLValue": false, "isPure": false, @@ -31465,7 +34578,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5372:29:1", + "src": "5806:29:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -31479,7 +34592,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 592, + "id": 1797, "isConstant": false, "isLValue": false, "isPure": false, @@ -31488,18 +34601,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 589, + "id": 1794, "name": "nameAndDescriptionsOfMilestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 542, - "src": "5405:31:1", + "referencedDeclaration": 1744, + "src": "5839:31:5", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 590, + "id": 1795, "isConstant": false, "isLValue": false, "isPure": false, @@ -31507,7 +34620,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5405:38:1", + "src": "5839:38:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -31518,14 +34631,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "32", - "id": 591, + "id": 1796, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5446:1:1", + "src": "5880:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -31533,13 +34646,123 @@ }, "value": "2" }, - "src": "5405:42:1", + "src": "5839:42:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5806:75:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1791, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "5798:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5798:84:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1800, + "nodeType": "ExpressionStatement", + "src": "5798:84:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1805, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1802, + "name": "paymentMethodsList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1747, + "src": "5939:18:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", + "typeString": "bytes32[] calldata" + } + }, + "id": 1803, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5939:25:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5372:75:1", + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1804, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5968:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5939:30:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -31553,21 +34776,21 @@ "typeString": "bool" } ], - "id": 586, + "id": 1801, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "5364:7:1", + "referencedDeclaration": 10045, + "src": "5931:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 594, + "id": 1806, "isConstant": false, "isLValue": false, "isPure": false, @@ -31575,15 +34798,312 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5364:84:1", + "src": "5931:39:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 595, + "id": 1807, "nodeType": "ExpressionStatement", - "src": "5364:84:1" + "src": "5931:39:5" + }, + { + "body": { + "id": 1828, + "nodeType": "Block", + "src": "6034:72:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1822, + "name": "paymentMethodsList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1747, + "src": "6072:18:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", + "typeString": "bytes32[] calldata" + } + }, + "id": 1824, + "indexExpression": { + "argumentTypes": null, + "id": 1823, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1809, + "src": "6091:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6072:21:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 1820, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1285, + "src": "6056:5:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "id": 1821, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "hasSymbol", + "nodeType": "MemberAccess", + "referencedDeclaration": 7037, + "src": "6056:15:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (bytes32) view external returns (bool)" + } + }, + "id": 1825, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6056:38:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1819, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "6048:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1826, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6048:47:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1827, + "nodeType": "ExpressionStatement", + "src": "6048:47:5" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1812, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1809, + "src": "5998:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1813, + "name": "paymentMethodsList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1747, + "src": "6002:18:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", + "typeString": "bytes32[] calldata" + } + }, + "id": 1814, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6002:25:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5998:29:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1829, + "initializationExpression": { + "assignments": [ + 1809 + ], + "declarations": [ + { + "constant": false, + "id": 1809, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 1848, + "src": "5986:6:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1808, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5986:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1811, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 1810, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5995:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "5986:10:5" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 1817, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "6029:3:5", + "subExpression": { + "argumentTypes": null, + "id": 1816, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1809, + "src": "6029:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1818, + "nodeType": "ExpressionStatement", + "src": "6029:3:5" + }, + "nodeType": "ForStatement", + "src": "5981:125:5" }, { "expression": { @@ -31591,12 +35111,12 @@ "arguments": [ { "argumentTypes": null, - "id": 597, + "id": 1831, "name": "parametersOfStages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "5483:18:1", + "referencedDeclaration": 1731, + "src": "6140:18:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$6_calldata_$dyn_calldata_ptr", "typeString": "uint256[6] calldata[] calldata" @@ -31604,12 +35124,12 @@ }, { "argumentTypes": null, - "id": 598, + "id": 1832, "name": "bonusConditionsOfStages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 532, - "src": "5515:23:1", + "referencedDeclaration": 1734, + "src": "6172:23:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" @@ -31627,18 +35147,18 @@ "typeString": "uint256[] calldata" } ], - "id": 596, + "id": 1830, "name": "_setStages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 860, - "src": "5459:10:1", + "referencedDeclaration": 2100, + "src": "6116: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": 599, + "id": 1833, "isConstant": false, "isLValue": false, "isPure": false, @@ -31646,15 +35166,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5459:89:1", + "src": "6116:89:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 600, + "id": 1834, "nodeType": "ExpressionStatement", - "src": "5459:89:1" + "src": "6116:89:5" }, { "expression": { @@ -31662,12 +35182,12 @@ "arguments": [ { "argumentTypes": null, - "id": 602, + "id": 1836, "name": "parametersOfMilestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 537, - "src": "5587:22:1", + "referencedDeclaration": 1739, + "src": "6244:22:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$4_calldata_$dyn_calldata_ptr", "typeString": "uint256[4] calldata[] calldata" @@ -31675,12 +35195,12 @@ }, { "argumentTypes": null, - "id": 603, + "id": 1837, "name": "nameAndDescriptionsOffsetOfMilestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 540, - "src": "5623:37:1", + "referencedDeclaration": 1742, + "src": "6280:37:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_calldata_ptr", "typeString": "uint32[] calldata" @@ -31688,12 +35208,12 @@ }, { "argumentTypes": null, - "id": 604, + "id": 1838, "name": "nameAndDescriptionsOfMilestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 542, - "src": "5674:31:1", + "referencedDeclaration": 1744, + "src": "6331:31:5", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -31715,18 +35235,18 @@ "typeString": "bytes calldata" } ], - "id": 601, + "id": 1835, "name": "_setMilestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1329, - "src": "5559:14:1", + "referencedDeclaration": 2569, + "src": "6216: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": 605, + "id": 1839, "isConstant": false, "isLValue": false, "isPure": false, @@ -31734,76 +35254,146 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5559:156:1", + "src": "6216:156:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 606, + "id": 1840, "nodeType": "ExpressionStatement", - "src": "5559:156:1" + "src": "6216:156:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1844, + "name": "paymentMethodsList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1747, + "src": "6405: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": 1841, + "name": "paymentMethods", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1297, + "src": "6383:14:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Methods_$4851_storage", + "typeString": "struct PaymentMethods.Methods storage ref" + } + }, + "id": 1843, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "update", + "nodeType": "MemberAccess", + "referencedDeclaration": 4930, + "src": "6383:21:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Methods_$4851_storage_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$bound_to$_t_struct$_Methods_$4851_storage_ptr_$", + "typeString": "function (struct PaymentMethods.Methods storage pointer,bytes32[] memory)" + } + }, + "id": 1845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6383:41:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1846, + "nodeType": "ExpressionStatement", + "src": "6383:41:5" } ] }, "documentation": "@dev Setup all crowdsale parameters at a time", - "id": 608, + "id": 1848, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 545, + "id": 1750, "modifierName": { "argumentTypes": null, - "id": 544, + "id": 1749, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6888, - "src": "4952:9:1", + "referencedDeclaration": 9636, + "src": "5386:9:5", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4952:9:1" + "src": "5386:9:5" }, { "arguments": null, - "id": 547, + "id": 1752, "modifierName": { "argumentTypes": null, - "id": 546, + "id": 1751, "name": "beforeSaleStart", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1798, - "src": "4962:15:1", + "referencedDeclaration": 3157, + "src": "5396:15:5", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4962:15:1" + "src": "5396:15:5" } ], "name": "setup", "nodeType": "FunctionDefinition", "parameters": { - "id": 543, + "id": 1748, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 529, + "id": 1731, "name": "parametersOfStages", "nodeType": "VariableDeclaration", - "scope": 608, - "src": "4715:28:1", + "scope": 1848, + "src": "5111:28:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -31813,27 +35403,27 @@ "typeName": { "baseType": { "baseType": { - "id": 525, + "id": 1727, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4715:4:1", + "src": "5111:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 527, + "id": 1729, "length": { "argumentTypes": null, "hexValue": "36", - "id": 526, + "id": 1728, "isConstant": false, "isLValue": false, "isPure": false, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4720:1:1", + "src": "5116:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": null, @@ -31842,16 +35432,16 @@ "value": "6" }, "nodeType": "ArrayTypeName", - "src": "4715:7:1", + "src": "5111:7:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_storage_ptr", "typeString": "uint256[6]" } }, - "id": 528, + "id": 1730, "length": null, "nodeType": "ArrayTypeName", - "src": "4715:9:1", + "src": "5111:9:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$6_storage_$dyn_storage_ptr", "typeString": "uint256[6][]" @@ -31862,11 +35452,11 @@ }, { "constant": false, - "id": 532, + "id": 1734, "name": "bonusConditionsOfStages", "nodeType": "VariableDeclaration", - "scope": 608, - "src": "4753:30:1", + "scope": 1848, + "src": "5149:30:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -31875,19 +35465,19 @@ }, "typeName": { "baseType": { - "id": 530, + "id": 1732, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4753:4:1", + "src": "5149:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 531, + "id": 1733, "length": null, "nodeType": "ArrayTypeName", - "src": "4753:6:1", + "src": "5149:6:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -31898,11 +35488,11 @@ }, { "constant": false, - "id": 537, + "id": 1739, "name": "parametersOfMilestones", "nodeType": "VariableDeclaration", - "scope": 608, - "src": "4793:32:1", + "scope": 1848, + "src": "5189:32:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -31912,27 +35502,27 @@ "typeName": { "baseType": { "baseType": { - "id": 533, + "id": 1735, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4793:4:1", + "src": "5189:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 535, + "id": 1737, "length": { "argumentTypes": null, "hexValue": "34", - "id": 534, + "id": 1736, "isConstant": false, "isLValue": false, "isPure": false, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4798:1:1", + "src": "5194:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": null, @@ -31941,16 +35531,16 @@ "value": "4" }, "nodeType": "ArrayTypeName", - "src": "4793:7:1", + "src": "5189:7:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_storage_ptr", "typeString": "uint256[4]" } }, - "id": 536, + "id": 1738, "length": null, "nodeType": "ArrayTypeName", - "src": "4793:9:1", + "src": "5189:9:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$4_storage_$dyn_storage_ptr", "typeString": "uint256[4][]" @@ -31961,11 +35551,11 @@ }, { "constant": false, - "id": 540, + "id": 1742, "name": "nameAndDescriptionsOffsetOfMilestones", "nodeType": "VariableDeclaration", - "scope": 608, - "src": "4835:46:1", + "scope": 1848, + "src": "5231:46:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -31974,19 +35564,19 @@ }, "typeName": { "baseType": { - "id": 538, + "id": 1740, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "4835:6:1", + "src": "5231:6:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 539, + "id": 1741, "length": null, "nodeType": "ArrayTypeName", - "src": "4835:8:1", + "src": "5231:8:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", "typeString": "uint32[]" @@ -31997,11 +35587,11 @@ }, { "constant": false, - "id": 542, + "id": 1744, "name": "nameAndDescriptionsOfMilestones", "nodeType": "VariableDeclaration", - "scope": 608, - "src": "4891:37:1", + "scope": 1848, + "src": "5287:37:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -32009,10 +35599,10 @@ "typeString": "bytes" }, "typeName": { - "id": 541, + "id": 1743, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "4891:5:1", + "src": "5287:5:5", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -32020,28 +35610,64 @@ }, "value": null, "visibility": "internal" + }, + { + "constant": false, + "id": 1747, + "name": "paymentMethodsList", + "nodeType": "VariableDeclaration", + "scope": 1848, + "src": "5334:28:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 1745, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5334:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 1746, + "length": null, + "nodeType": "ArrayTypeName", + "src": "5334:9:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "value": null, + "visibility": "internal" } ], - "src": "4705:229:1" + "src": "5101:267:5" }, "payable": false, "returnParameters": { - "id": 548, + "id": 1753, "nodeType": "ParameterList", "parameters": [], - "src": "4982:0:1" + "src": "5416:0:5" }, - "scope": 1809, - "src": "4691:1031:1", + "scope": 3168, + "src": "5087:1344:5", "stateMutability": "nonpayable", - "superFunction": 4330, + "superFunction": 1107, "visibility": "external" }, { "body": { - "id": 859, + "id": 2099, "nodeType": "Block", - "src": "6198:1566:1", + "src": "6907:1566:5", "statements": [ { "condition": { @@ -32050,7 +35676,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 622, + "id": 1862, "isConstant": false, "isLValue": false, "isPure": false, @@ -32059,18 +35685,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 619, + "id": 1859, "name": "milestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 143, - "src": "6212:10:1", + "referencedDeclaration": 1303, + "src": "6921:10:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$121_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Milestone_$1331_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" } }, - "id": 620, + "id": 1860, "isConstant": false, "isLValue": true, "isPure": false, @@ -32078,7 +35704,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6212:17:1", + "src": "6921:17:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -32089,14 +35715,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 621, + "id": 1861, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6232:1:1", + "src": "6941:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -32104,20 +35730,20 @@ }, "value": "0" }, - "src": "6212:21:1", + "src": "6921:21:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 640, + "id": 1880, "nodeType": "IfStatement", - "src": "6208:207:1", + "src": "6917:207:5", "trueBody": { - "id": 639, + "id": 1879, "nodeType": "Block", - "src": "6235:180:1", + "src": "6944:180:5", "statements": [ { "expression": { @@ -32129,7 +35755,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 636, + "id": 1876, "isConstant": false, "isLValue": false, "isPure": false, @@ -32140,29 +35766,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 624, + "id": 1864, "name": "milestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 143, - "src": "6343:10:1", + "referencedDeclaration": 1303, + "src": "7052:10:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$121_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Milestone_$1331_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" } }, - "id": 626, + "id": 1866, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 625, + "id": 1865, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6354:1:1", + "src": "7063:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -32175,21 +35801,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6343:13:1", + "src": "7052:13:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$121_storage", + "typeIdentifier": "t_struct$_Milestone_$1331_storage", "typeString": "struct W12Crowdsale.Milestone storage ref" } }, - "id": 627, + "id": 1867, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "endDate", "nodeType": "MemberAccess", - "referencedDeclaration": 110, - "src": "6343:21:1", + "referencedDeclaration": 1320, + "src": "7052:21:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -32203,25 +35829,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 628, + "id": 1868, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 613, - "src": "6367:10:1", + "referencedDeclaration": 1853, + "src": "7076:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", "typeString": "uint256[6] memory[] memory" } }, - "id": 633, + "id": 1873, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 632, + "id": 1872, "isConstant": false, "isLValue": false, "isPure": false, @@ -32230,18 +35856,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 629, + "id": 1869, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 613, - "src": "6378:10:1", + "referencedDeclaration": 1853, + "src": "7087:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", "typeString": "uint256[6] memory[] memory" } }, - "id": 630, + "id": 1870, "isConstant": false, "isLValue": false, "isPure": false, @@ -32249,7 +35875,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6378:17:1", + "src": "7087:17:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -32260,14 +35886,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 631, + "id": 1871, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6398:1:1", + "src": "7107:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -32275,7 +35901,7 @@ }, "value": "1" }, - "src": "6378:21:1", + "src": "7087:21:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -32286,24 +35912,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6367:33:1", + "src": "7076:33:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_memory", "typeString": "uint256[6] memory" } }, - "id": 635, + "id": 1875, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 634, + "id": 1874, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6401:1:1", + "src": "7110:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -32316,13 +35942,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6367:36:1", + "src": "7076:36:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6343:60:1", + "src": "7052:60:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -32336,21 +35962,21 @@ "typeString": "bool" } ], - "id": 623, + "id": 1863, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "6335:7:1", + "referencedDeclaration": 10045, + "src": "7044:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 637, + "id": 1877, "isConstant": false, "isLValue": false, "isPure": false, @@ -32358,15 +35984,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6335:69:1", + "src": "7044:69:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 638, + "id": 1878, "nodeType": "ExpressionStatement", - "src": "6335:69:1" + "src": "7044:69:5" } ] } @@ -32374,7 +36000,7 @@ { "expression": { "argumentTypes": null, - "id": 642, + "id": 1882, "isConstant": false, "isLValue": false, "isPure": false, @@ -32382,17 +36008,17 @@ "nodeType": "UnaryOperation", "operator": "delete", "prefix": true, - "src": "6425:13:1", + "src": "7134:13:5", "subExpression": { "argumentTypes": null, - "id": 641, + "id": 1881, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "6432:6:1", + "referencedDeclaration": 1300, + "src": "7141:6:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$108_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" } }, @@ -32401,15 +36027,15 @@ "typeString": "tuple()" } }, - "id": 643, + "id": 1883, "nodeType": "ExpressionStatement", - "src": "6425:13:1" + "src": "7134:13:5" }, { "body": { - "id": 854, + "id": 2094, "nodeType": "Block", - "src": "6495:1232:1", + "src": "7204:1232:5", "statements": [ { "expression": { @@ -32421,7 +36047,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 665, + "id": 1905, "isConstant": false, "isLValue": false, "isPure": false, @@ -32432,26 +36058,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 656, + "id": 1896, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 613, - "src": "6547:10:1", + "referencedDeclaration": 1853, + "src": "7256:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", "typeString": "uint256[6] memory[] memory" } }, - "id": 658, + "id": 1898, "indexExpression": { "argumentTypes": null, - "id": 657, + "id": 1897, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 645, - "src": "6558:1:1", + "referencedDeclaration": 1885, + "src": "7267:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -32462,24 +36088,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6547:13:1", + "src": "7256:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_memory", "typeString": "uint256[6] memory" } }, - "id": 660, + "id": 1900, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 659, + "id": 1899, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6561:1:1", + "src": "7270:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -32492,7 +36118,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6547:16:1", + "src": "7256:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -32505,7 +36131,7 @@ "arguments": [ { "argumentTypes": null, - "id": 663, + "id": 1903, "isConstant": false, "isLValue": false, "isPure": true, @@ -32513,18 +36139,18 @@ "nodeType": "UnaryOperation", "operator": "-", "prefix": true, - "src": "6574:2:1", + "src": "7283:2:5", "subExpression": { "argumentTypes": null, "hexValue": "31", - "id": 662, + "id": 1902, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6575:1:1", + "src": "7284:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -32545,20 +36171,20 @@ "typeString": "int_const -1" } ], - "id": 661, + "id": 1901, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6567:6:1", + "src": "7276:6:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": "uint32" }, - "id": 664, + "id": 1904, "isConstant": false, "isLValue": false, "isPure": true, @@ -32566,13 +36192,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6567:10:1", + "src": "7276:10:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "6547:30:1", + "src": "7256:30:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -32586,21 +36212,21 @@ "typeString": "bool" } ], - "id": 655, + "id": 1895, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "6539:7:1", + "referencedDeclaration": 10045, + "src": "7248:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 666, + "id": 1906, "isConstant": false, "isLValue": false, "isPure": false, @@ -32608,15 +36234,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6539:39:1", + "src": "7248:39:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 667, + "id": 1907, "nodeType": "ExpressionStatement", - "src": "6539:39:1" + "src": "7248:39:5" }, { "expression": { @@ -32628,7 +36254,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 678, + "id": 1918, "isConstant": false, "isLValue": false, "isPure": false, @@ -32639,26 +36265,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 669, + "id": 1909, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 613, - "src": "6600:10:1", + "referencedDeclaration": 1853, + "src": "7309:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", "typeString": "uint256[6] memory[] memory" } }, - "id": 671, + "id": 1911, "indexExpression": { "argumentTypes": null, - "id": 670, + "id": 1910, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 645, - "src": "6611:1:1", + "referencedDeclaration": 1885, + "src": "7320:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -32669,24 +36295,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6600:13:1", + "src": "7309:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_memory", "typeString": "uint256[6] memory" } }, - "id": 673, + "id": 1913, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 672, + "id": 1912, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6614:1:1", + "src": "7323:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -32699,7 +36325,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6600:16:1", + "src": "7309:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -32712,7 +36338,7 @@ "arguments": [ { "argumentTypes": null, - "id": 676, + "id": 1916, "isConstant": false, "isLValue": false, "isPure": true, @@ -32720,18 +36346,18 @@ "nodeType": "UnaryOperation", "operator": "-", "prefix": true, - "src": "6627:2:1", + "src": "7336:2:5", "subExpression": { "argumentTypes": null, "hexValue": "31", - "id": 675, + "id": 1915, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6628:1:1", + "src": "7337:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -32752,20 +36378,20 @@ "typeString": "int_const -1" } ], - "id": 674, + "id": 1914, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6620:6:1", + "src": "7329:6:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": "uint32" }, - "id": 677, + "id": 1917, "isConstant": false, "isLValue": false, "isPure": true, @@ -32773,13 +36399,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6620:10:1", + "src": "7329:10:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "6600:30:1", + "src": "7309:30:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -32793,21 +36419,21 @@ "typeString": "bool" } ], - "id": 668, + "id": 1908, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "6592:7:1", + "referencedDeclaration": 10045, + "src": "7301:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 679, + "id": 1919, "isConstant": false, "isLValue": false, "isPure": false, @@ -32815,15 +36441,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6592:39:1", + "src": "7301:39:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 680, + "id": 1920, "nodeType": "ExpressionStatement", - "src": "6592:39:1" + "src": "7301:39:5" }, { "expression": { @@ -32835,7 +36461,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 691, + "id": 1931, "isConstant": false, "isLValue": false, "isPure": false, @@ -32846,26 +36472,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 682, + "id": 1922, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 613, - "src": "6653:10:1", + "referencedDeclaration": 1853, + "src": "7362:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", "typeString": "uint256[6] memory[] memory" } }, - "id": 684, + "id": 1924, "indexExpression": { "argumentTypes": null, - "id": 683, + "id": 1923, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 645, - "src": "6664:1:1", + "referencedDeclaration": 1885, + "src": "7373:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -32876,24 +36502,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6653:13:1", + "src": "7362:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_memory", "typeString": "uint256[6] memory" } }, - "id": 686, + "id": 1926, "indexExpression": { "argumentTypes": null, "hexValue": "33", - "id": 685, + "id": 1925, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6667:1:1", + "src": "7376:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", @@ -32906,7 +36532,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6653:16:1", + "src": "7362:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -32919,7 +36545,7 @@ "arguments": [ { "argumentTypes": null, - "id": 689, + "id": 1929, "isConstant": false, "isLValue": false, "isPure": true, @@ -32927,18 +36553,18 @@ "nodeType": "UnaryOperation", "operator": "-", "prefix": true, - "src": "6680:2:1", + "src": "7389:2:5", "subExpression": { "argumentTypes": null, "hexValue": "31", - "id": 688, + "id": 1928, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6681:1:1", + "src": "7390:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -32959,20 +36585,20 @@ "typeString": "int_const -1" } ], - "id": 687, + "id": 1927, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6673:6:1", + "src": "7382:6:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": "uint32" }, - "id": 690, + "id": 1930, "isConstant": false, "isLValue": false, "isPure": true, @@ -32980,13 +36606,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6673:10:1", + "src": "7382:10:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "6653:30:1", + "src": "7362:30:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -33000,21 +36626,21 @@ "typeString": "bool" } ], - "id": 681, + "id": 1921, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "6645:7:1", + "referencedDeclaration": 10045, + "src": "7354:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 692, + "id": 1932, "isConstant": false, "isLValue": false, "isPure": false, @@ -33022,15 +36648,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6645:39:1", + "src": "7354:39:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 693, + "id": 1933, "nodeType": "ExpressionStatement", - "src": "6645:39:1" + "src": "7354:39:5" }, { "expression": { @@ -33042,7 +36668,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 704, + "id": 1944, "isConstant": false, "isLValue": false, "isPure": false, @@ -33053,26 +36679,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 695, + "id": 1935, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 613, - "src": "6706:10:1", + "referencedDeclaration": 1853, + "src": "7415:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", "typeString": "uint256[6] memory[] memory" } }, - "id": 697, + "id": 1937, "indexExpression": { "argumentTypes": null, - "id": 696, + "id": 1936, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 645, - "src": "6717:1:1", + "referencedDeclaration": 1885, + "src": "7426:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -33083,24 +36709,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6706:13:1", + "src": "7415:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_memory", "typeString": "uint256[6] memory" } }, - "id": 699, + "id": 1939, "indexExpression": { "argumentTypes": null, "hexValue": "34", - "id": 698, + "id": 1938, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6720:1:1", + "src": "7429:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", @@ -33113,7 +36739,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6706:16:1", + "src": "7415:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -33126,7 +36752,7 @@ "arguments": [ { "argumentTypes": null, - "id": 702, + "id": 1942, "isConstant": false, "isLValue": false, "isPure": true, @@ -33134,18 +36760,18 @@ "nodeType": "UnaryOperation", "operator": "-", "prefix": true, - "src": "6732:2:1", + "src": "7441:2:5", "subExpression": { "argumentTypes": null, "hexValue": "31", - "id": 701, + "id": 1941, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6733:1:1", + "src": "7442:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -33166,20 +36792,20 @@ "typeString": "int_const -1" } ], - "id": 700, + "id": 1940, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6726:5:1", + "src": "7435:5:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": "uint8" }, - "id": 703, + "id": 1943, "isConstant": false, "isLValue": false, "isPure": true, @@ -33187,13 +36813,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6726:9:1", + "src": "7435:9:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "6706:29:1", + "src": "7415:29:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -33207,21 +36833,21 @@ "typeString": "bool" } ], - "id": 694, + "id": 1934, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "6698:7:1", + "referencedDeclaration": 10045, + "src": "7407:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 705, + "id": 1945, "isConstant": false, "isLValue": false, "isPure": false, @@ -33229,15 +36855,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6698:38:1", + "src": "7407:38:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 706, + "id": 1946, "nodeType": "ExpressionStatement", - "src": "6698:38:1" + "src": "7407:38:5" }, { "expression": { @@ -33249,7 +36875,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 717, + "id": 1957, "isConstant": false, "isLValue": false, "isPure": false, @@ -33260,26 +36886,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 708, + "id": 1948, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 613, - "src": "6758:10:1", + "referencedDeclaration": 1853, + "src": "7467:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", "typeString": "uint256[6] memory[] memory" } }, - "id": 710, + "id": 1950, "indexExpression": { "argumentTypes": null, - "id": 709, + "id": 1949, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 645, - "src": "6769:1:1", + "referencedDeclaration": 1885, + "src": "7478:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -33290,24 +36916,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6758:13:1", + "src": "7467:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_memory", "typeString": "uint256[6] memory" } }, - "id": 712, + "id": 1952, "indexExpression": { "argumentTypes": null, "hexValue": "35", - "id": 711, + "id": 1951, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6772:1:1", + "src": "7481:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_5_by_1", @@ -33320,7 +36946,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6758:16:1", + "src": "7467:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -33333,7 +36959,7 @@ "arguments": [ { "argumentTypes": null, - "id": 715, + "id": 1955, "isConstant": false, "isLValue": false, "isPure": true, @@ -33341,18 +36967,18 @@ "nodeType": "UnaryOperation", "operator": "-", "prefix": true, - "src": "6784:2:1", + "src": "7493:2:5", "subExpression": { "argumentTypes": null, "hexValue": "31", - "id": 714, + "id": 1954, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6785:1:1", + "src": "7494:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -33373,20 +36999,20 @@ "typeString": "int_const -1" } ], - "id": 713, + "id": 1953, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6778:5:1", + "src": "7487:5:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": "uint8" }, - "id": 716, + "id": 1956, "isConstant": false, "isLValue": false, "isPure": true, @@ -33394,13 +37020,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6778:9:1", + "src": "7487:9:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "6758:29:1", + "src": "7467:29:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -33414,21 +37040,21 @@ "typeString": "bool" } ], - "id": 707, + "id": 1947, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "6750:7:1", + "referencedDeclaration": 10045, + "src": "7459:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 718, + "id": 1958, "isConstant": false, "isLValue": false, "isPure": false, @@ -33436,15 +37062,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6750:38:1", + "src": "7459:38:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 719, + "id": 1959, "nodeType": "ExpressionStatement", - "src": "6750:38:1" + "src": "7459:38:5" }, { "expression": { @@ -33456,7 +37082,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 727, + "id": 1967, "isConstant": false, "isLValue": false, "isPure": false, @@ -33467,26 +37093,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 721, + "id": 1961, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 613, - "src": "6838:10:1", + "referencedDeclaration": 1853, + "src": "7547:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", "typeString": "uint256[6] memory[] memory" } }, - "id": 723, + "id": 1963, "indexExpression": { "argumentTypes": null, - "id": 722, + "id": 1962, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 645, - "src": "6849:1:1", + "referencedDeclaration": 1885, + "src": "7558:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -33497,24 +37123,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6838:13:1", + "src": "7547:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_memory", "typeString": "uint256[6] memory" } }, - "id": 725, + "id": 1965, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 724, + "id": 1964, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6852:1:1", + "src": "7561:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -33527,7 +37153,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6838:16:1", + "src": "7547:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -33537,18 +37163,18 @@ "operator": ">", "rightExpression": { "argumentTypes": null, - "id": 726, + "id": 1966, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7296, - "src": "6857:3:1", + "referencedDeclaration": 10044, + "src": "7566:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6838:22:1", + "src": "7547:22:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -33562,21 +37188,21 @@ "typeString": "bool" } ], - "id": 720, + "id": 1960, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "6830:7:1", + "referencedDeclaration": 10045, + "src": "7539:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 728, + "id": 1968, "isConstant": false, "isLValue": false, "isPure": false, @@ -33584,15 +37210,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6830:31:1", + "src": "7539:31:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 729, + "id": 1969, "nodeType": "ExpressionStatement", - "src": "6830:31:1" + "src": "7539:31:5" }, { "expression": { @@ -33604,7 +37230,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 741, + "id": 1981, "isConstant": false, "isLValue": false, "isPure": false, @@ -33615,26 +37241,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 731, + "id": 1971, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 613, - "src": "6883:10:1", + "referencedDeclaration": 1853, + "src": "7592:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", "typeString": "uint256[6] memory[] memory" } }, - "id": 733, + "id": 1973, "indexExpression": { "argumentTypes": null, - "id": 732, + "id": 1972, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 645, - "src": "6894:1:1", + "referencedDeclaration": 1885, + "src": "7603:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -33645,24 +37271,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6883:13:1", + "src": "7592:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_memory", "typeString": "uint256[6] memory" } }, - "id": 735, + "id": 1975, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 734, + "id": 1974, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6897:1:1", + "src": "7606:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -33675,7 +37301,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6883:16:1", + "src": "7592:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -33689,26 +37315,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 736, + "id": 1976, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 613, - "src": "6902:10:1", + "referencedDeclaration": 1853, + "src": "7611:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", "typeString": "uint256[6] memory[] memory" } }, - "id": 738, + "id": 1978, "indexExpression": { "argumentTypes": null, - "id": 737, + "id": 1977, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 645, - "src": "6913:1:1", + "referencedDeclaration": 1885, + "src": "7622:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -33719,24 +37345,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6902:13:1", + "src": "7611:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_memory", "typeString": "uint256[6] memory" } }, - "id": 740, + "id": 1980, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 739, + "id": 1979, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6916:1:1", + "src": "7625:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -33749,13 +37375,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6902:16:1", + "src": "7611:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6883:35:1", + "src": "7592:35:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -33769,21 +37395,21 @@ "typeString": "bool" } ], - "id": 730, + "id": 1970, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "6875:7:1", + "referencedDeclaration": 10045, + "src": "7584:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 742, + "id": 1982, "isConstant": false, "isLValue": false, "isPure": false, @@ -33791,15 +37417,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6875:44:1", + "src": "7584:44:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 743, + "id": 1983, "nodeType": "ExpressionStatement", - "src": "6875:44:1" + "src": "7584:44:5" }, { "condition": { @@ -33808,19 +37434,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 746, + "id": 1986, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 744, + "id": 1984, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 645, - "src": "6938:1:1", + "referencedDeclaration": 1885, + "src": "7647:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -33831,14 +37457,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 745, + "id": 1985, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6942:1:1", + "src": "7651:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -33846,20 +37472,20 @@ }, "value": "0" }, - "src": "6938:5:1", + "src": "7647:5:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 764, + "id": 2004, "nodeType": "IfStatement", - "src": "6934:93:1", + "src": "7643:93:5", "trueBody": { - "id": 763, + "id": 2003, "nodeType": "Block", - "src": "6945:82:1", + "src": "7654:82:5", "statements": [ { "expression": { @@ -33871,7 +37497,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 760, + "id": 2000, "isConstant": false, "isLValue": false, "isPure": false, @@ -33882,37 +37508,37 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 748, + "id": 1988, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 613, - "src": "6971:10:1", + "referencedDeclaration": 1853, + "src": "7680:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", "typeString": "uint256[6] memory[] memory" } }, - "id": 752, + "id": 1992, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 751, + "id": 1991, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 749, + "id": 1989, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 645, - "src": "6982:1:1", + "referencedDeclaration": 1885, + "src": "7691:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -33923,14 +37549,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 750, + "id": 1990, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6986:1:1", + "src": "7695:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -33938,7 +37564,7 @@ }, "value": "1" }, - "src": "6982:5:1", + "src": "7691:5:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -33949,24 +37575,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6971:17:1", + "src": "7680:17:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_memory", "typeString": "uint256[6] memory" } }, - "id": 754, + "id": 1994, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 753, + "id": 1993, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6989:1:1", + "src": "7698:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -33979,7 +37605,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6971:20:1", + "src": "7680:20:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -33993,26 +37619,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 755, + "id": 1995, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 613, - "src": "6995:10:1", + "referencedDeclaration": 1853, + "src": "7704:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", "typeString": "uint256[6] memory[] memory" } }, - "id": 757, + "id": 1997, "indexExpression": { "argumentTypes": null, - "id": 756, + "id": 1996, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 645, - "src": "7006:1:1", + "referencedDeclaration": 1885, + "src": "7715:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -34023,24 +37649,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6995:13:1", + "src": "7704:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_memory", "typeString": "uint256[6] memory" } }, - "id": 759, + "id": 1999, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 758, + "id": 1998, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7009:1:1", + "src": "7718:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -34053,13 +37679,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6995:16:1", + "src": "7704:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6971:40:1", + "src": "7680:40:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -34073,21 +37699,21 @@ "typeString": "bool" } ], - "id": 747, + "id": 1987, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "6963:7:1", + "referencedDeclaration": 10045, + "src": "7672:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 761, + "id": 2001, "isConstant": false, "isLValue": false, "isPure": false, @@ -34095,15 +37721,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6963:49:1", + "src": "7672:49:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 762, + "id": 2002, "nodeType": "ExpressionStatement", - "src": "6963:49:1" + "src": "7672:49:5" } ] } @@ -34123,26 +37749,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 766, + "id": 2006, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 613, - "src": "7079:10:1", + "referencedDeclaration": 1853, + "src": "7788:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", "typeString": "uint256[6] memory[] memory" } }, - "id": 768, + "id": 2008, "indexExpression": { "argumentTypes": null, - "id": 767, + "id": 2007, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 645, - "src": "7090:1:1", + "referencedDeclaration": 1885, + "src": "7799:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -34153,24 +37779,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7079:13:1", + "src": "7788:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_memory", "typeString": "uint256[6] memory" } }, - "id": 770, + "id": 2010, "indexExpression": { "argumentTypes": null, "hexValue": "32", - "id": 769, + "id": 2009, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7093:1:1", + "src": "7802:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -34183,27 +37809,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7079:16:1", + "src": "7788:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 771, + "id": 2011, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isPercent", "nodeType": "MemberAccess", - "referencedDeclaration": 4586, - "src": "7079:26:1", + "referencedDeclaration": 5058, + "src": "7788:26:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$", "typeString": "function (uint256) pure returns (bool)" } }, - "id": 772, + "id": 2012, "isConstant": false, "isLValue": false, "isPure": false, @@ -34211,7 +37837,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7079:28:1", + "src": "7788:28:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -34225,21 +37851,21 @@ "typeString": "bool" } ], - "id": 765, + "id": 2005, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "7071:7:1", + "referencedDeclaration": 10045, + "src": "7780:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 773, + "id": 2013, "isConstant": false, "isLValue": false, "isPure": false, @@ -34247,15 +37873,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7071:37:1", + "src": "7780:37:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 774, + "id": 2014, "nodeType": "ExpressionStatement", - "src": "7071:37:1" + "src": "7780:37:5" }, { "expression": { @@ -34267,7 +37893,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 784, + "id": 2024, "isConstant": false, "isLValue": false, "isPure": false, @@ -34278,26 +37904,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 776, + "id": 2016, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 613, - "src": "7130:10:1", + "referencedDeclaration": 1853, + "src": "7839:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", "typeString": "uint256[6] memory[] memory" } }, - "id": 778, + "id": 2018, "indexExpression": { "argumentTypes": null, - "id": 777, + "id": 2017, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 645, - "src": "7141:1:1", + "referencedDeclaration": 1885, + "src": "7850:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -34308,24 +37934,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7130:13:1", + "src": "7839:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_memory", "typeString": "uint256[6] memory" } }, - "id": 780, + "id": 2020, "indexExpression": { "argumentTypes": null, "hexValue": "32", - "id": 779, + "id": 2019, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7144:1:1", + "src": "7853:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -34338,7 +37964,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7130:16:1", + "src": "7839:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -34353,32 +37979,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 781, + "id": 2021, "name": "Percent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4631, - "src": "7149:7:1", + "referencedDeclaration": 5103, + "src": "7858:7:5", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Percent_$4631_$", + "typeIdentifier": "t_type$_t_contract$_Percent_$5103_$", "typeString": "type(library Percent)" } }, - "id": 782, + "id": 2022, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "MAX", "nodeType": "MemberAccess", - "referencedDeclaration": 4543, - "src": "7149:11:1", + "referencedDeclaration": 5003, + "src": "7858:11:5", "typeDescriptions": { "typeIdentifier": "t_function_delegatecall_pure$__$returns$_t_uint256_$", "typeString": "function () pure returns (uint256)" } }, - "id": 783, + "id": 2023, "isConstant": false, "isLValue": false, "isPure": false, @@ -34386,13 +38012,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7149:13:1", + "src": "7858:13:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7130:32:1", + "src": "7839:32:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -34406,21 +38032,21 @@ "typeString": "bool" } ], - "id": 775, + "id": 2015, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "7122:7:1", + "referencedDeclaration": 10045, + "src": "7831:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 785, + "id": 2025, "isConstant": false, "isLValue": false, "isPure": false, @@ -34428,15 +38054,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7122:41:1", + "src": "7831:41:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 786, + "id": 2026, "nodeType": "ExpressionStatement", - "src": "7122:41:1" + "src": "7831:41:5" }, { "expression": { @@ -34454,26 +38080,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 792, + "id": 2032, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 613, - "src": "7232:10:1", + "referencedDeclaration": 1853, + "src": "7941:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", "typeString": "uint256[6] memory[] memory" } }, - "id": 794, + "id": 2034, "indexExpression": { "argumentTypes": null, - "id": 793, + "id": 2033, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 645, - "src": "7243:1:1", + "referencedDeclaration": 1885, + "src": "7952:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -34484,24 +38110,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7232:13:1", + "src": "7941:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_memory", "typeString": "uint256[6] memory" } }, - "id": 796, + "id": 2036, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 795, + "id": 2035, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7246:1:1", + "src": "7955:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -34514,7 +38140,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7232:16:1", + "src": "7941:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -34528,20 +38154,20 @@ "typeString": "uint256" } ], - "id": 791, + "id": 2031, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7225:6:1", + "src": "7934:6:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": "uint32" }, - "id": 797, + "id": 2037, "isConstant": false, "isLValue": false, "isPure": false, @@ -34549,7 +38175,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7225:24:1", + "src": "7934:24:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -34564,26 +38190,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 799, + "id": 2039, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 613, - "src": "7283:10:1", + "referencedDeclaration": 1853, + "src": "7992:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", "typeString": "uint256[6] memory[] memory" } }, - "id": 801, + "id": 2041, "indexExpression": { "argumentTypes": null, - "id": 800, + "id": 2040, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 645, - "src": "7294:1:1", + "referencedDeclaration": 1885, + "src": "8003:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -34594,24 +38220,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7283:13:1", + "src": "7992:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_memory", "typeString": "uint256[6] memory" } }, - "id": 803, + "id": 2043, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 802, + "id": 2042, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7297:1:1", + "src": "8006:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -34624,7 +38250,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7283:16:1", + "src": "7992:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -34638,20 +38264,20 @@ "typeString": "uint256" } ], - "id": 798, + "id": 2038, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7276:6:1", + "src": "7985:6:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": "uint32" }, - "id": 804, + "id": 2044, "isConstant": false, "isLValue": false, "isPure": false, @@ -34659,7 +38285,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7276:24:1", + "src": "7985:24:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -34671,26 +38297,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 805, + "id": 2045, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 613, - "src": "7328:10:1", + "referencedDeclaration": 1853, + "src": "8037:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", "typeString": "uint256[6] memory[] memory" } }, - "id": 807, + "id": 2047, "indexExpression": { "argumentTypes": null, - "id": 806, + "id": 2046, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 645, - "src": "7339:1:1", + "referencedDeclaration": 1885, + "src": "8048:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -34701,24 +38327,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7328:13:1", + "src": "8037:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_memory", "typeString": "uint256[6] memory" } }, - "id": 809, + "id": 2049, "indexExpression": { "argumentTypes": null, "hexValue": "32", - "id": 808, + "id": 2048, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7342:1:1", + "src": "8051:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -34731,7 +38357,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7328:16:1", + "src": "8037:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -34746,26 +38372,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 811, + "id": 2051, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 613, - "src": "7378:10:1", + "referencedDeclaration": 1853, + "src": "8087:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", "typeString": "uint256[6] memory[] memory" } }, - "id": 813, + "id": 2053, "indexExpression": { "argumentTypes": null, - "id": 812, + "id": 2052, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 645, - "src": "7389:1:1", + "referencedDeclaration": 1885, + "src": "8098:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -34776,24 +38402,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7378:13:1", + "src": "8087:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_memory", "typeString": "uint256[6] memory" } }, - "id": 815, + "id": 2055, "indexExpression": { "argumentTypes": null, "hexValue": "33", - "id": 814, + "id": 2054, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7392:1:1", + "src": "8101:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", @@ -34806,7 +38432,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7378:16:1", + "src": "8087:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -34820,20 +38446,20 @@ "typeString": "uint256" } ], - "id": 810, + "id": 2050, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7371:6:1", + "src": "8080:6:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": "uint32" }, - "id": 816, + "id": 2056, "isConstant": false, "isLValue": false, "isPure": false, @@ -34841,7 +38467,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7371:24:1", + "src": "8080:24:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -34853,14 +38479,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 820, + "id": 2060, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7442:1:1", + "src": "8151:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -34876,39 +38502,39 @@ "typeString": "int_const 0" } ], - "id": 819, + "id": 2059, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "7431:10:1", + "src": "8140: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": 817, + "id": 2057, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "7435:4:1", + "src": "8144:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 818, + "id": 2058, "length": null, "nodeType": "ArrayTypeName", - "src": "7435:6:1", + "src": "8144:6:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" } } }, - "id": 821, + "id": 2061, "isConstant": false, "isLValue": false, "isPure": true, @@ -34916,7 +38542,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7431:13:1", + "src": "8140:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory", "typeString": "uint256[] memory" @@ -34928,14 +38554,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 825, + "id": 2065, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7488:1:1", + "src": "8197:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -34951,39 +38577,39 @@ "typeString": "int_const 0" } ], - "id": 824, + "id": 2064, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "7477:10:1", + "src": "8186: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": 822, + "id": 2062, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "7481:4:1", + "src": "8190:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 823, + "id": 2063, "length": null, "nodeType": "ArrayTypeName", - "src": "7481:6:1", + "src": "8190:6:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" } } }, - "id": 826, + "id": 2066, "isConstant": false, "isLValue": false, "isPure": true, @@ -34991,7 +38617,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7477:13:1", + "src": "8186:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory", "typeString": "uint256[] memory" @@ -35000,18 +38626,18 @@ ], "expression": { "argumentTypes": null, - "id": 790, + "id": 2030, "name": "Stage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 108, - "src": "7190:5:1", + "referencedDeclaration": 1318, + "src": "7899:5:5", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Stage_$108_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_Stage_$1318_storage_ptr_$", "typeString": "type(struct W12Crowdsale.Stage storage pointer)" } }, - "id": 827, + "id": 2067, "isConstant": false, "isLValue": false, "isPure": false, @@ -35026,9 +38652,9 @@ "volumeBonuses" ], "nodeType": "FunctionCall", - "src": "7190:315:1", + "src": "7899:315:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$108_memory", + "typeIdentifier": "t_struct$_Stage_$1318_memory", "typeString": "struct W12Crowdsale.Stage memory" } } @@ -35036,24 +38662,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Stage_$108_memory", + "typeIdentifier": "t_struct$_Stage_$1318_memory", "typeString": "struct W12Crowdsale.Stage memory" } ], "expression": { "argumentTypes": null, - "id": 787, + "id": 2027, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "7178:6:1", + "referencedDeclaration": 1300, + "src": "7887:6:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$108_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" } }, - "id": 789, + "id": 2029, "isConstant": false, "isLValue": false, "isPure": false, @@ -35061,13 +38687,13 @@ "memberName": "push", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7178:11:1", + "src": "7887:11:5", "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Stage_$108_storage_$returns$_t_uint256_$", + "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Stage_$1318_storage_$returns$_t_uint256_$", "typeString": "function (struct W12Crowdsale.Stage storage ref) returns (uint256)" } }, - "id": 828, + "id": 2068, "isConstant": false, "isLValue": false, "isPure": false, @@ -35075,15 +38701,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7178:328:1", + "src": "7887:328:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 829, + "id": 2069, "nodeType": "ExpressionStatement", - "src": "7178:328:1" + "src": "7887:328:5" }, { "expression": { @@ -35098,7 +38724,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 835, + "id": 2075, "isConstant": false, "isLValue": false, "isPure": false, @@ -35107,18 +38733,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 832, + "id": 2072, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "7569:6:1", + "referencedDeclaration": 1300, + "src": "8278:6:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$108_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" } }, - "id": 833, + "id": 2073, "isConstant": false, "isLValue": true, "isPure": false, @@ -35126,7 +38752,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7569:13:1", + "src": "8278:13:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -35137,14 +38763,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 834, + "id": 2074, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7585:1:1", + "src": "8294:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -35152,7 +38778,7 @@ }, "value": "1" }, - "src": "7569:17:1", + "src": "8278:17:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -35166,20 +38792,20 @@ "typeString": "uint256" } ], - "id": 831, + "id": 2071, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7563:5:1", + "src": "8272:5:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": "uint8" }, - "id": 836, + "id": 2076, "isConstant": false, "isLValue": false, "isPure": false, @@ -35187,7 +38813,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7563:24:1", + "src": "8272:24:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -35202,26 +38828,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 838, + "id": 2078, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 613, - "src": "7611:10:1", + "referencedDeclaration": 1853, + "src": "8320:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", "typeString": "uint256[6] memory[] memory" } }, - "id": 840, + "id": 2080, "indexExpression": { "argumentTypes": null, - "id": 839, + "id": 2079, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 645, - "src": "7622:1:1", + "referencedDeclaration": 1885, + "src": "8331:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -35232,24 +38858,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7611:13:1", + "src": "8320:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_memory", "typeString": "uint256[6] memory" } }, - "id": 842, + "id": 2082, "indexExpression": { "argumentTypes": null, "hexValue": "34", - "id": 841, + "id": 2081, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7625:1:1", + "src": "8334:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", @@ -35262,7 +38888,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7611:16:1", + "src": "8320:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -35276,20 +38902,20 @@ "typeString": "uint256" } ], - "id": 837, + "id": 2077, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7605:5:1", + "src": "8314:5:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": "uint8" }, - "id": 843, + "id": 2083, "isConstant": false, "isLValue": false, "isPure": false, @@ -35297,7 +38923,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7605:23:1", + "src": "8314:23:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -35312,26 +38938,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 845, + "id": 2085, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 613, - "src": "7652:10:1", + "referencedDeclaration": 1853, + "src": "8361:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", "typeString": "uint256[6] memory[] memory" } }, - "id": 847, + "id": 2087, "indexExpression": { "argumentTypes": null, - "id": 846, + "id": 2086, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 645, - "src": "7663:1:1", + "referencedDeclaration": 1885, + "src": "8372:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -35342,24 +38968,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7652:13:1", + "src": "8361:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_memory", "typeString": "uint256[6] memory" } }, - "id": 849, + "id": 2089, "indexExpression": { "argumentTypes": null, "hexValue": "35", - "id": 848, + "id": 2088, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7666:1:1", + "src": "8375:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_5_by_1", @@ -35372,7 +38998,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7652:16:1", + "src": "8361:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -35386,20 +39012,20 @@ "typeString": "uint256" } ], - "id": 844, + "id": 2084, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7646:5:1", + "src": "8355:5:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": "uint8" }, - "id": 850, + "id": 2090, "isConstant": false, "isLValue": false, "isPure": false, @@ -35407,7 +39033,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7646:23:1", + "src": "8355:23:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -35415,12 +39041,12 @@ }, { "argumentTypes": null, - "id": 851, + "id": 2091, "name": "bonusConditions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 616, - "src": "7687:15:1", + "referencedDeclaration": 1856, + "src": "8396:15:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" @@ -35446,18 +39072,18 @@ "typeString": "uint256[] memory" } ], - "id": 830, + "id": 2070, "name": "_setStageBonusConditions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1051, - "src": "7521:24:1", + "referencedDeclaration": 2291, + "src": "8230:24:5", "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)" } }, - "id": 852, + "id": 2092, "isConstant": false, "isLValue": false, "isPure": false, @@ -35465,15 +39091,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7521:195:1", + "src": "8230:195:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 853, + "id": 2093, "nodeType": "ExpressionStatement", - "src": "7521:195:1" + "src": "8230:195:5" } ] }, @@ -35483,19 +39109,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 651, + "id": 1891, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 648, + "id": 1888, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 645, - "src": "6467:1:1", + "referencedDeclaration": 1885, + "src": "7176:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -35507,18 +39133,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 649, + "id": 1889, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 613, - "src": "6471:10:1", + "referencedDeclaration": 1853, + "src": "7180:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$6_memory_$dyn_memory_ptr", "typeString": "uint256[6] memory[] memory" } }, - "id": 650, + "id": 1890, "isConstant": false, "isLValue": false, "isPure": false, @@ -35526,31 +39152,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6471:17:1", + "src": "7180:17:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6467:21:1", + "src": "7176:21:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 855, + "id": 2095, "initializationExpression": { "assignments": [ - 645 + 1885 ], "declarations": [ { "constant": false, - "id": 645, + "id": 1885, "name": "i", "nodeType": "VariableDeclaration", - "scope": 860, - "src": "6454:7:1", + "scope": 2100, + "src": "7163:7:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -35558,10 +39184,10 @@ "typeString": "uint8" }, "typeName": { - "id": 644, + "id": 1884, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "6454:5:1", + "src": "7163:5:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -35571,18 +39197,18 @@ "visibility": "internal" } ], - "id": 647, + "id": 1887, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 646, + "id": 1886, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6464:1:1", + "src": "7173:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -35591,12 +39217,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "6454:11:1" + "src": "7163:11:5" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 653, + "id": 1893, "isConstant": false, "isLValue": false, "isPure": false, @@ -35604,15 +39230,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "6490:3:1", + "src": "7199:3:5", "subExpression": { "argumentTypes": null, - "id": 652, + "id": 1892, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 645, - "src": "6490:1:1", + "referencedDeclaration": 1885, + "src": "7199:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -35623,12 +39249,12 @@ "typeString": "uint8" } }, - "id": 654, + "id": 1894, "nodeType": "ExpressionStatement", - "src": "6490:3:1" + "src": "7199:3:5" }, "nodeType": "ForStatement", - "src": "6449:1278:1" + "src": "7158:1278:5" }, { "eventCall": { @@ -35636,18 +39262,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 856, + "id": 2096, "name": "StagesUpdated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 155, - "src": "7742:13:1", + "referencedDeclaration": 1343, + "src": "8451:13:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 857, + "id": 2097, "isConstant": false, "isLValue": false, "isPure": false, @@ -35655,20 +39281,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7742:15:1", + "src": "8451:15:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 858, + "id": 2098, "nodeType": "EmitStatement", - "src": "7737:20:1" + "src": "8446: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": 860, + "id": 2100, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -35676,16 +39302,16 @@ "name": "_setStages", "nodeType": "FunctionDefinition", "parameters": { - "id": 617, + "id": 1857, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 613, + "id": 1853, "name": "parameters", "nodeType": "VariableDeclaration", - "scope": 860, - "src": "6143:20:1", + "scope": 2100, + "src": "6852:20:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -35695,27 +39321,27 @@ "typeName": { "baseType": { "baseType": { - "id": 609, + "id": 1849, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6143:4:1", + "src": "6852:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 611, + "id": 1851, "length": { "argumentTypes": null, "hexValue": "36", - "id": 610, + "id": 1850, "isConstant": false, "isLValue": false, "isPure": false, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6148:1:1", + "src": "6857:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": null, @@ -35724,16 +39350,16 @@ "value": "6" }, "nodeType": "ArrayTypeName", - "src": "6143:7:1", + "src": "6852:7:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_storage_ptr", "typeString": "uint256[6]" } }, - "id": 612, + "id": 1852, "length": null, "nodeType": "ArrayTypeName", - "src": "6143:9:1", + "src": "6852:9:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$6_storage_$dyn_storage_ptr", "typeString": "uint256[6][]" @@ -35744,11 +39370,11 @@ }, { "constant": false, - "id": 616, + "id": 1856, "name": "bonusConditions", "nodeType": "VariableDeclaration", - "scope": 860, - "src": "6165:22:1", + "scope": 2100, + "src": "6874:22:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -35757,19 +39383,19 @@ }, "typeName": { "baseType": { - "id": 614, + "id": 1854, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6165:4:1", + "src": "6874:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 615, + "id": 1855, "length": null, "nodeType": "ArrayTypeName", - "src": "6165:6:1", + "src": "6874:6:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -35779,26 +39405,26 @@ "visibility": "internal" } ], - "src": "6142:46:1" + "src": "6851:46:5" }, "payable": false, "returnParameters": { - "id": 618, + "id": 1858, "nodeType": "ParameterList", "parameters": [], - "src": "6198:0:1" + "src": "6907:0:5" }, - "scope": 1809, - "src": "6123:1641:1", + "scope": 3168, + "src": "6832:1641:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 1050, + "id": 2290, "nodeType": "Block", - "src": "8045:1087:1", + "src": "8754:1087:5", "statements": [ { "condition": { @@ -35807,7 +39433,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 878, + "id": 2118, "isConstant": false, "isLValue": false, "isPure": false, @@ -35818,19 +39444,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 874, + "id": 2114, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 872, + "id": 2112, "name": "start", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 864, - "src": "8059:5:1", + "referencedDeclaration": 2104, + "src": "8768:5:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -35841,14 +39467,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 873, + "id": 2113, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8068:1:1", + "src": "8777:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -35856,7 +39482,7 @@ }, "value": "0" }, - "src": "8059:10:1", + "src": "8768:10:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -35870,19 +39496,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 877, + "id": 2117, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 875, + "id": 2115, "name": "end", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 866, - "src": "8073:3:1", + "referencedDeclaration": 2106, + "src": "8782:3:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -35893,14 +39519,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 876, + "id": 2116, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8080:1:1", + "src": "8789:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -35908,31 +39534,31 @@ }, "value": "0" }, - "src": "8073:8:1", + "src": "8782:8:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "8059:22:1", + "src": "8768:22:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 903, + "id": 2143, "nodeType": "IfStatement", - "src": "8055:187:1", + "src": "8764:187:5", "trueBody": { - "id": 902, + "id": 2142, "nodeType": "Block", - "src": "8083:159:1", + "src": "8792:159:5", "statements": [ { "expression": { "argumentTypes": null, - "id": 888, + "id": 2128, "isConstant": false, "isLValue": false, "isPure": false, @@ -35943,26 +39569,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 879, + "id": 2119, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "8097:6:1", + "referencedDeclaration": 1300, + "src": "8806:6:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$108_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" } }, - "id": 881, + "id": 2121, "indexExpression": { "argumentTypes": null, - "id": 880, + "id": 2120, "name": "stageIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 862, - "src": "8104:10:1", + "referencedDeclaration": 2102, + "src": "8813:10:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -35973,21 +39599,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8097:18:1", + "src": "8806:18:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$108_storage", + "typeIdentifier": "t_struct$_Stage_$1318_storage", "typeString": "struct W12Crowdsale.Stage storage ref" } }, - "id": 882, + "id": 2122, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "volumeBoundaries", "nodeType": "MemberAccess", - "referencedDeclaration": 104, - "src": "8097:35:1", + "referencedDeclaration": 1314, + "src": "8806:35:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" @@ -36001,14 +39627,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 886, + "id": 2126, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8146:1:1", + "src": "8855:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -36024,39 +39650,39 @@ "typeString": "int_const 0" } ], - "id": 885, + "id": 2125, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "8135:10:1", + "src": "8844: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": 883, + "id": 2123, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "8139:4:1", + "src": "8848:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 884, + "id": 2124, "length": null, "nodeType": "ArrayTypeName", - "src": "8139:6:1", + "src": "8848:6:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" } } }, - "id": 887, + "id": 2127, "isConstant": false, "isLValue": false, "isPure": true, @@ -36064,26 +39690,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8135:13:1", + "src": "8844:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory", "typeString": "uint256[] memory" } }, - "src": "8097:51:1", + "src": "8806:51:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 889, + "id": 2129, "nodeType": "ExpressionStatement", - "src": "8097:51:1" + "src": "8806:51:5" }, { "expression": { "argumentTypes": null, - "id": 899, + "id": 2139, "isConstant": false, "isLValue": false, "isPure": false, @@ -36094,26 +39720,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 890, + "id": 2130, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "8162:6:1", + "referencedDeclaration": 1300, + "src": "8871:6:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$108_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" } }, - "id": 892, + "id": 2132, "indexExpression": { "argumentTypes": null, - "id": 891, + "id": 2131, "name": "stageIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 862, - "src": "8169:10:1", + "referencedDeclaration": 2102, + "src": "8878:10:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -36124,21 +39750,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8162:18:1", + "src": "8871:18:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$108_storage", + "typeIdentifier": "t_struct$_Stage_$1318_storage", "typeString": "struct W12Crowdsale.Stage storage ref" } }, - "id": 893, + "id": 2133, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "volumeBonuses", "nodeType": "MemberAccess", - "referencedDeclaration": 107, - "src": "8162:32:1", + "referencedDeclaration": 1317, + "src": "8871:32:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" @@ -36152,14 +39778,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 897, + "id": 2137, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8208:1:1", + "src": "8917:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -36175,39 +39801,39 @@ "typeString": "int_const 0" } ], - "id": 896, + "id": 2136, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "8197:10:1", + "src": "8906: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": 894, + "id": 2134, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "8201:4:1", + "src": "8910:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 895, + "id": 2135, "length": null, "nodeType": "ArrayTypeName", - "src": "8201:6:1", + "src": "8910:6:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" } } }, - "id": 898, + "id": 2138, "isConstant": false, "isLValue": false, "isPure": true, @@ -36215,28 +39841,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8197:13:1", + "src": "8906:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory", "typeString": "uint256[] memory" } }, - "src": "8162:48:1", + "src": "8871:48:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 900, + "id": 2140, "nodeType": "ExpressionStatement", - "src": "8162:48:1" + "src": "8871:48:5" }, { "expression": null, - "functionReturnParameters": 871, - "id": 901, + "functionReturnParameters": 2111, + "id": 2141, "nodeType": "Return", - "src": "8225:7:1" + "src": "8934:7:5" } ] } @@ -36251,19 +39877,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 908, + "id": 2148, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 905, + "id": 2145, "name": "end", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 866, - "src": "8260:3:1", + "referencedDeclaration": 2106, + "src": "8969:3:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -36275,18 +39901,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 906, + "id": 2146, "name": "bonusConditions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 869, - "src": "8267:15:1", + "referencedDeclaration": 2109, + "src": "8976:15:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 907, + "id": 2147, "isConstant": false, "isLValue": false, "isPure": false, @@ -36294,13 +39920,13 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8267:22:1", + "src": "8976:22:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "8260:29:1", + "src": "8969:29:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -36314,21 +39940,21 @@ "typeString": "bool" } ], - "id": 904, + "id": 2144, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "8252:7:1", + "referencedDeclaration": 10045, + "src": "8961:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 909, + "id": 2149, "isConstant": false, "isLValue": false, "isPure": false, @@ -36336,15 +39962,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8252:38:1", + "src": "8961:38:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 910, + "id": 2150, "nodeType": "ExpressionStatement", - "src": "8252:38:1" + "src": "8961:38:5" }, { "expression": { @@ -36356,19 +39982,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 914, + "id": 2154, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 912, + "id": 2152, "name": "start", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 864, - "src": "8308:5:1", + "referencedDeclaration": 2104, + "src": "9017:5:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -36378,18 +40004,18 @@ "operator": "<", "rightExpression": { "argumentTypes": null, - "id": 913, + "id": 2153, "name": "end", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 866, - "src": "8316:3:1", + "referencedDeclaration": 2106, + "src": "9025:3:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "8308:11:1", + "src": "9017:11:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -36403,21 +40029,21 @@ "typeString": "bool" } ], - "id": 911, + "id": 2151, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "8300:7:1", + "referencedDeclaration": 10045, + "src": "9009:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 915, + "id": 2155, "isConstant": false, "isLValue": false, "isPure": false, @@ -36425,15 +40051,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8300:20:1", + "src": "9009:20:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 916, + "id": 2156, "nodeType": "ExpressionStatement", - "src": "8300:20:1" + "src": "9009:20:5" }, { "expression": { @@ -36445,7 +40071,7 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 922, + "id": 2162, "isConstant": false, "isLValue": false, "isPure": false, @@ -36456,19 +40082,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 920, + "id": 2160, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 918, + "id": 2158, "name": "start", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 864, - "src": "8338:5:1", + "referencedDeclaration": 2104, + "src": "9047:5:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -36479,14 +40105,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "32", - "id": 919, + "id": 2159, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8346:1:1", + "src": "9055:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -36494,7 +40120,7 @@ }, "value": "2" }, - "src": "8338:9:1", + "src": "9047:9:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -36505,14 +40131,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 921, + "id": 2161, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8351:1:1", + "src": "9060:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -36520,7 +40146,7 @@ }, "value": "0" }, - "src": "8338:14:1", + "src": "9047:14:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -36534,21 +40160,21 @@ "typeString": "bool" } ], - "id": 917, + "id": 2157, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "8330:7:1", + "referencedDeclaration": 10045, + "src": "9039:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 923, + "id": 2163, "isConstant": false, "isLValue": false, "isPure": false, @@ -36556,15 +40182,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8330:23:1", + "src": "9039:23:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 924, + "id": 2164, "nodeType": "ExpressionStatement", - "src": "8330:23:1" + "src": "9039:23:5" }, { "expression": { @@ -36576,7 +40202,7 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 930, + "id": 2170, "isConstant": false, "isLValue": false, "isPure": false, @@ -36587,19 +40213,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 928, + "id": 2168, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 926, + "id": 2166, "name": "end", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 866, - "src": "8371:3:1", + "referencedDeclaration": 2106, + "src": "9080:3:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -36610,14 +40236,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "32", - "id": 927, + "id": 2167, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8377:1:1", + "src": "9086:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -36625,7 +40251,7 @@ }, "value": "2" }, - "src": "8371:7:1", + "src": "9080:7:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -36636,14 +40262,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 929, + "id": 2169, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8382:1:1", + "src": "9091:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -36651,7 +40277,7 @@ }, "value": "0" }, - "src": "8371:12:1", + "src": "9080:12:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -36665,21 +40291,21 @@ "typeString": "bool" } ], - "id": 925, + "id": 2165, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "8363:7:1", + "referencedDeclaration": 10045, + "src": "9072:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 931, + "id": 2171, "isConstant": false, "isLValue": false, "isPure": false, @@ -36687,28 +40313,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8363:21:1", + "src": "9072:21:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 932, + "id": 2172, "nodeType": "ExpressionStatement", - "src": "8363:21:1" + "src": "9072:21:5" }, { "assignments": [ - 936 + 2176 ], "declarations": [ { "constant": false, - "id": 936, + "id": 2176, "name": "boundaries", "nodeType": "VariableDeclaration", - "scope": 1051, - "src": "8395:24:1", + "scope": 2291, + "src": "9104:24:5", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -36717,19 +40343,19 @@ }, "typeName": { "baseType": { - "id": 934, + "id": 2174, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "8395:4:1", + "src": "9104:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 935, + "id": 2175, "length": null, "nodeType": "ArrayTypeName", - "src": "8395:6:1", + "src": "9104:6:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -36739,7 +40365,7 @@ "visibility": "internal" } ], - "id": 947, + "id": 2187, "initialValue": { "argumentTypes": null, "arguments": [ @@ -36749,7 +40375,7 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 945, + "id": 2185, "isConstant": false, "isLValue": false, "isPure": false, @@ -36763,19 +40389,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 942, + "id": 2182, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 940, + "id": 2180, "name": "end", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 866, - "src": "8434:3:1", + "referencedDeclaration": 2106, + "src": "9143:3:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -36785,32 +40411,32 @@ "operator": "-", "rightExpression": { "argumentTypes": null, - "id": 941, + "id": 2181, "name": "start", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 864, - "src": "8440:5:1", + "referencedDeclaration": 2104, + "src": "9149:5:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "8434:11:1", + "src": "9143:11:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } } ], - "id": 943, + "id": 2183, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "8433:13:1", + "src": "9142:13:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -36821,14 +40447,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "32", - "id": 944, + "id": 2184, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8449:1:1", + "src": "9158:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -36836,7 +40462,7 @@ }, "value": "2" }, - "src": "8433:17:1", + "src": "9142:17:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -36850,39 +40476,39 @@ "typeString": "uint8" } ], - "id": 939, + "id": 2179, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "8422:10:1", + "src": "9131: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": 937, + "id": 2177, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "8426:4:1", + "src": "9135:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 938, + "id": 2178, "length": null, "nodeType": "ArrayTypeName", - "src": "8426:6:1", + "src": "9135:6:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" } } }, - "id": 946, + "id": 2186, "isConstant": false, "isLValue": false, "isPure": false, @@ -36890,27 +40516,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8422:29:1", + "src": "9131:29:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory", "typeString": "uint256[] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "8395:56:1" + "src": "9104:56:5" }, { "assignments": [ - 951 + 2191 ], "declarations": [ { "constant": false, - "id": 951, + "id": 2191, "name": "bonuses", "nodeType": "VariableDeclaration", - "scope": 1051, - "src": "8461:21:1", + "scope": 2291, + "src": "9170:21:5", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -36919,19 +40545,19 @@ }, "typeName": { "baseType": { - "id": 949, + "id": 2189, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "8461:4:1", + "src": "9170:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 950, + "id": 2190, "length": null, "nodeType": "ArrayTypeName", - "src": "8461:6:1", + "src": "9170:6:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -36941,7 +40567,7 @@ "visibility": "internal" } ], - "id": 962, + "id": 2202, "initialValue": { "argumentTypes": null, "arguments": [ @@ -36951,7 +40577,7 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 960, + "id": 2200, "isConstant": false, "isLValue": false, "isPure": false, @@ -36965,19 +40591,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 957, + "id": 2197, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 955, + "id": 2195, "name": "end", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 866, - "src": "8497:3:1", + "referencedDeclaration": 2106, + "src": "9206:3:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -36987,32 +40613,32 @@ "operator": "-", "rightExpression": { "argumentTypes": null, - "id": 956, + "id": 2196, "name": "start", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 864, - "src": "8503:5:1", + "referencedDeclaration": 2104, + "src": "9212:5:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "8497:11:1", + "src": "9206:11:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } } ], - "id": 958, + "id": 2198, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "8496:13:1", + "src": "9205:13:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -37023,14 +40649,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "32", - "id": 959, + "id": 2199, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8512:1:1", + "src": "9221:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -37038,7 +40664,7 @@ }, "value": "2" }, - "src": "8496:17:1", + "src": "9205:17:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -37052,39 +40678,39 @@ "typeString": "uint8" } ], - "id": 954, + "id": 2194, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "8485:10:1", + "src": "9194: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": 952, + "id": 2192, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "8489:4:1", + "src": "9198:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 953, + "id": 2193, "length": null, "nodeType": "ArrayTypeName", - "src": "8489:6:1", + "src": "9198:6:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" } } }, - "id": 961, + "id": 2201, "isConstant": false, "isLValue": false, "isPure": false, @@ -37092,27 +40718,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8485:29:1", + "src": "9194:29:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory", "typeString": "uint256[] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "8461:53:1" + "src": "9170:53:5" }, { "assignments": [ - 964 + 2204 ], "declarations": [ { "constant": false, - "id": 964, + "id": 2204, "name": "k", "nodeType": "VariableDeclaration", - "scope": 1051, - "src": "8524:6:1", + "scope": 2291, + "src": "9233:6:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -37120,10 +40746,10 @@ "typeString": "uint256" }, "typeName": { - "id": 963, + "id": 2203, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "8524:4:1", + "src": "9233:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37133,18 +40759,18 @@ "visibility": "internal" } ], - "id": 966, + "id": 2206, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 965, + "id": 2205, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8533:1:1", + "src": "9242:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -37153,13 +40779,13 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "8524:10:1" + "src": "9233:10:5" }, { "body": { - "id": 1034, + "id": 2274, "nodeType": "Block", - "src": "8565:450:1", + "src": "9274:450:5", "statements": [ { "expression": { @@ -37174,37 +40800,37 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 971, + "id": 2211, "name": "bonusConditions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 869, - "src": "8614:15:1", + "referencedDeclaration": 2109, + "src": "9323:15:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 975, + "id": 2215, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 974, + "id": 2214, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 972, + "id": 2212, "name": "start", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 864, - "src": "8630:5:1", + "referencedDeclaration": 2104, + "src": "9339:5:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -37215,14 +40841,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 973, + "id": 2213, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8638:1:1", + "src": "9347:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -37230,7 +40856,7 @@ }, "value": "1" }, - "src": "8630:9:1", + "src": "9339:9:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -37241,27 +40867,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8614:26:1", + "src": "9323:26:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 976, + "id": 2216, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isPercent", "nodeType": "MemberAccess", - "referencedDeclaration": 4586, - "src": "8614:36:1", + "referencedDeclaration": 5058, + "src": "9323:36:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$", "typeString": "function (uint256) pure returns (bool)" } }, - "id": 977, + "id": 2217, "isConstant": false, "isLValue": false, "isPure": false, @@ -37269,7 +40895,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8614:38:1", + "src": "9323:38:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -37283,21 +40909,21 @@ "typeString": "bool" } ], - "id": 970, + "id": 2210, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "8606:7:1", + "referencedDeclaration": 10045, + "src": "9315:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 978, + "id": 2218, "isConstant": false, "isLValue": false, "isPure": false, @@ -37305,15 +40931,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8606:47:1", + "src": "9315:47:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 979, + "id": 2219, "nodeType": "ExpressionStatement", - "src": "8606:47:1" + "src": "9315:47:5" }, { "expression": { @@ -37325,7 +40951,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 989, + "id": 2229, "isConstant": false, "isLValue": false, "isPure": false, @@ -37334,37 +40960,37 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 981, + "id": 2221, "name": "bonusConditions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 869, - "src": "8675:15:1", + "referencedDeclaration": 2109, + "src": "9384:15:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 985, + "id": 2225, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 984, + "id": 2224, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 982, + "id": 2222, "name": "start", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 864, - "src": "8691:5:1", + "referencedDeclaration": 2104, + "src": "9400:5:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -37375,14 +41001,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 983, + "id": 2223, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8699:1:1", + "src": "9408:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -37390,7 +41016,7 @@ }, "value": "1" }, - "src": "8691:9:1", + "src": "9400:9:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -37401,7 +41027,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8675:26:1", + "src": "9384:26:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37416,32 +41042,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 986, + "id": 2226, "name": "Percent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4631, - "src": "8704:7:1", + "referencedDeclaration": 5103, + "src": "9413:7:5", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Percent_$4631_$", + "typeIdentifier": "t_type$_t_contract$_Percent_$5103_$", "typeString": "type(library Percent)" } }, - "id": 987, + "id": 2227, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "MAX", "nodeType": "MemberAccess", - "referencedDeclaration": 4543, - "src": "8704:11:1", + "referencedDeclaration": 5003, + "src": "9413:11:5", "typeDescriptions": { "typeIdentifier": "t_function_delegatecall_pure$__$returns$_t_uint256_$", "typeString": "function () pure returns (uint256)" } }, - "id": 988, + "id": 2228, "isConstant": false, "isLValue": false, "isPure": false, @@ -37449,13 +41075,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8704:13:1", + "src": "9413:13:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "8675:42:1", + "src": "9384:42:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -37469,21 +41095,21 @@ "typeString": "bool" } ], - "id": 980, + "id": 2220, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "8667:7:1", + "referencedDeclaration": 10045, + "src": "9376:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 990, + "id": 2230, "isConstant": false, "isLValue": false, "isPure": false, @@ -37491,15 +41117,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8667:51:1", + "src": "9376:51:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 991, + "id": 2231, "nodeType": "ExpressionStatement", - "src": "8667:51:1" + "src": "9376:51:5" }, { "condition": { @@ -37508,19 +41134,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 994, + "id": 2234, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 992, + "id": 2232, "name": "k", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 964, - "src": "8767:1:1", + "referencedDeclaration": 2204, + "src": "9476:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37531,14 +41157,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 993, + "id": 2233, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8771:1:1", + "src": "9480:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -37546,20 +41172,20 @@ }, "value": "0" }, - "src": "8767:5:1", + "src": "9476:5:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 1008, + "id": 2248, "nodeType": "IfStatement", - "src": "8763:95:1", + "src": "9472:95:5", "trueBody": { - "id": 1007, + "id": 2247, "nodeType": "Block", - "src": "8774:84:1", + "src": "9483:84:5", "statements": [ { "expression": { @@ -37571,7 +41197,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1004, + "id": 2244, "isConstant": false, "isLValue": false, "isPure": false, @@ -37580,37 +41206,37 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 996, + "id": 2236, "name": "boundaries", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 936, - "src": "8800:10:1", + "referencedDeclaration": 2176, + "src": "9509:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 1000, + "id": 2240, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 999, + "id": 2239, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 997, + "id": 2237, "name": "k", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 964, - "src": "8811:1:1", + "referencedDeclaration": 2204, + "src": "9520:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37621,14 +41247,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 998, + "id": 2238, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8815:1:1", + "src": "9524:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -37636,7 +41262,7 @@ }, "value": "1" }, - "src": "8811:5:1", + "src": "9520:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37647,7 +41273,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8800:17:1", + "src": "9509:17:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37659,26 +41285,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1001, + "id": 2241, "name": "bonusConditions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 869, - "src": "8820:15:1", + "referencedDeclaration": 2109, + "src": "9529:15:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 1003, + "id": 2243, "indexExpression": { "argumentTypes": null, - "id": 1002, + "id": 2242, "name": "start", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 864, - "src": "8836:5:1", + "referencedDeclaration": 2104, + "src": "9545:5:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -37689,13 +41315,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8820:22:1", + "src": "9529:22:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "8800:42:1", + "src": "9509:42:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -37709,21 +41335,21 @@ "typeString": "bool" } ], - "id": 995, + "id": 2235, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "8792:7:1", + "referencedDeclaration": 10045, + "src": "9501:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1005, + "id": 2245, "isConstant": false, "isLValue": false, "isPure": false, @@ -37731,15 +41357,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8792:51:1", + "src": "9501:51:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1006, + "id": 2246, "nodeType": "ExpressionStatement", - "src": "8792:51:1" + "src": "9501:51:5" } ] } @@ -37747,7 +41373,7 @@ { "expression": { "argumentTypes": null, - "id": 1015, + "id": 2255, "isConstant": false, "isLValue": false, "isPure": false, @@ -37756,26 +41382,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1009, + "id": 2249, "name": "boundaries", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 936, - "src": "8872:10:1", + "referencedDeclaration": 2176, + "src": "9581:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 1011, + "id": 2251, "indexExpression": { "argumentTypes": null, - "id": 1010, + "id": 2250, "name": "k", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 964, - "src": "8883:1:1", + "referencedDeclaration": 2204, + "src": "9592:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37786,7 +41412,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "8872:13:1", + "src": "9581:13:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37798,26 +41424,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1012, + "id": 2252, "name": "bonusConditions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 869, - "src": "8888:15:1", + "referencedDeclaration": 2109, + "src": "9597:15:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 1014, + "id": 2254, "indexExpression": { "argumentTypes": null, - "id": 1013, + "id": 2253, "name": "start", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 864, - "src": "8904:5:1", + "referencedDeclaration": 2104, + "src": "9613:5:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -37828,26 +41454,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8888:22:1", + "src": "9597:22:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "8872:38:1", + "src": "9581:38:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1016, + "id": 2256, "nodeType": "ExpressionStatement", - "src": "8872:38:1" + "src": "9581:38:5" }, { "expression": { "argumentTypes": null, - "id": 1025, + "id": 2265, "isConstant": false, "isLValue": false, "isPure": false, @@ -37856,26 +41482,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1017, + "id": 2257, "name": "bonuses", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 951, - "src": "8924:7:1", + "referencedDeclaration": 2191, + "src": "9633:7:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 1019, + "id": 2259, "indexExpression": { "argumentTypes": null, - "id": 1018, + "id": 2258, "name": "k", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 964, - "src": "8932:1:1", + "referencedDeclaration": 2204, + "src": "9641:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37886,7 +41512,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "8924:10:1", + "src": "9633:10:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37898,37 +41524,37 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1020, + "id": 2260, "name": "bonusConditions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 869, - "src": "8937:15:1", + "referencedDeclaration": 2109, + "src": "9646:15:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 1024, + "id": 2264, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 1023, + "id": 2263, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1021, + "id": 2261, "name": "start", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 864, - "src": "8953:5:1", + "referencedDeclaration": 2104, + "src": "9662:5:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -37939,14 +41565,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 1022, + "id": 2262, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8961:1:1", + "src": "9670:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -37954,7 +41580,7 @@ }, "value": "1" }, - "src": "8953:9:1", + "src": "9662:9:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -37965,26 +41591,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8937:26:1", + "src": "9646:26:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "8924:39:1", + "src": "9633:39:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1026, + "id": 2266, "nodeType": "ExpressionStatement", - "src": "8924:39:1" + "src": "9633:39:5" }, { "expression": { "argumentTypes": null, - "id": 1028, + "id": 2268, "isConstant": false, "isLValue": false, "isPure": false, @@ -37992,15 +41618,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "8977:3:1", + "src": "9686:3:5", "subExpression": { "argumentTypes": null, - "id": 1027, + "id": 2267, "name": "k", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 964, - "src": "8977:1:1", + "referencedDeclaration": 2204, + "src": "9686:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -38011,26 +41637,26 @@ "typeString": "uint256" } }, - "id": 1029, + "id": 2269, "nodeType": "ExpressionStatement", - "src": "8977:3:1" + "src": "9686:3:5" }, { "expression": { "argumentTypes": null, - "id": 1032, + "id": 2272, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1030, + "id": 2270, "name": "start", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 864, - "src": "8994:5:1", + "referencedDeclaration": 2104, + "src": "9703:5:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -38041,14 +41667,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "32", - "id": 1031, + "id": 2271, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9003:1:1", + "src": "9712:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -38056,15 +41682,15 @@ }, "value": "2" }, - "src": "8994:10:1", + "src": "9703:10:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 1033, + "id": 2273, "nodeType": "ExpressionStatement", - "src": "8994:10:1" + "src": "9703:10:5" } ] }, @@ -38074,19 +41700,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 969, + "id": 2209, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 967, + "id": 2207, "name": "start", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 864, - "src": "8552:5:1", + "referencedDeclaration": 2104, + "src": "9261:5:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -38096,31 +41722,31 @@ "operator": "<", "rightExpression": { "argumentTypes": null, - "id": 968, + "id": 2208, "name": "end", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 866, - "src": "8560:3:1", + "referencedDeclaration": 2106, + "src": "9269:3:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "8552:11:1", + "src": "9261:11:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1035, + "id": 2275, "nodeType": "WhileStatement", - "src": "8545:470:1" + "src": "9254:470:5" }, { "expression": { "argumentTypes": null, - "id": 1041, + "id": 2281, "isConstant": false, "isLValue": false, "isPure": false, @@ -38131,26 +41757,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1036, + "id": 2276, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "9025:6:1", + "referencedDeclaration": 1300, + "src": "9734:6:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$108_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" } }, - "id": 1038, + "id": 2278, "indexExpression": { "argumentTypes": null, - "id": 1037, + "id": 2277, "name": "stageIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 862, - "src": "9032:10:1", + "referencedDeclaration": 2102, + "src": "9741:10:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -38161,21 +41787,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9025:18:1", + "src": "9734:18:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$108_storage", + "typeIdentifier": "t_struct$_Stage_$1318_storage", "typeString": "struct W12Crowdsale.Stage storage ref" } }, - "id": 1039, + "id": 2279, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "volumeBoundaries", "nodeType": "MemberAccess", - "referencedDeclaration": 104, - "src": "9025:35:1", + "referencedDeclaration": 1314, + "src": "9734:35:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" @@ -38185,31 +41811,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1040, + "id": 2280, "name": "boundaries", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 936, - "src": "9063:10:1", + "referencedDeclaration": 2176, + "src": "9772:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "src": "9025:48:1", + "src": "9734:48:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 1042, + "id": 2282, "nodeType": "ExpressionStatement", - "src": "9025:48:1" + "src": "9734:48:5" }, { "expression": { "argumentTypes": null, - "id": 1048, + "id": 2288, "isConstant": false, "isLValue": false, "isPure": false, @@ -38220,26 +41846,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1043, + "id": 2283, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "9083:6:1", + "referencedDeclaration": 1300, + "src": "9792:6:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$108_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" } }, - "id": 1045, + "id": 2285, "indexExpression": { "argumentTypes": null, - "id": 1044, + "id": 2284, "name": "stageIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 862, - "src": "9090:10:1", + "referencedDeclaration": 2102, + "src": "9799:10:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -38250,21 +41876,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9083:18:1", + "src": "9792:18:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$108_storage", + "typeIdentifier": "t_struct$_Stage_$1318_storage", "typeString": "struct W12Crowdsale.Stage storage ref" } }, - "id": 1046, + "id": 2286, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "volumeBonuses", "nodeType": "MemberAccess", - "referencedDeclaration": 107, - "src": "9083:32:1", + "referencedDeclaration": 1317, + "src": "9792:32:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" @@ -38274,31 +41900,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1047, + "id": 2287, "name": "bonuses", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 951, - "src": "9118:7:1", + "referencedDeclaration": 2191, + "src": "9827:7:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "src": "9083:42:1", + "src": "9792:42:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 1049, + "id": 2289, "nodeType": "ExpressionStatement", - "src": "9083:42:1" + "src": "9792:42:5" } ] }, "documentation": "@dev Set stage bonus conditions by stage index\n@param bonusConditions List of bonus conditions:\n[uint boundary, uint bonus, ...]", - "id": 1051, + "id": 2291, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -38306,16 +41932,16 @@ "name": "_setStageBonusConditions", "nodeType": "FunctionDefinition", "parameters": { - "id": 870, + "id": 2110, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 862, + "id": 2102, "name": "stageIndex", "nodeType": "VariableDeclaration", - "scope": 1051, - "src": "7970:16:1", + "scope": 2291, + "src": "8679:16:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -38323,10 +41949,10 @@ "typeString": "uint8" }, "typeName": { - "id": 861, + "id": 2101, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "7970:5:1", + "src": "8679:5:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -38337,11 +41963,11 @@ }, { "constant": false, - "id": 864, + "id": 2104, "name": "start", "nodeType": "VariableDeclaration", - "scope": 1051, - "src": "7988:11:1", + "scope": 2291, + "src": "8697:11:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -38349,10 +41975,10 @@ "typeString": "uint8" }, "typeName": { - "id": 863, + "id": 2103, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "7988:5:1", + "src": "8697:5:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -38363,11 +41989,11 @@ }, { "constant": false, - "id": 866, + "id": 2106, "name": "end", "nodeType": "VariableDeclaration", - "scope": 1051, - "src": "8001:9:1", + "scope": 2291, + "src": "8710:9:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -38375,10 +42001,10 @@ "typeString": "uint8" }, "typeName": { - "id": 865, + "id": 2105, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "8001:5:1", + "src": "8710:5:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -38389,11 +42015,11 @@ }, { "constant": false, - "id": 869, + "id": 2109, "name": "bonusConditions", "nodeType": "VariableDeclaration", - "scope": 1051, - "src": "8012:22:1", + "scope": 2291, + "src": "8721:22:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -38402,19 +42028,19 @@ }, "typeName": { "baseType": { - "id": 867, + "id": 2107, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "8012:4:1", + "src": "8721:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 868, + "id": 2108, "length": null, "nodeType": "ArrayTypeName", - "src": "8012:6:1", + "src": "8721:6:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -38424,26 +42050,26 @@ "visibility": "internal" } ], - "src": "7969:66:1" + "src": "8678:66:5" }, "payable": false, "returnParameters": { - "id": 871, + "id": 2111, "nodeType": "ParameterList", "parameters": [], - "src": "8045:0:1" + "src": "8754:0:5" }, - "scope": 1809, - "src": "7936:1196:1", + "scope": 3168, + "src": "8645:1196:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 1328, + "id": 2568, "nodeType": "Block", - "src": "9698:1659:1", + "src": "10407:1659:5", "statements": [ { "condition": { @@ -38452,7 +42078,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1067, + "id": 2307, "isConstant": false, "isLValue": false, "isPure": false, @@ -38461,18 +42087,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1064, + "id": 2304, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "9712:6:1", + "referencedDeclaration": 1300, + "src": "10421:6:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$108_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" } }, - "id": 1065, + "id": 2305, "isConstant": false, "isLValue": true, "isPure": false, @@ -38480,7 +42106,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "9712:13:1", + "src": "10421:13:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -38491,14 +42117,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1066, + "id": 2306, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9728:1:1", + "src": "10437:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -38506,20 +42132,20 @@ }, "value": "0" }, - "src": "9712:17:1", + "src": "10421:17:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 1085, + "id": 2325, "nodeType": "IfStatement", - "src": "9708:109:1", + "src": "10417:109:5", "trueBody": { - "id": 1084, + "id": 2324, "nodeType": "Block", - "src": "9731:86:1", + "src": "10440:86:5", "statements": [ { "expression": { @@ -38531,7 +42157,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1081, + "id": 2321, "isConstant": false, "isLValue": false, "isPure": false, @@ -38542,25 +42168,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1069, + "id": 2309, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "9753:6:1", + "referencedDeclaration": 1300, + "src": "10462:6:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$108_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" } }, - "id": 1074, + "id": 2314, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1073, + "id": 2313, "isConstant": false, "isLValue": false, "isPure": false, @@ -38569,18 +42195,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1070, + "id": 2310, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "9760:6:1", + "referencedDeclaration": 1300, + "src": "10469:6:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$108_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" } }, - "id": 1071, + "id": 2311, "isConstant": false, "isLValue": true, "isPure": false, @@ -38588,7 +42214,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "9760:13:1", + "src": "10469:13:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -38599,14 +42225,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 1072, + "id": 2312, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9776:1:1", + "src": "10485:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -38614,7 +42240,7 @@ }, "value": "1" }, - "src": "9760:17:1", + "src": "10469:17:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -38625,21 +42251,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9753:25:1", + "src": "10462:25:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$108_storage", + "typeIdentifier": "t_struct$_Stage_$1318_storage", "typeString": "struct W12Crowdsale.Stage storage ref" } }, - "id": 1075, + "id": 2315, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "endDate", "nodeType": "MemberAccess", - "referencedDeclaration": 97, - "src": "9753:33:1", + "referencedDeclaration": 1307, + "src": "10462:33:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -38653,29 +42279,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1076, + "id": 2316, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1056, - "src": "9789:10:1", + "referencedDeclaration": 2296, + "src": "10498:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", "typeString": "uint256[4] memory[] memory" } }, - "id": 1078, + "id": 2318, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1077, + "id": 2317, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9800:1:1", + "src": "10509:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -38688,24 +42314,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9789:13:1", + "src": "10498:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory", "typeString": "uint256[4] memory" } }, - "id": 1080, + "id": 2320, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1079, + "id": 2319, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9803:1:1", + "src": "10512:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -38718,13 +42344,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9789:16:1", + "src": "10498:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9753:52:1", + "src": "10462:52:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -38738,21 +42364,21 @@ "typeString": "bool" } ], - "id": 1068, + "id": 2308, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "9745:7:1", + "referencedDeclaration": 10045, + "src": "10454:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1082, + "id": 2322, "isConstant": false, "isLValue": false, "isPure": false, @@ -38760,15 +42386,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9745:61:1", + "src": "10454:61:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1083, + "id": 2323, "nodeType": "ExpressionStatement", - "src": "9745:61:1" + "src": "10454:61:5" } ] } @@ -38776,7 +42402,7 @@ { "expression": { "argumentTypes": null, - "id": 1087, + "id": 2327, "isConstant": false, "isLValue": false, "isPure": false, @@ -38784,17 +42410,17 @@ "nodeType": "UnaryOperation", "operator": "delete", "prefix": true, - "src": "9827:17:1", + "src": "10536:17:5", "subExpression": { "argumentTypes": null, - "id": 1086, + "id": 2326, "name": "milestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 143, - "src": "9834:10:1", + "referencedDeclaration": 1303, + "src": "10543:10:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$121_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Milestone_$1331_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" } }, @@ -38803,22 +42429,22 @@ "typeString": "tuple()" } }, - "id": 1088, + "id": 2328, "nodeType": "ExpressionStatement", - "src": "9827:17:1" + "src": "10536:17:5" }, { "assignments": [ - 1090 + 2330 ], "declarations": [ { "constant": false, - "id": 1090, + "id": 2330, "name": "offset", "nodeType": "VariableDeclaration", - "scope": 1329, - "src": "9855:11:1", + "scope": 2569, + "src": "10564:11:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -38826,10 +42452,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1089, + "id": 2329, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "9855:4:1", + "src": "10564:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -38839,18 +42465,18 @@ "visibility": "internal" } ], - "id": 1092, + "id": 2332, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 1091, + "id": 2331, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9869:1:1", + "src": "10578:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -38859,20 +42485,20 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "9855:15:1" + "src": "10564:15:5" }, { "assignments": [ - 1094 + 2334 ], "declarations": [ { "constant": false, - "id": 1094, + "id": 2334, "name": "k", "nodeType": "VariableDeclaration", - "scope": 1329, - "src": "9880:6:1", + "scope": 2569, + "src": "10589:6:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -38880,10 +42506,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1093, + "id": 2333, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "9880:4:1", + "src": "10589:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -38893,18 +42519,18 @@ "visibility": "internal" } ], - "id": 1096, + "id": 2336, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 1095, + "id": 2335, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9889:1:1", + "src": "10598:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -38913,20 +42539,20 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "9880:10:1" + "src": "10589:10:5" }, { "assignments": [ - 1098 + 2338 ], "declarations": [ { "constant": false, - "id": 1098, + "id": 2338, "name": "totalPercents", "nodeType": "VariableDeclaration", - "scope": 1329, - "src": "9900:18:1", + "scope": 2569, + "src": "10609:18:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -38934,10 +42560,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1097, + "id": 2337, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "9900:4:1", + "src": "10609:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -38947,18 +42573,18 @@ "visibility": "internal" } ], - "id": 1100, + "id": 2340, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 1099, + "id": 2339, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9921:1:1", + "src": "10630:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -38967,13 +42593,13 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "9900:22:1" + "src": "10609:22:5" }, { "body": { - "id": 1315, + "id": 2555, "nodeType": "Block", - "src": "9979:1287:1", + "src": "10688:1287:5", "statements": [ { "expression": { @@ -38985,7 +42611,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1122, + "id": 2362, "isConstant": false, "isLValue": false, "isPure": false, @@ -38996,26 +42622,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1113, + "id": 2353, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1056, - "src": "10031:10:1", + "referencedDeclaration": 2296, + "src": "10740:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", "typeString": "uint256[4] memory[] memory" } }, - "id": 1115, + "id": 2355, "indexExpression": { "argumentTypes": null, - "id": 1114, + "id": 2354, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1102, - "src": "10042:1:1", + "referencedDeclaration": 2342, + "src": "10751:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -39026,24 +42652,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10031:13:1", + "src": "10740:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory", "typeString": "uint256[4] memory" } }, - "id": 1117, + "id": 2357, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1116, + "id": 2356, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10045:1:1", + "src": "10754:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -39056,7 +42682,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10031:16:1", + "src": "10740:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -39069,7 +42695,7 @@ "arguments": [ { "argumentTypes": null, - "id": 1120, + "id": 2360, "isConstant": false, "isLValue": false, "isPure": true, @@ -39077,18 +42703,18 @@ "nodeType": "UnaryOperation", "operator": "-", "prefix": true, - "src": "10058:3:1", + "src": "10767:3:5", "subExpression": { "argumentTypes": null, "hexValue": "31", - "id": 1119, + "id": 2359, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10060:1:1", + "src": "10769:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -39109,20 +42735,20 @@ "typeString": "int_const -1" } ], - "id": 1118, + "id": 2358, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "10051:6:1", + "src": "10760:6:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": "uint32" }, - "id": 1121, + "id": 2361, "isConstant": false, "isLValue": false, "isPure": true, @@ -39130,13 +42756,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10051:11:1", + "src": "10760:11:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "10031:31:1", + "src": "10740:31:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -39150,21 +42776,21 @@ "typeString": "bool" } ], - "id": 1112, + "id": 2352, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "10023:7:1", + "referencedDeclaration": 10045, + "src": "10732:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1123, + "id": 2363, "isConstant": false, "isLValue": false, "isPure": false, @@ -39172,15 +42798,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10023:40:1", + "src": "10732:40:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1124, + "id": 2364, "nodeType": "ExpressionStatement", - "src": "10023:40:1" + "src": "10732:40:5" }, { "expression": { @@ -39192,7 +42818,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1135, + "id": 2375, "isConstant": false, "isLValue": false, "isPure": false, @@ -39203,26 +42829,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1126, + "id": 2366, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1056, - "src": "10085:10:1", + "referencedDeclaration": 2296, + "src": "10794:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", "typeString": "uint256[4] memory[] memory" } }, - "id": 1128, + "id": 2368, "indexExpression": { "argumentTypes": null, - "id": 1127, + "id": 2367, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1102, - "src": "10096:1:1", + "referencedDeclaration": 2342, + "src": "10805:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -39233,24 +42859,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10085:13:1", + "src": "10794:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory", "typeString": "uint256[4] memory" } }, - "id": 1130, + "id": 2370, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 1129, + "id": 2369, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10099:1:1", + "src": "10808:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -39263,7 +42889,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10085:16:1", + "src": "10794:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -39276,7 +42902,7 @@ "arguments": [ { "argumentTypes": null, - "id": 1133, + "id": 2373, "isConstant": false, "isLValue": false, "isPure": true, @@ -39284,18 +42910,18 @@ "nodeType": "UnaryOperation", "operator": "-", "prefix": true, - "src": "10112:3:1", + "src": "10821:3:5", "subExpression": { "argumentTypes": null, "hexValue": "31", - "id": 1132, + "id": 2372, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10114:1:1", + "src": "10823:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -39316,20 +42942,20 @@ "typeString": "int_const -1" } ], - "id": 1131, + "id": 2371, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "10105:6:1", + "src": "10814:6:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": "uint32" }, - "id": 1134, + "id": 2374, "isConstant": false, "isLValue": false, "isPure": true, @@ -39337,13 +42963,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10105:11:1", + "src": "10814:11:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "10085:31:1", + "src": "10794:31:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -39357,21 +42983,21 @@ "typeString": "bool" } ], - "id": 1125, + "id": 2365, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "10077:7:1", + "referencedDeclaration": 10045, + "src": "10786:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1136, + "id": 2376, "isConstant": false, "isLValue": false, "isPure": false, @@ -39379,15 +43005,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10077:40:1", + "src": "10786:40:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1137, + "id": 2377, "nodeType": "ExpressionStatement", - "src": "10077:40:1" + "src": "10786:40:5" }, { "expression": { @@ -39399,7 +43025,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1148, + "id": 2388, "isConstant": false, "isLValue": false, "isPure": false, @@ -39410,26 +43036,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1139, + "id": 2379, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1056, - "src": "10139:10:1", + "referencedDeclaration": 2296, + "src": "10848:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", "typeString": "uint256[4] memory[] memory" } }, - "id": 1141, + "id": 2381, "indexExpression": { "argumentTypes": null, - "id": 1140, + "id": 2380, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1102, - "src": "10150:1:1", + "referencedDeclaration": 2342, + "src": "10859:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -39440,24 +43066,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10139:13:1", + "src": "10848:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory", "typeString": "uint256[4] memory" } }, - "id": 1143, + "id": 2383, "indexExpression": { "argumentTypes": null, "hexValue": "32", - "id": 1142, + "id": 2382, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10153:1:1", + "src": "10862:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -39470,7 +43096,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10139:16:1", + "src": "10848:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -39483,7 +43109,7 @@ "arguments": [ { "argumentTypes": null, - "id": 1146, + "id": 2386, "isConstant": false, "isLValue": false, "isPure": true, @@ -39491,18 +43117,18 @@ "nodeType": "UnaryOperation", "operator": "-", "prefix": true, - "src": "10166:3:1", + "src": "10875:3:5", "subExpression": { "argumentTypes": null, "hexValue": "31", - "id": 1145, + "id": 2385, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10168:1:1", + "src": "10877:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -39523,20 +43149,20 @@ "typeString": "int_const -1" } ], - "id": 1144, + "id": 2384, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "10159:6:1", + "src": "10868:6:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": "uint32" }, - "id": 1147, + "id": 2387, "isConstant": false, "isLValue": false, "isPure": true, @@ -39544,13 +43170,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10159:11:1", + "src": "10868:11:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "10139:31:1", + "src": "10848:31:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -39564,21 +43190,21 @@ "typeString": "bool" } ], - "id": 1138, + "id": 2378, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "10131:7:1", + "referencedDeclaration": 10045, + "src": "10840:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1149, + "id": 2389, "isConstant": false, "isLValue": false, "isPure": false, @@ -39586,15 +43212,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10131:40:1", + "src": "10840:40:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1150, + "id": 2390, "nodeType": "ExpressionStatement", - "src": "10131:40:1" + "src": "10840:40:5" }, { "expression": { @@ -39606,7 +43232,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1158, + "id": 2398, "isConstant": false, "isLValue": false, "isPure": false, @@ -39617,26 +43243,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1152, + "id": 2392, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1056, - "src": "10221:10:1", + "referencedDeclaration": 2296, + "src": "10930:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", "typeString": "uint256[4] memory[] memory" } }, - "id": 1154, + "id": 2394, "indexExpression": { "argumentTypes": null, - "id": 1153, + "id": 2393, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1102, - "src": "10232:1:1", + "referencedDeclaration": 2342, + "src": "10941:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -39647,24 +43273,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10221:13:1", + "src": "10930:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory", "typeString": "uint256[4] memory" } }, - "id": 1156, + "id": 2396, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1155, + "id": 2395, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10235:1:1", + "src": "10944:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -39677,7 +43303,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10221:16:1", + "src": "10930:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -39687,18 +43313,18 @@ "operator": ">", "rightExpression": { "argumentTypes": null, - "id": 1157, + "id": 2397, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7296, - "src": "10240:3:1", + "referencedDeclaration": 10044, + "src": "10949:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10221:22:1", + "src": "10930:22:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -39712,21 +43338,21 @@ "typeString": "bool" } ], - "id": 1151, + "id": 2391, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "10213:7:1", + "referencedDeclaration": 10045, + "src": "10922:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1159, + "id": 2399, "isConstant": false, "isLValue": false, "isPure": false, @@ -39734,15 +43360,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10213:31:1", + "src": "10922:31:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1160, + "id": 2400, "nodeType": "ExpressionStatement", - "src": "10213:31:1" + "src": "10922:31:5" }, { "expression": { @@ -39754,7 +43380,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1172, + "id": 2412, "isConstant": false, "isLValue": false, "isPure": false, @@ -39765,26 +43391,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1162, + "id": 2402, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1056, - "src": "10266:10:1", + "referencedDeclaration": 2296, + "src": "10975:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", "typeString": "uint256[4] memory[] memory" } }, - "id": 1164, + "id": 2404, "indexExpression": { "argumentTypes": null, - "id": 1163, + "id": 2403, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1102, - "src": "10277:1:1", + "referencedDeclaration": 2342, + "src": "10986:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -39795,24 +43421,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10266:13:1", + "src": "10975:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory", "typeString": "uint256[4] memory" } }, - "id": 1166, + "id": 2406, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 1165, + "id": 2405, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10280:1:1", + "src": "10989:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -39825,7 +43451,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10266:16:1", + "src": "10975:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -39839,26 +43465,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1167, + "id": 2407, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1056, - "src": "10285:10:1", + "referencedDeclaration": 2296, + "src": "10994:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", "typeString": "uint256[4] memory[] memory" } }, - "id": 1169, + "id": 2409, "indexExpression": { "argumentTypes": null, - "id": 1168, + "id": 2408, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1102, - "src": "10296:1:1", + "referencedDeclaration": 2342, + "src": "11005:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -39869,24 +43495,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10285:13:1", + "src": "10994:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory", "typeString": "uint256[4] memory" } }, - "id": 1171, + "id": 2411, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1170, + "id": 2410, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10299:1:1", + "src": "11008:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -39899,13 +43525,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10285:16:1", + "src": "10994:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10266:35:1", + "src": "10975:35:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -39919,21 +43545,21 @@ "typeString": "bool" } ], - "id": 1161, + "id": 2401, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "10258:7:1", + "referencedDeclaration": 10045, + "src": "10967:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1173, + "id": 2413, "isConstant": false, "isLValue": false, "isPure": false, @@ -39941,15 +43567,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10258:44:1", + "src": "10967:44:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1174, + "id": 2414, "nodeType": "ExpressionStatement", - "src": "10258:44:1" + "src": "10967:44:5" }, { "expression": { @@ -39961,7 +43587,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1186, + "id": 2426, "isConstant": false, "isLValue": false, "isPure": false, @@ -39972,26 +43598,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1176, + "id": 2416, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1056, - "src": "10324:10:1", + "referencedDeclaration": 2296, + "src": "11033:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", "typeString": "uint256[4] memory[] memory" } }, - "id": 1178, + "id": 2418, "indexExpression": { "argumentTypes": null, - "id": 1177, + "id": 2417, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1102, - "src": "10335:1:1", + "referencedDeclaration": 2342, + "src": "11044:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -40002,24 +43628,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10324:13:1", + "src": "11033:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory", "typeString": "uint256[4] memory" } }, - "id": 1180, + "id": 2420, "indexExpression": { "argumentTypes": null, "hexValue": "32", - "id": 1179, + "id": 2419, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10338:1:1", + "src": "11047:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -40032,7 +43658,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10324:16:1", + "src": "11033:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -40046,26 +43672,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1181, + "id": 2421, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1056, - "src": "10343:10:1", + "referencedDeclaration": 2296, + "src": "11052:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", "typeString": "uint256[4] memory[] memory" } }, - "id": 1183, + "id": 2423, "indexExpression": { "argumentTypes": null, - "id": 1182, + "id": 2422, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1102, - "src": "10354:1:1", + "referencedDeclaration": 2342, + "src": "11063:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -40076,24 +43702,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10343:13:1", + "src": "11052:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory", "typeString": "uint256[4] memory" } }, - "id": 1185, + "id": 2425, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 1184, + "id": 2424, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10357:1:1", + "src": "11066:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -40106,13 +43732,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10343:16:1", + "src": "11052:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10324:35:1", + "src": "11033:35:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -40126,21 +43752,21 @@ "typeString": "bool" } ], - "id": 1175, + "id": 2415, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "10316:7:1", + "referencedDeclaration": 10045, + "src": "11025:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1187, + "id": 2427, "isConstant": false, "isLValue": false, "isPure": false, @@ -40148,15 +43774,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10316:44:1", + "src": "11025:44:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1188, + "id": 2428, "nodeType": "ExpressionStatement", - "src": "10316:44:1" + "src": "11025:44:5" }, { "condition": { @@ -40165,19 +43791,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 1191, + "id": 2431, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1189, + "id": 2429, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1102, - "src": "10379:1:1", + "referencedDeclaration": 2342, + "src": "11088:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -40188,14 +43814,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1190, + "id": 2430, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10383:1:1", + "src": "11092:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -40203,20 +43829,20 @@ }, "value": "0" }, - "src": "10379:5:1", + "src": "11088:5:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 1209, + "id": 2449, "nodeType": "IfStatement", - "src": "10375:92:1", + "src": "11084:92:5", "trueBody": { - "id": 1208, + "id": 2448, "nodeType": "Block", - "src": "10386:81:1", + "src": "11095:81:5", "statements": [ { "expression": { @@ -40228,7 +43854,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1205, + "id": 2445, "isConstant": false, "isLValue": false, "isPure": false, @@ -40239,37 +43865,37 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1193, + "id": 2433, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1056, - "src": "10412:10:1", + "referencedDeclaration": 2296, + "src": "11121:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", "typeString": "uint256[4] memory[] memory" } }, - "id": 1197, + "id": 2437, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 1196, + "id": 2436, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1194, + "id": 2434, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1102, - "src": "10423:1:1", + "referencedDeclaration": 2342, + "src": "11132:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -40280,14 +43906,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 1195, + "id": 2435, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10427:1:1", + "src": "11136:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -40295,7 +43921,7 @@ }, "value": "1" }, - "src": "10423:5:1", + "src": "11132:5:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -40306,24 +43932,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10412:17:1", + "src": "11121:17:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory", "typeString": "uint256[4] memory" } }, - "id": 1199, + "id": 2439, "indexExpression": { "argumentTypes": null, "hexValue": "32", - "id": 1198, + "id": 2438, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10430:1:1", + "src": "11139:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -40336,7 +43962,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10412:20:1", + "src": "11121:20:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -40350,26 +43976,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1200, + "id": 2440, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1056, - "src": "10435:10:1", + "referencedDeclaration": 2296, + "src": "11144:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", "typeString": "uint256[4] memory[] memory" } }, - "id": 1202, + "id": 2442, "indexExpression": { "argumentTypes": null, - "id": 1201, + "id": 2441, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1102, - "src": "10446:1:1", + "referencedDeclaration": 2342, + "src": "11155:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -40380,24 +44006,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10435:13:1", + "src": "11144:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory", "typeString": "uint256[4] memory" } }, - "id": 1204, + "id": 2444, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1203, + "id": 2443, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10449:1:1", + "src": "11158:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -40410,13 +44036,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10435:16:1", + "src": "11144:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10412:39:1", + "src": "11121:39:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -40430,21 +44056,21 @@ "typeString": "bool" } ], - "id": 1192, + "id": 2432, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "10404:7:1", + "referencedDeclaration": 10045, + "src": "11113:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1206, + "id": 2446, "isConstant": false, "isLValue": false, "isPure": false, @@ -40452,15 +44078,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10404:48:1", + "src": "11113:48:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1207, + "id": 2447, "nodeType": "ExpressionStatement", - "src": "10404:48:1" + "src": "11113:48:5" } ] } @@ -40480,26 +44106,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1211, + "id": 2451, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1056, - "src": "10525:10:1", + "referencedDeclaration": 2296, + "src": "11234:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", "typeString": "uint256[4] memory[] memory" } }, - "id": 1213, + "id": 2453, "indexExpression": { "argumentTypes": null, - "id": 1212, + "id": 2452, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1102, - "src": "10536:1:1", + "referencedDeclaration": 2342, + "src": "11245:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -40510,24 +44136,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10525:13:1", + "src": "11234:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory", "typeString": "uint256[4] memory" } }, - "id": 1215, + "id": 2455, "indexExpression": { "argumentTypes": null, "hexValue": "33", - "id": 1214, + "id": 2454, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10539:1:1", + "src": "11248:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", @@ -40540,27 +44166,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10525:16:1", + "src": "11234:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1216, + "id": 2456, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isPercent", "nodeType": "MemberAccess", - "referencedDeclaration": 4586, - "src": "10525:26:1", + "referencedDeclaration": 5058, + "src": "11234:26:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$", "typeString": "function (uint256) pure returns (bool)" } }, - "id": 1217, + "id": 2457, "isConstant": false, "isLValue": false, "isPure": false, @@ -40568,7 +44194,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10525:28:1", + "src": "11234:28:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -40582,21 +44208,21 @@ "typeString": "bool" } ], - "id": 1210, + "id": 2450, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "10517:7:1", + "referencedDeclaration": 10045, + "src": "11226:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1218, + "id": 2458, "isConstant": false, "isLValue": false, "isPure": false, @@ -40604,28 +44230,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10517:37:1", + "src": "11226:37:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1219, + "id": 2459, "nodeType": "ExpressionStatement", - "src": "10517:37:1" + "src": "11226:37:5" }, { "assignments": [ - 1221 + 2461 ], "declarations": [ { "constant": false, - "id": 1221, + "id": 2461, "name": "name", "nodeType": "VariableDeclaration", - "scope": 1329, - "src": "10569:17:1", + "scope": 2569, + "src": "11278:17:5", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -40633,10 +44259,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1220, + "id": 2460, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "10569:5:1", + "src": "11278:5:5", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -40646,18 +44272,18 @@ "visibility": "internal" } ], - "id": 1229, + "id": 2469, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1224, + "id": 2464, "name": "offset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1090, - "src": "10616:6:1", + "referencedDeclaration": 2330, + "src": "11325:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -40667,26 +44293,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1225, + "id": 2465, "name": "offsets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "10624:7:1", + "referencedDeclaration": 2299, + "src": "11333:7:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", "typeString": "uint32[] memory" } }, - "id": 1227, + "id": 2467, "indexExpression": { "argumentTypes": null, - "id": 1226, + "id": 2466, "name": "k", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1094, - "src": "10632:1:1", + "referencedDeclaration": 2334, + "src": "11341:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -40697,7 +44323,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10624:10:1", + "src": "11333:10:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -40717,32 +44343,32 @@ ], "expression": { "argumentTypes": null, - "id": 1222, + "id": 2462, "name": "namesAndDescriptions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1061, - "src": "10589:20:1", + "referencedDeclaration": 2301, + "src": "11298:20:5", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 1223, + "id": 2463, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "slice", "nodeType": "MemberAccess", - "referencedDeclaration": 7166, - "src": "10589:26:1", + "referencedDeclaration": 9914, + "src": "11298: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": 1228, + "id": 2468, "isConstant": false, "isLValue": false, "isPure": false, @@ -40750,31 +44376,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10589:46:1", + "src": "11298:46:5", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "10569:66:1" + "src": "11278:66:5" }, { "expression": { "argumentTypes": null, - "id": 1237, + "id": 2477, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1230, + "id": 2470, "name": "offset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1090, - "src": "10649:6:1", + "referencedDeclaration": 2330, + "src": "11358:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -40789,26 +44415,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1233, + "id": 2473, "name": "offsets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "10669:7:1", + "referencedDeclaration": 2299, + "src": "11378:7:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", "typeString": "uint32[] memory" } }, - "id": 1235, + "id": 2475, "indexExpression": { "argumentTypes": null, - "id": 1234, + "id": 2474, "name": "k", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1094, - "src": "10677:1:1", + "referencedDeclaration": 2334, + "src": "11386:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -40819,7 +44445,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10669:10:1", + "src": "11378:10:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -40835,32 +44461,32 @@ ], "expression": { "argumentTypes": null, - "id": 1231, + "id": 2471, "name": "offset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1090, - "src": "10658:6:1", + "referencedDeclaration": 2330, + "src": "11367:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1232, + "id": 2472, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 6853, - "src": "10658:10:1", + "referencedDeclaration": 9601, + "src": "11367: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": 1236, + "id": 2476, "isConstant": false, "isLValue": false, "isPure": false, @@ -40868,34 +44494,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10658:22:1", + "src": "11367:22:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10649:31:1", + "src": "11358:31:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1238, + "id": 2478, "nodeType": "ExpressionStatement", - "src": "10649:31:1" + "src": "11358:31:5" }, { "assignments": [ - 1240 + 2480 ], "declarations": [ { "constant": false, - "id": 1240, + "id": 2480, "name": "description", "nodeType": "VariableDeclaration", - "scope": 1329, - "src": "10694:24:1", + "scope": 2569, + "src": "11403:24:5", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -40903,10 +44529,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1239, + "id": 2479, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "10694:5:1", + "src": "11403:5:5", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -40916,18 +44542,18 @@ "visibility": "internal" } ], - "id": 1250, + "id": 2490, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1243, + "id": 2483, "name": "offset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1090, - "src": "10748:6:1", + "referencedDeclaration": 2330, + "src": "11457:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -40937,37 +44563,37 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1244, + "id": 2484, "name": "offsets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "10756:7:1", + "referencedDeclaration": 2299, + "src": "11465:7:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", "typeString": "uint32[] memory" } }, - "id": 1248, + "id": 2488, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1247, + "id": 2487, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1245, + "id": 2485, "name": "k", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1094, - "src": "10764:1:1", + "referencedDeclaration": 2334, + "src": "11473:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -40978,14 +44604,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 1246, + "id": 2486, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10768:1:1", + "src": "11477:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -40993,7 +44619,7 @@ }, "value": "1" }, - "src": "10764:5:1", + "src": "11473:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -41004,7 +44630,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10756:14:1", + "src": "11465:14:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -41024,32 +44650,32 @@ ], "expression": { "argumentTypes": null, - "id": 1241, + "id": 2481, "name": "namesAndDescriptions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1061, - "src": "10721:20:1", + "referencedDeclaration": 2301, + "src": "11430:20:5", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 1242, + "id": 2482, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "slice", "nodeType": "MemberAccess", - "referencedDeclaration": 7166, - "src": "10721:26:1", + "referencedDeclaration": 9914, + "src": "11430: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": 1249, + "id": 2489, "isConstant": false, "isLValue": false, "isPure": false, @@ -41057,31 +44683,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10721:50:1", + "src": "11430:50:5", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "10694:77:1" + "src": "11403:77:5" }, { "expression": { "argumentTypes": null, - "id": 1260, + "id": 2500, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1251, + "id": 2491, "name": "offset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1090, - "src": "10785:6:1", + "referencedDeclaration": 2330, + "src": "11494:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -41096,37 +44722,37 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1254, + "id": 2494, "name": "offsets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1059, - "src": "10805:7:1", + "referencedDeclaration": 2299, + "src": "11514:7:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", "typeString": "uint32[] memory" } }, - "id": 1258, + "id": 2498, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1257, + "id": 2497, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1255, + "id": 2495, "name": "k", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1094, - "src": "10813:1:1", + "referencedDeclaration": 2334, + "src": "11522:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -41137,14 +44763,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 1256, + "id": 2496, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10817:1:1", + "src": "11526:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -41152,7 +44778,7 @@ }, "value": "1" }, - "src": "10813:5:1", + "src": "11522:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -41163,7 +44789,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10805:14:1", + "src": "11514:14:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -41179,32 +44805,32 @@ ], "expression": { "argumentTypes": null, - "id": 1252, + "id": 2492, "name": "offset", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1090, - "src": "10794:6:1", + "referencedDeclaration": 2330, + "src": "11503:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1253, + "id": 2493, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 6853, - "src": "10794:10:1", + "referencedDeclaration": 9601, + "src": "11503: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": 1259, + "id": 2499, "isConstant": false, "isLValue": false, "isPure": false, @@ -41212,38 +44838,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10794:26:1", + "src": "11503:26:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10785:35:1", + "src": "11494:35:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1261, + "id": 2501, "nodeType": "ExpressionStatement", - "src": "10785:35:1" + "src": "11494:35:5" }, { "expression": { "argumentTypes": null, - "id": 1267, + "id": 2507, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1262, + "id": 2502, "name": "k", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1094, - "src": "10834:1:1", + "referencedDeclaration": 2334, + "src": "11543:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -41257,14 +44883,14 @@ { "argumentTypes": null, "hexValue": "32", - "id": 1265, + "id": 2505, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10844:1:1", + "src": "11553:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -41282,32 +44908,32 @@ ], "expression": { "argumentTypes": null, - "id": 1263, + "id": 2503, "name": "k", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1094, - "src": "10838:1:1", + "referencedDeclaration": 2334, + "src": "11547:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1264, + "id": 2504, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 6853, - "src": "10838:5:1", + "referencedDeclaration": 9601, + "src": "11547: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": 1266, + "id": 2506, "isConstant": false, "isLValue": false, "isPure": false, @@ -41315,38 +44941,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10838:8:1", + "src": "11547:8:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10834:12:1", + "src": "11543:12:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1268, + "id": 2508, "nodeType": "ExpressionStatement", - "src": "10834:12:1" + "src": "11543:12:5" }, { "expression": { "argumentTypes": null, - "id": 1278, + "id": 2518, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1269, + "id": 2509, "name": "totalPercents", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1098, - "src": "10861:13:1", + "referencedDeclaration": 2338, + "src": "11570:13:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -41363,26 +44989,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1272, + "id": 2512, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1056, - "src": "10895:10:1", + "referencedDeclaration": 2296, + "src": "11604:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", "typeString": "uint256[4] memory[] memory" } }, - "id": 1274, + "id": 2514, "indexExpression": { "argumentTypes": null, - "id": 1273, + "id": 2513, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1102, - "src": "10906:1:1", + "referencedDeclaration": 2342, + "src": "11615:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -41393,24 +45019,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10895:13:1", + "src": "11604:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory", "typeString": "uint256[4] memory" } }, - "id": 1276, + "id": 2516, "indexExpression": { "argumentTypes": null, "hexValue": "33", - "id": 1275, + "id": 2515, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10909:1:1", + "src": "11618:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", @@ -41423,7 +45049,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10895:16:1", + "src": "11604:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -41439,32 +45065,32 @@ ], "expression": { "argumentTypes": null, - "id": 1270, + "id": 2510, "name": "totalPercents", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1098, - "src": "10877:13:1", + "referencedDeclaration": 2338, + "src": "11586:13:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1271, + "id": 2511, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 6853, - "src": "10877:17:1", + "referencedDeclaration": 9601, + "src": "11586: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": 1277, + "id": 2517, "isConstant": false, "isLValue": false, "isPure": false, @@ -41472,21 +45098,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10877:35:1", + "src": "11586:35:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10861:51:1", + "src": "11570:51:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1279, + "id": 2519, "nodeType": "ExpressionStatement", - "src": "10861:51:1" + "src": "11570:51:5" }, { "expression": { @@ -41504,26 +45130,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1285, + "id": 2525, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1056, - "src": "10987:10:1", + "referencedDeclaration": 2296, + "src": "11696:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", "typeString": "uint256[4] memory[] memory" } }, - "id": 1287, + "id": 2527, "indexExpression": { "argumentTypes": null, - "id": 1286, + "id": 2526, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1102, - "src": "10998:1:1", + "referencedDeclaration": 2342, + "src": "11707:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -41534,24 +45160,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10987:13:1", + "src": "11696:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory", "typeString": "uint256[4] memory" } }, - "id": 1289, + "id": 2529, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1288, + "id": 2528, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11001:1:1", + "src": "11710:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -41564,7 +45190,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10987:16:1", + "src": "11696:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -41578,20 +45204,20 @@ "typeString": "uint256" } ], - "id": 1284, + "id": 2524, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "10980:6:1", + "src": "11689:6:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": "uint32" }, - "id": 1290, + "id": 2530, "isConstant": false, "isLValue": false, "isPure": false, @@ -41599,7 +45225,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10980:24:1", + "src": "11689:24:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -41611,26 +45237,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1291, + "id": 2531, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1056, - "src": "11038:10:1", + "referencedDeclaration": 2296, + "src": "11747:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", "typeString": "uint256[4] memory[] memory" } }, - "id": 1293, + "id": 2533, "indexExpression": { "argumentTypes": null, - "id": 1292, + "id": 2532, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1102, - "src": "11049:1:1", + "referencedDeclaration": 2342, + "src": "11758:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -41641,24 +45267,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11038:13:1", + "src": "11747:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory", "typeString": "uint256[4] memory" } }, - "id": 1295, + "id": 2535, "indexExpression": { "argumentTypes": null, "hexValue": "33", - "id": 1294, + "id": 2534, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11052:1:1", + "src": "11761:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", @@ -41671,7 +45297,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11038:16:1", + "src": "11747:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -41686,26 +45312,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1297, + "id": 2537, "name": "parameters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1056, - "src": "11092:10:1", + "referencedDeclaration": 2296, + "src": "11801:10:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", "typeString": "uint256[4] memory[] memory" } }, - "id": 1299, + "id": 2539, "indexExpression": { "argumentTypes": null, - "id": 1298, + "id": 2538, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1102, - "src": "11103:1:1", + "referencedDeclaration": 2342, + "src": "11812:1:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -41716,24 +45342,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11092:13:1", + "src": "11801:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory", "typeString": "uint256[4] memory" } }, - "id": 1301, + "id": 2541, "indexExpression": { "argumentTypes": null, "hexValue": "31", - "id": 1300, + "id": 2540, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11106:1:1", + "src": "11815:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -41746,7 +45372,117 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11092:16:1", + "src": "11801:16:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2536, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11794:6:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": "uint32" + }, + "id": 2542, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11794:24:5", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2544, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2296, + "src": "11861:10:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", + "typeString": "uint256[4] memory[] memory" + } + }, + "id": 2546, + "indexExpression": { + "argumentTypes": null, + "id": 2545, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2342, + "src": "11872:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11861:13:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory", + "typeString": "uint256[4] memory" + } + }, + "id": 2548, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 2547, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11875: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": "11861:16:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -41754,246 +45490,881 @@ } ], "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1296, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11085:6:1", + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2543, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11854:6:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": "uint32" + }, + "id": 2549, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11854:24:5", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 2550, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2461, + "src": "11902:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 2551, + "name": "description", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2480, + "src": "11937:11:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": null, + "id": 2523, + "name": "Milestone", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1331, + "src": "11652:9:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Milestone_$1331_storage_ptr_$", + "typeString": "type(struct W12Crowdsale.Milestone storage pointer)" + } + }, + "id": 2552, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "endDate", + "tranchePercent", + "voteEndDate", + "withdrawalWindow", + "name", + "description" + ], + "nodeType": "FunctionCall", + "src": "11652:311:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Milestone_$1331_memory", + "typeString": "struct W12Crowdsale.Milestone memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Milestone_$1331_memory", + "typeString": "struct W12Crowdsale.Milestone memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 2520, + "name": "milestones", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1303, + "src": "11636:10:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Milestone_$1331_storage_$dyn_storage", + "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" + } + }, + "id": 2522, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11636:15:5", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Milestone_$1331_storage_$returns$_t_uint256_$", + "typeString": "function (struct W12Crowdsale.Milestone storage ref) returns (uint256)" + } + }, + "id": 2553, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11636:328:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2554, + "nodeType": "ExpressionStatement", + "src": "11636:328:5" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2345, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2342, + "src": "10660:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2346, + "name": "parameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2296, + "src": "10664:10:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", + "typeString": "uint256[4] memory[] memory" + } + }, + "id": 2347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10664:17:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10660:21:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2556, + "initializationExpression": { + "assignments": [ + 2342 + ], + "declarations": [ + { + "constant": false, + "id": 2342, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 2569, + "src": "10647:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2341, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "10647:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2344, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 2343, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10657:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "10647:11:5" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 2350, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "10683:3:5", + "subExpression": { + "argumentTypes": null, + "id": 2349, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2342, + "src": "10683:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 2351, + "nodeType": "ExpressionStatement", + "src": "10683:3:5" + }, + "nodeType": "ForStatement", + "src": "10642:1333:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2558, + "name": "totalPercents", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2338, + "src": "11993:13:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 2559, + "name": "Percent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5103, + "src": "12010:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Percent_$5103_$", + "typeString": "type(library Percent)" + } + }, + "id": 2560, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "MAX", + "nodeType": "MemberAccess", + "referencedDeclaration": 5003, + "src": "12010:11:5", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$__$returns$_t_uint256_$", + "typeString": "function () pure returns (uint256)" + } + }, + "id": 2561, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12010:13:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11993:30:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2557, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "11985:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2563, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11985:39:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2564, + "nodeType": "ExpressionStatement", + "src": "11985:39:5" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2565, + "name": "MilestonesUpdated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1349, + "src": "12040:17:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 2566, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12040:19:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2567, + "nodeType": "EmitStatement", + "src": "12035:24:5" + } + ] + }, + "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": 2569, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "_setMilestones", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2302, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2296, + "name": "parameters", + "nodeType": "VariableDeclaration", + "scope": 2569, + "src": "10297:20:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", + "typeString": "uint256[4][]" + }, + "typeName": { + "baseType": { + "baseType": { + "id": 2292, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "10297:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2294, + "length": { + "argumentTypes": null, + "hexValue": "34", + "id": 2293, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10302:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "4" + }, + "nodeType": "ArrayTypeName", + "src": "10297:7:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_storage_ptr", + "typeString": "uint256[4]" + } + }, + "id": 2295, + "length": null, + "nodeType": "ArrayTypeName", + "src": "10297: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": 2299, + "name": "offsets", + "nodeType": "VariableDeclaration", + "scope": 2569, + "src": "10327:16:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", + "typeString": "uint32[]" + }, + "typeName": { + "baseType": { + "id": 2297, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "10327:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 2298, + "length": null, + "nodeType": "ArrayTypeName", + "src": "10327:8:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", + "typeString": "uint32[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2301, + "name": "namesAndDescriptions", + "nodeType": "VariableDeclaration", + "scope": 2569, + "src": "10353:26:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2300, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "10353:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10287:98:5" + }, + "payable": false, + "returnParameters": { + "id": 2303, + "nodeType": "ParameterList", + "parameters": [], + "src": "10407:0:5" + }, + "scope": 3168, + "src": "10264:1802:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2662, + "nodeType": "Block", + "src": "12167:559:5", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 2584, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 2580, + "name": "PurchaseProcessing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5854, + "src": "12181:18:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$5854_$", + "typeString": "type(library PurchaseProcessing)" + } + }, + "id": 2581, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "METHOD_ETH", + "nodeType": "MemberAccess", + "referencedDeclaration": 5192, + "src": "12181:29:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 2582, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12181:31:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 2583, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2571, + "src": "12216:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "12181:41:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2597, + "nodeType": "IfStatement", + "src": "12177:124:5", + "trueBody": { + "id": 2596, + "nodeType": "Block", + "src": "12224:77:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2593, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2588, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2571, + "src": "12268:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 2586, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1285, + "src": "12246:5:5", "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint32_$", - "typeString": "type(uint32)" - }, - "typeName": "uint32" + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } }, - "id": 1302, + "id": 2587, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "typeConversion", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11085:24:1", + "memberName": "getTokenAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 6985, + "src": "12246:21:5", "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view external returns (address)" } }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1304, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1056, - "src": "11152:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", - "typeString": "uint256[4] memory[] memory" - } - }, - "id": 1306, - "indexExpression": { - "argumentTypes": null, - "id": 1305, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1102, - "src": "11163:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11152:13:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$4_memory", - "typeString": "uint256[4] memory" - } - }, - "id": 1308, - "indexExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 1307, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11166:1:1", - "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": "11152:16:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1303, + "id": 2589, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12246:29:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 2591, "isConstant": false, "isLValue": false, "isPure": true, + "kind": "number", "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11145:6:1", + "nodeType": "Literal", + "src": "12287:1:5", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint32_$", - "typeString": "type(uint32)" + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" }, - "typeName": "uint32" - }, - "id": 1309, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2590, "isConstant": false, "isLValue": false, - "isPure": false, - "kind": "typeConversion", + "isPure": true, "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11145:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "id": 1310, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1221, - "src": "11193:4:1", + "nodeType": "ElementaryTypeNameExpression", + "src": "12279:7:5", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, - { - "argumentTypes": null, - "id": 1311, - "name": "description", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1240, - "src": "11228:11:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": null, - "id": 1283, - "name": "Milestone", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 121, - "src": "10943:9:1", + "id": 2592, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12279:10:5", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Milestone_$121_storage_ptr_$", - "typeString": "type(struct W12Crowdsale.Milestone storage pointer)" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 1312, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [ - "endDate", - "tranchePercent", - "voteEndDate", - "withdrawalWindow", - "name", - "description" - ], - "nodeType": "FunctionCall", - "src": "10943:311:1", + "src": "12246:43:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$121_memory", - "typeString": "struct W12Crowdsale.Milestone memory" + "typeIdentifier": "t_bool", + "typeString": "bool" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Milestone_$121_memory", - "typeString": "struct W12Crowdsale.Milestone memory" + "typeIdentifier": "t_bool", + "typeString": "bool" } ], - "expression": { - "argumentTypes": null, - "id": 1280, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 143, - "src": "10927:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$121_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Milestone storage ref[] storage ref" - } - }, - "id": 1282, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10927:15:1", + "id": 2585, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "12238:7:5", "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Milestone_$121_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": 1313, + "id": 2594, "isConstant": false, "isLValue": false, "isPure": false, @@ -42001,170 +46372,479 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10927:328:1", + "src": "12238:52:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 1314, + "id": 2595, "nodeType": "ExpressionStatement", - "src": "10927:328:1" + "src": "12238:52:5" } ] - }, - "condition": { + } + }, + { + "assignments": [ + 2599, + null + ], + "declarations": [ + { + "constant": false, + "id": 2599, + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2663, + "src": "12312:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2598, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "12312:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 2602, + "initialValue": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2600, + "name": "getCurrentStageIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3071, + "src": "12342:20:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_bool_$", + "typeString": "function () view returns (uint256,bool)" + } }, - "id": 1108, + "id": 2601, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1105, - "name": "i", + "names": [], + "nodeType": "FunctionCall", + "src": "12342:22:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", + "typeString": "tuple(uint256,bool)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12311:53:5" + }, + { + "assignments": [ + 2607 + ], + "declarations": [ + { + "constant": false, + "id": 2607, + "name": "invoice", + "nodeType": "VariableDeclaration", + "scope": 2663, + "src": "12375:22:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5]" + }, + "typeName": { + "baseType": { + "id": 2605, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "12375:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2606, + "length": { + "argumentTypes": null, + "hexValue": "35", + "id": 2604, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12380:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "5" + }, + "nodeType": "ArrayTypeName", + "src": "12375:7:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr", + "typeString": "uint256[5]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2612, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2609, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2571, + "src": "12411:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 2610, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2573, + "src": "12419:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2608, + "name": "getInvoice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1102, - "src": "9951:1:1", + "referencedDeclaration": 2971, + "src": "12400:10:5", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "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)" } }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { + "id": 2611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12400:26:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12375:51:5" + }, + { + "assignments": [ + 2617 + ], + "declarations": [ + { + "constant": false, + "id": 2617, + "name": "fee", + "nodeType": "VariableDeclaration", + "scope": 2663, + "src": "12436:18:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2]" + }, + "typeName": { + "baseType": { + "id": 2615, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "12436:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2616, + "length": { + "argumentTypes": null, + "hexValue": "32", + "id": 2614, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12441:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "12436:7:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2626, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { "argumentTypes": null, - "id": 1106, - "name": "parameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1056, - "src": "9955:10:1", + "baseExpression": { + "argumentTypes": null, + "id": 2619, + "name": "invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2607, + "src": "12464:7:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2621, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2620, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12472: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": "12464:10:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", - "typeString": "uint256[4] memory[] memory" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2622, + "name": "invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2607, + "src": "12476:7:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2624, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 2623, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12484: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": "12476:10:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - }, - "id": 1107, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9955:17:1", + ], + "id": 2618, + "name": "getFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2991, + "src": "12457:6:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "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)" } }, - "src": "9951:21:1", + "id": 2625, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12457:30:5", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" } }, - "id": 1316, - "initializationExpression": { - "assignments": [ - 1102 - ], - "declarations": [ + "nodeType": "VariableDeclarationStatement", + "src": "12436:51:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ { - "constant": false, - "id": 1102, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 1329, - "src": "9938:7:1", - "stateVariable": false, - "storageLocation": "default", + "argumentTypes": null, + "id": 2628, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2617, + "src": "12511:3:5", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 1101, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "9938:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1104, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 1103, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9948:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "9938:11:1" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 1110, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "9974:3:1", - "subExpression": { + { "argumentTypes": null, - "id": 1109, - "name": "i", + "id": 2629, + "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1102, - "src": "9974:1:1", + "referencedDeclaration": 2571, + "src": "12516:6:5", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "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": 2627, + "name": "_transferFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2700, + "src": "12498:12:5", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint256_$2_memory_ptr_$_t_bytes32_$returns$__$", + "typeString": "function (uint256[2] memory,bytes32)" } }, - "id": 1111, - "nodeType": "ExpressionStatement", - "src": "9974:3:1" + "id": 2630, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12498:25:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } }, - "nodeType": "ForStatement", - "src": "9933:1333:1" + "id": 2631, + "nodeType": "ExpressionStatement", + "src": "12498:25:5" }, { "expression": { @@ -42172,105 +46852,131 @@ "arguments": [ { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1322, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1318, - "name": "totalPercents", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1098, - "src": "11284:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { + "id": 2633, + "name": "invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2607, + "src": "12551:7:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + { + "argumentTypes": null, + "id": 2634, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2617, + "src": "12560:3:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + { + "argumentTypes": null, + "expression": { "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 1319, - "name": "Percent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4631, - "src": "11301:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Percent_$4631_$", - "typeString": "type(library Percent)" - } - }, - "id": 1320, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "MAX", - "nodeType": "MemberAccess", - "referencedDeclaration": 4543, - "src": "11301:11:1", + "baseExpression": { + "argumentTypes": null, + "id": 2635, + "name": "stages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1300, + "src": "12565:6:5", "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$__$returns$_t_uint256_$", - "typeString": "function () pure returns (uint256)" + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", + "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" + } + }, + "id": 2637, + "indexExpression": { + "argumentTypes": null, + "id": 2636, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2599, + "src": "12572:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 1321, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11301:13:1", + "nodeType": "IndexAccess", + "src": "12565:13:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_struct$_Stage_$1318_storage", + "typeString": "struct W12Crowdsale.Stage storage ref" } }, - "src": "11284:30:1", + "id": 2638, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "vesting", + "nodeType": "MemberAccess", + "referencedDeclaration": 1311, + "src": "12565:21:5", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 2639, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2571, + "src": "12588:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "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": 1317, - "name": "require", + "id": 2632, + "name": "_transferPurchase", "nodeType": "Identifier", - "overloadedDeclarations": [ - 7297, - 7298 - ], - "referencedDeclaration": 7297, - "src": "11276:7:1", + "overloadedDeclarations": [], + "referencedDeclaration": 2740, + "src": "12533:17:5", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "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": 1323, + "id": 2640, "isConstant": false, "isLValue": false, "isPure": false, @@ -42278,34 +46984,87 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11276:39:1", + "src": "12533:62:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1324, + "id": 2641, "nodeType": "ExpressionStatement", - "src": "11276:39:1" + "src": "12533:62:5" }, { - "eventCall": { + "expression": { "argumentTypes": null, - "arguments": [], + "arguments": [ + { + "argumentTypes": null, + "id": 2643, + "name": "invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2607, + "src": "12621:7:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + { + "argumentTypes": null, + "id": 2644, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2617, + "src": "12630:3:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + { + "argumentTypes": null, + "id": 2645, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2571, + "src": "12635:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], "expression": { - "argumentTypes": [], - "id": 1325, - "name": "MilestonesUpdated", + "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": 2642, + "name": "_recordPurchase", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 161, - "src": "11331:17:1", + "referencedDeclaration": 2839, + "src": "12605:15:5", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$__$returns$__$", - "typeString": "function ()" + "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": 1326, + "id": 2646, "isConstant": false, "isLValue": false, "isPure": false, @@ -42313,124 +47072,307 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11331:19:1", + "src": "12605:37:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1327, - "nodeType": "EmitStatement", - "src": "11326:24:1" - } - ] - }, - "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": 1329, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_setMilestones", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1062, - "nodeType": "ParameterList", - "parameters": [ + "id": 2647, + "nodeType": "ExpressionStatement", + "src": "12605:37:5" + }, { - "constant": false, - "id": 1056, - "name": "parameters", - "nodeType": "VariableDeclaration", - "scope": 1329, - "src": "9588:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_$dyn_memory_ptr", - "typeString": "uint256[4][]" - }, - "typeName": { - "baseType": { - "baseType": { - "id": 1052, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "9588:4:1", + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2649, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10042, + "src": "12672:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2650, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12672:10:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2651, + "name": "invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2607, + "src": "12684:7:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2653, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2652, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12692: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": "12684:10:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1054, - "length": { + { "argumentTypes": null, - "hexValue": "34", - "id": 1053, + "baseExpression": { + "argumentTypes": null, + "id": 2654, + "name": "invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2607, + "src": "12696:7:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2656, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 2655, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12704:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "number", "lValueRequested": false, - "nodeType": "Literal", - "src": "9593:1:1", - "subdenomination": null, + "nodeType": "IndexAccess", + "src": "12696:10:5", "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - }, - "value": "4" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - "nodeType": "ArrayTypeName", - "src": "9588:7:1", + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2657, + "name": "invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2607, + "src": "12708:7:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2659, + "indexExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 2658, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12716: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": "12708:10:5", + "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": 2648, + "name": "TokenPurchase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1341, + "src": "12658:13:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$4_storage_ptr", - "typeString": "uint256[4]" + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256,uint256)" } }, - "id": 1055, - "length": null, - "nodeType": "ArrayTypeName", - "src": "9588:9:1", + "id": 2660, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12658:61:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$4_storage_$dyn_storage_ptr", - "typeString": "uint256[4][]" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "value": null, - "visibility": "internal" + "id": 2661, + "nodeType": "EmitStatement", + "src": "12653:66:5" + } + ] + }, + "documentation": null, + "id": 2663, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 2576, + "modifierName": { + "argumentTypes": null, + "id": 2575, + "name": "nonReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9330, + "src": "12135:12:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "12135:12:5" + }, + { + "arguments": null, + "id": 2578, + "modifierName": { + "argumentTypes": null, + "id": 2577, + "name": "onlyWhenSaleActive", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3167, + "src": "12148:18:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } }, + "nodeType": "ModifierInvocation", + "src": "12148:18:5" + } + ], + "name": "buyTokens", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2574, + "nodeType": "ParameterList", + "parameters": [ { "constant": false, - "id": 1059, - "name": "offsets", + "id": 2571, + "name": "method", "nodeType": "VariableDeclaration", - "scope": 1329, - "src": "9618:16:1", + "scope": 2663, + "src": "12091:14:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", - "typeString": "uint32[]" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" }, "typeName": { - "baseType": { - "id": 1057, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "9618:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 1058, - "length": null, - "nodeType": "ArrayTypeName", - "src": "9618:8:1", + "id": 2570, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "12091:7:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", - "typeString": "uint32[]" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, "value": null, @@ -42438,51 +47380,51 @@ }, { "constant": false, - "id": 1061, - "name": "namesAndDescriptions", + "id": 2573, + "name": "amount", "nodeType": "VariableDeclaration", - "scope": 1329, - "src": "9644:26:1", + "scope": 2663, + "src": "12107:11:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 1060, - "name": "bytes", + "id": 2572, + "name": "uint", "nodeType": "ElementaryTypeName", - "src": "9644:5:1", + "src": "12107:4:5", "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], - "src": "9578:98:1" + "src": "12090:29:5" }, - "payable": false, + "payable": true, "returnParameters": { - "id": 1063, + "id": 2579, "nodeType": "ParameterList", "parameters": [], - "src": "9698:0:1" + "src": "12167:0:5" }, - "scope": 1809, - "src": "9555:1802:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" + "scope": 3168, + "src": "12072:654:5", + "stateMutability": "payable", + "superFunction": 1198, + "visibility": "public" }, { "body": { - "id": 1473, + "id": 2699, "nodeType": "Block", - "src": "11431:1023:1", + "src": "12793:282:5", "statements": [ { "expression": { @@ -42490,447 +47432,418 @@ "arguments": [ { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1340, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "id": 2675, + "name": "_fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2667, + "src": "12847:4:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + { + "argumentTypes": null, + "id": 2676, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2669, + "src": "12865:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "condition": { "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2679, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2669, + "src": "12899:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], "expression": { - "argumentTypes": null, - "id": 1337, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "11449:3:1", + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 2677, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1285, + "src": "12885:5:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "id": 2678, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 6992, + "src": "12885:13:5", "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (bytes32) view external returns (bool)" } }, - "id": 1338, + "id": 2680, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11449:9:1", + "names": [], + "nodeType": "FunctionCall", + "src": "12885:21:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { + "falseExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 1339, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 2686, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12949: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": 2685, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12941:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2687, "isConstant": false, "isLValue": false, "isPure": true, - "kind": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "11461:1:1", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "12941:10:5", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2688, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "12885:66:5", + "trueExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2683, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2669, + "src": "12931:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 2681, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1285, + "src": "12909:5:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "id": 2682, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getTokenAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 6985, + "src": "12909:21:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view external returns (address)" + } }, - "value": "0" + "id": 2684, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12909:29:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } }, - "src": "11449:13:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1336, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 7297, - 7298 - ], - "referencedDeclaration": 7297, - "src": "11441:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1341, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11441:22:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1342, - "nodeType": "ExpressionStatement", - "src": "11441:22:1" - }, - { - "assignments": [ - 1344, - null - ], - "declarations": [ - { - "constant": false, - "id": 1344, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 1474, - "src": "11475:10:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1343, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "11475:4:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - null - ], - "id": 1347, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1345, - "name": "getCurrentStageIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1705, - "src": "11491:20:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_bool_$", - "typeString": "function () view returns (uint256,bool)" - } - }, - "id": 1346, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11491:22:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", - "typeString": "tuple(uint256,bool)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "11474:39:1" - }, - { - "assignments": [ - 1349 - ], - "declarations": [ - { - "constant": false, - "id": 1349, - "name": "discount", - "nodeType": "VariableDeclaration", - "scope": 1474, - "src": "11524:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1348, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "11524:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1354, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1350, - "name": "stages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "11540:6:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$108_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" - } - }, - "id": 1352, - "indexExpression": { - "argumentTypes": null, - "id": 1351, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1344, - "src": "11547:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11540:13:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$108_storage", - "typeString": "struct W12Crowdsale.Stage storage ref" - } - }, - "id": 1353, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "discount", - "nodeType": "MemberAccess", - "referencedDeclaration": 99, - "src": "11540:22:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "11524:38:1" - }, - { - "assignments": [ - 1356 - ], - "declarations": [ - { - "constant": false, - "id": 1356, - "name": "vesting", - "nodeType": "VariableDeclaration", - "scope": 1474, - "src": "11572:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1355, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "11572:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1361, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1357, - "name": "stages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "11589:6:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$108_storage_$dyn_storage", - "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 1359, - "indexExpression": { + { "argumentTypes": null, - "id": 1358, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1344, - "src": "11596:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11589:13:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$108_storage", - "typeString": "struct W12Crowdsale.Stage storage ref" - } - }, - "id": 1360, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "vesting", - "nodeType": "MemberAccess", - "referencedDeclaration": 101, - "src": "11589:21:1", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "11572:38:1" - }, - { - "assignments": [ - 1363 - ], - "declarations": [ - { - "constant": false, - "id": 1363, - "name": "volumeBonus", - "nodeType": "VariableDeclaration", - "scope": 1474, - "src": "11620:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1362, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "11620:4:1", + "arguments": [ + { + "argumentTypes": null, + "id": 2690, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1279, + "src": "12973:5:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" + } + ], + "id": 2689, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12965:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2691, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12965:14:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "value": null, - "visibility": "internal" - } - ], - "id": 1368, - "initialValue": { - "argumentTypes": null, - "arguments": [ { "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2693, + "name": "originToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1281, + "src": "13001:11:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$9765", + "typeString": "contract ERC20" + } + } + ], "expression": { - "argumentTypes": null, - "id": 1365, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "11658:3:1", + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ERC20_$9765", + "typeString": "contract ERC20" + } + ], + "id": 2692, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12993:7:5", "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, - "id": 1366, + "id": 2694, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "typeConversion", "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11658:9:1", + "names": [], + "nodeType": "FunctionCall", + "src": "12993:20:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2695, + "name": "swap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1295, + "src": "13027:4:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2696, + "name": "serviceWallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1293, + "src": "13045:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "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" } ], - "id": 1364, - "name": "getSaleVolumeBonus", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1659, - "src": "11639:18:1", + "expression": { + "argumentTypes": null, + "id": 2672, + "name": "PurchaseProcessing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5854, + "src": "12803:18:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$5854_$", + "typeString": "type(library PurchaseProcessing)" + } + }, + "id": 2674, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFee", + "nodeType": "MemberAccess", + "referencedDeclaration": 5638, + "src": "12803:30:5", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) view returns (uint256)" + "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)" } }, - "id": 1367, + "id": 2697, "isConstant": false, "isLValue": false, "isPure": false, @@ -42938,351 +47851,1140 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11639:29:1", + "src": "12803:265:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "nodeType": "VariableDeclarationStatement", - "src": "11620:48:1" - }, + "id": 2698, + "nodeType": "ExpressionStatement", + "src": "12803:265:5" + } + ] + }, + "documentation": null, + "id": 2700, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "_transferFee", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2670, + "nodeType": "ParameterList", + "parameters": [ { - "assignments": [ - 1370, - 1372, - 1374, - null - ], - "declarations": [ - { - "constant": false, - "id": 1370, - "name": "tokenAmount", - "nodeType": "VariableDeclaration", - "scope": 1474, - "src": "11680:16:1", - "stateVariable": false, - "storageLocation": "default", + "constant": false, + "id": 2667, + "name": "_fee", + "nodeType": "VariableDeclaration", + "scope": 2700, + "src": "12754:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2]" + }, + "typeName": { + "baseType": { + "id": 2664, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "12754:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" + } + }, + "id": 2666, + "length": { + "argumentTypes": null, + "hexValue": "32", + "id": 2665, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12759:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null }, - "typeName": { - "id": 1369, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "11680:4:1", + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "12754:7:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2669, + "name": "method", + "nodeType": "VariableDeclaration", + "scope": 2700, + "src": "12768:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2668, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "12768:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12753:30:5" + }, + "payable": false, + "returnParameters": { + "id": 2671, + "nodeType": "ParameterList", + "parameters": [], + "src": "12793:0:5" + }, + "scope": 3168, + "src": "12732:343:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2739, + "nodeType": "Block", + "src": "13181:251:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2718, + "name": "_invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2704, + "src": "13240:8:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" } }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1372, - "name": "weiCost", - "nodeType": "VariableDeclaration", - "scope": 1474, - "src": "11698:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1371, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "11698:4:1", + { + "argumentTypes": null, + "id": 2719, + "name": "_fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2708, + "src": "13262:4:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" } }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1374, - "name": "change", - "nodeType": "VariableDeclaration", - "scope": 1474, - "src": "11712:11:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + { + "argumentTypes": null, + "id": 2720, + "name": "vesting", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2710, + "src": "13280:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } }, - "typeName": { - "id": 1373, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "11712:4:1", + { + "argumentTypes": null, + "id": 2721, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2712, + "src": "13301:6:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, - "value": null, - "visibility": "internal" - }, - null - ], - "id": 1381, - "initialValue": { - "argumentTypes": null, - "arguments": [ { "argumentTypes": null, - "expression": { + "condition": { "argumentTypes": null, - "id": 1376, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "11744:3:1", + "arguments": [ + { + "argumentTypes": null, + "id": 2724, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2712, + "src": "13335:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 2722, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1285, + "src": "13321:5:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "id": 2723, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 6992, + "src": "13321:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (bytes32) view external returns (bool)" + } + }, + "id": 2725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13321:21:5", "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 2731, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13385: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": 2730, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13377:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2732, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13377:10:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 1377, + "id": 2733, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11744:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1378, - "name": "discount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1349, - "src": "11755:8:1", + "nodeType": "Conditional", + "src": "13321:66:5", + "trueExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2728, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2712, + "src": "13367:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 2726, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1285, + "src": "13345:5:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "id": 2727, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getTokenAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 6985, + "src": "13345:21:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view external returns (address)" + } + }, + "id": 2729, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13345:29:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, { "argumentTypes": null, - "id": 1379, - "name": "volumeBonus", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1363, - "src": "11765:11:1", + "arguments": [ + { + "argumentTypes": null, + "id": 2735, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1279, + "src": "13409:5:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" + } + ], + "id": 2734, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13401:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13401:14:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" }, { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" }, { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" } ], - "id": 1375, - "name": "_purchaseOrder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1586, - "src": "11729:14:1", + "expression": { + "argumentTypes": null, + "id": 2715, + "name": "PurchaseProcessing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5854, + "src": "13191:18:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$5854_$", + "typeString": "type(library PurchaseProcessing)" + } + }, + "id": 2717, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferPurchase", + "nodeType": "MemberAccess", + "referencedDeclaration": 5811, + "src": "13191:35: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_$_t_address_$_t_address_$returns$__$", + "typeString": "function (uint256[5] memory,uint256[2] memory,uint32,bytes32,address,address)" + } + }, + "id": 2737, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13191:234:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2738, + "nodeType": "ExpressionStatement", + "src": "13191:234:5" + } + ] + }, + "documentation": null, + "id": 2740, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "_transferPurchase", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2713, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2704, + "name": "_invoice", + "nodeType": "VariableDeclaration", + "scope": 2740, + "src": "13108:16:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5]" + }, + "typeName": { + "baseType": { + "id": 2701, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "13108:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2703, + "length": { + "argumentTypes": null, + "hexValue": "35", + "id": 2702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13113:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "5" + }, + "nodeType": "ArrayTypeName", + "src": "13108:7:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr", + "typeString": "uint256[5]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2708, + "name": "_fee", + "nodeType": "VariableDeclaration", + "scope": 2740, + "src": "13126:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2]" + }, + "typeName": { + "baseType": { + "id": 2705, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "13126:4:5", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256) view returns (uint256,uint256,uint256,uint256)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 1380, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11729:48:1", + "id": 2707, + "length": { + "argumentTypes": null, + "hexValue": "32", + "id": 2706, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13131:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "13126:7:5", "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256,uint256,uint256)" + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" } }, - "nodeType": "VariableDeclarationStatement", - "src": "11679:98:1" + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2710, + "name": "vesting", + "nodeType": "VariableDeclaration", + "scope": 2740, + "src": "13140:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2709, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "13140:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" }, + { + "constant": false, + "id": 2712, + "name": "method", + "nodeType": "VariableDeclaration", + "scope": 2740, + "src": "13156:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2711, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "13156:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13107:64:5" + }, + "payable": false, + "returnParameters": { + "id": 2714, + "nodeType": "ParameterList", + "parameters": [], + "src": "13181:0:5" + }, + "scope": 3168, + "src": "13081:351:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2838, + "nodeType": "Block", + "src": "13520:442:5", + "statements": [ { "condition": { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" }, - "id": 1384, + "id": 2757, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1382, - "name": "WTokenSaleFeePercent", + "id": 2753, + "name": "method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 131, - "src": "11792:20:1", + "referencedDeclaration": 2750, + "src": "13534:6:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, "nodeType": "BinaryOperation", - "operator": ">", + "operator": "==", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 1383, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 2754, + "name": "PurchaseProcessing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5854, + "src": "13544:18:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$5854_$", + "typeString": "type(library PurchaseProcessing)" + } + }, + "id": 2755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "METHOD_ETH", + "nodeType": "MemberAccess", + "referencedDeclaration": 5192, + "src": "13544:29:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 2756, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "number", + "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "Literal", - "src": "11815:1:1", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "13544:31:5", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } }, - "src": "11792:24:1", + "src": "13534:41:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "falseBody": null, - "id": 1410, - "nodeType": "IfStatement", - "src": "11788:247:1", - "trueBody": { - "id": 1409, + "falseBody": { + "id": 2836, "nodeType": "Block", - "src": "11818:217:1", + "src": "13731:225:5", "statements": [ { - "assignments": [ - 1386 - ], - "declarations": [ - { - "constant": false, - "id": 1386, - "name": "tokensFee", - "nodeType": "VariableDeclaration", - "scope": 1474, - "src": "11832:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1385, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "11832:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1391, - "initialValue": { + "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1389, - "name": "WTokenSaleFeePercent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 131, - "src": "11869:20:1", + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2801, + "name": "fund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1283, + "src": "13807:4:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1241", + "typeString": "contract IW12Fund" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IW12Fund_$1241", + "typeString": "contract IW12Fund" + } + ], + "id": 2800, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13799:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2802, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13799:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2807, + "name": "_fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2748, + "src": "13830: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": "13835: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": "13830: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": 2744, + "src": "13814: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": "13823: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": "13814:11:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2806, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9577, + "src": "13814: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": "13814: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": 2796, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2750, + "src": "13781:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 2794, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1285, + "src": "13759:5:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "id": 2795, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getTokenAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 6985, + "src": "13759:21:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view external returns (address)" + } + }, + "id": 2797, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13759:29:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2793, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9765, + "src": "13753:5:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$9765_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 2798, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13753:36:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$9765", + "typeString": "contract ERC20" + } + }, + "id": 2799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 9788, + "src": "13753:45:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 2811, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13753:86:5", "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": 1387, - "name": "tokenAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1370, - "src": "11849:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1388, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "percent", - "nodeType": "MemberAccess", - "referencedDeclaration": 4568, - "src": "11849:19:1", + "id": 2792, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "13745:7: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)" + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" } }, - "id": 1390, + "id": 2812, "isConstant": false, "isLValue": false, "isPure": false, @@ -43290,14 +48992,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11849:41:1", + "src": "13745:95:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "nodeType": "VariableDeclarationStatement", - "src": "11832:58:1" + "id": 2813, + "nodeType": "ExpressionStatement", + "src": "13745:95:5" }, { "expression": { @@ -43305,41 +49008,134 @@ "arguments": [ { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1395, - "name": "swap", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 135, - "src": "11938:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1396, - "name": "serviceWallet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 133, - "src": "11944:13:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "expression": { + "argumentTypes": null, + "id": 2817, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10042, + "src": "13874:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2818, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13874:10:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2819, + "name": "_invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2744, + "src": "13886:8:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2821, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2820, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13895: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": "13886:11:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2822, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2750, + "src": "13899:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "arguments": [ { "argumentTypes": null, - "id": 1397, - "name": "tokensFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1386, - "src": "11959:9:1", + "baseExpression": { + "argumentTypes": null, + "id": 2827, + "name": "_fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2748, + "src": "13923:4:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + "id": 2829, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 2828, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13928: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": "13923:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -43348,14 +49144,6 @@ ], "expression": { "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -43363,32 +49151,64 @@ ], "expression": { "argumentTypes": null, - "id": 1393, - "name": "originToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 125, - "src": "11913:11:1", + "baseExpression": { + "argumentTypes": null, + "id": 2823, + "name": "_invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2744, + "src": "13907:8:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2825, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 2824, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13916: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": "13907:11:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", - "typeString": "contract ERC20" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 1394, + "id": 2826, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "transferFrom", + "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 6999, - "src": "11913:24:1", + "referencedDeclaration": 9577, + "src": "13907:15:5", "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_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 1398, + "id": 2830, "isConstant": false, "isLValue": false, "isPure": false, @@ -43396,399 +49216,135 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11913:56:1", + "src": "13907:24:5", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - ], - "id": 1392, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 7297, - 7298 - ], - "referencedDeclaration": 7297, - "src": "11905:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1399, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11905:65:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1400, - "nodeType": "ExpressionStatement", - "src": "11905:65:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ + }, { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1404, - "name": "swap", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 135, - "src": "12007:4:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1405, - "name": "tokensFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1386, - "src": "12013:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "baseExpression": { + "argumentTypes": null, + "id": 2831, + "name": "_invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2744, + "src": "13933:8:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1402, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 123, - "src": "11992:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" - } - }, - "id": 1403, + }, + "id": 2833, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 2832, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "number", "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 5219, - "src": "11992:14:1", + "nodeType": "Literal", + "src": "13942:1:5", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" }, - "id": 1406, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11992:31:1", + "nodeType": "IndexAccess", + "src": "13933:11:5", "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_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], - "id": 1401, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 7297, - 7298 - ], - "referencedDeclaration": 7297, - "src": "11984:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1407, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11984:40:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1408, - "nodeType": "ExpressionStatement", - "src": "11984:40:1" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1414, - "name": "msg", + "id": 2814, + "name": "fund", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "12075:3:1", + "referencedDeclaration": 1283, + "src": "13854:4:5", "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" + "typeIdentifier": "t_contract$_IW12Fund_$1241", + "typeString": "contract IW12Fund" } }, - "id": 1415, + "id": 2816, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "sender", + "memberName": "recordPurchase", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12075:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1416, - "name": "tokenAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1370, - "src": "12087:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1417, - "name": "vesting", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "12100:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "expression": { - "argumentTypes": null, - "id": 1412, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 123, - "src": "12053:5:1", + "referencedDeclaration": 1240, + "src": "13854:19:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" + "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": 1413, + "id": 2834, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "memberName": "vestingTransfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 5264, - "src": "12053:21:1", + "names": [], + "nodeType": "FunctionCall", + "src": "13854:91:5", "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_tuple$__$", + "typeString": "tuple()" } }, - "id": 1418, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12053:55:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1411, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 7297, - 7298 - ], - "referencedDeclaration": 7297, - "src": "12045:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1419, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12045:64:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1420, - "nodeType": "ExpressionStatement", - "src": "12045:64:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1423, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1421, - "name": "change", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1374, - "src": "12124:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "id": 2835, + "nodeType": "ExpressionStatement", + "src": "13854:91:5" } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1422, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12133:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "12124:10:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + ] }, - "falseBody": null, - "id": 1433, + "id": 2837, "nodeType": "IfStatement", - "src": "12120:68:1", + "src": "13530:426:5", "trueBody": { - "id": 1432, + "id": 2791, "nodeType": "Block", - "src": "12136:52:1", + "src": "13577:148:5", "statements": [ { "expression": { @@ -43796,12 +49352,260 @@ "arguments": [ { "argumentTypes": null, - "id": 1429, - "name": "change", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1374, - "src": "12170:6:1", + "expression": { + "argumentTypes": null, + "id": 2772, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10042, + "src": "13643:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13643:10:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2774, + "name": "_invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2744, + "src": "13655:8:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2776, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2775, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13664: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": "13655:11:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2777, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2750, + "src": "13668:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2782, + "name": "_fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2748, + "src": "13692:4:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + "id": 2784, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 2783, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13697: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": "13692:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2778, + "name": "_invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2744, + "src": "13676:8:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2780, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 2779, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13685: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": "13676:11:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2781, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9577, + "src": "13676: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": 2785, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13676:24:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2786, + "name": "_invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2744, + "src": "13702:8:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2788, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 2787, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13711: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": "13702:11:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -43810,55 +49614,223 @@ ], "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": 2767, + "name": "_fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2748, + "src": "13633:4:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + "id": 2769, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 2768, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13638: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": "13633:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2763, + "name": "_invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2744, + "src": "13617:8:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "id": 2765, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 2764, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13626: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": "13617:11:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9577, + "src": "13617: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": 2770, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13617:24:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], "expression": { - "argumentTypes": null, + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], "expression": { "argumentTypes": null, - "id": 1424, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "12150:3:1", + "expression": { + "argumentTypes": null, + "id": 2758, + "name": "fund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1283, + "src": "13591:4:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1241", + "typeString": "contract IW12Fund" + } + }, + "id": 2761, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "recordPurchase", + "nodeType": "MemberAccess", + "referencedDeclaration": 1240, + "src": "13591:19:5", "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" + "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": 1427, + "id": 2762, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "sender", + "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "12150:10:1", + "src": "13591:25:5", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "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": 1428, + "id": 2771, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12150:19:1", + "names": [], + "nodeType": "FunctionCall", + "src": "13591:51:5", "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" + "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": 1430, + "id": 2789, "isConstant": false, "isLValue": false, "isPure": false, @@ -43866,446 +49838,387 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12150:27:1", + "src": "13591:123:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1431, + "id": 2790, "nodeType": "ExpressionStatement", - "src": "12150:27:1" + "src": "13591:123:5" } ] } - }, + } + ] + }, + "documentation": null, + "id": 2839, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "_recordPurchase", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2751, + "nodeType": "ParameterList", + "parameters": [ { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1436, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1434, - "name": "serviceFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 129, - "src": "12201:10:1", + "constant": false, + "id": 2744, + "name": "_invoice", + "nodeType": "VariableDeclaration", + "scope": 2839, + "src": "13463:16:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5]" + }, + "typeName": { + "baseType": { + "id": 2741, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "13463:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { + "id": 2743, + "length": { "argumentTypes": null, - "hexValue": "30", - "id": 1435, + "hexValue": "35", + "id": 2742, "isConstant": false, "isLValue": false, - "isPure": true, + "isPure": false, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12214:1:1", + "src": "13468:1:5", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "typeIdentifier": null, + "typeString": null }, - "value": "0" + "value": "5" }, - "src": "12201:14:1", + "nodeType": "ArrayTypeName", + "src": "13463:7:5", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr", + "typeString": "uint256[5]" } }, - "falseBody": null, - "id": 1446, - "nodeType": "IfStatement", - "src": "12198:82:1", - "trueBody": { - "expression": { + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2748, + "name": "_fee", + "nodeType": "VariableDeclaration", + "scope": 2839, + "src": "13481:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2]" + }, + "typeName": { + "baseType": { + "id": 2745, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "13481:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2747, + "length": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1442, - "name": "serviceFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 129, - "src": "12268:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1440, - "name": "weiCost", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1372, - "src": "12252:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1441, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "percent", - "nodeType": "MemberAccess", - "referencedDeclaration": 4568, - "src": "12252:15: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": 1443, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12252:27:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1437, - "name": "serviceWallet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 133, - "src": "12229:13:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1439, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12229:22:1", - "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1444, + "hexValue": "32", + "id": 2746, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", + "kind": "number", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12229:51:1", + "nodeType": "Literal", + "src": "13486:1:5", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } + "typeIdentifier": null, + "typeString": null + }, + "value": "2" }, - "id": 1445, - "nodeType": "ExpressionStatement", - "src": "12229:51:1" - } + "nodeType": "ArrayTypeName", + "src": "13481:7:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "value": null, + "visibility": "internal" }, + { + "constant": false, + "id": 2750, + "name": "method", + "nodeType": "VariableDeclaration", + "scope": 2839, + "src": "13495:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2749, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "13495:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13462:48:5" + }, + "payable": false, + "returnParameters": { + "id": 2752, + "nodeType": "ParameterList", + "parameters": [], + "src": "13520:0:5" + }, + "scope": 3168, + "src": "13438:524:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 2846, + "nodeType": "Block", + "src": "14020:29:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 2844, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1279, + "src": "14037:5:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" + } + }, + "functionReturnParameters": 2843, + "id": 2845, + "nodeType": "Return", + "src": "14030:12:5" + } + ] + }, + "documentation": null, + "id": 2847, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getWToken", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2840, + "nodeType": "ParameterList", + "parameters": [], + "src": "13986:2:5" + }, + "payable": false, + "returnParameters": { + "id": 2843, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2842, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2847, + "src": "14011:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" + }, + "typeName": { + "contractScope": null, + "id": 2841, + "name": "IWToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7630, + "src": "14011:7:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14010:9:5" + }, + "scope": 3168, + "src": "13968:81:5", + "stateMutability": "view", + "superFunction": 1112, + "visibility": "external" + }, + { + "body": { + "id": 2854, + "nodeType": "Block", + "src": "14106:28:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 2852, + "name": "fund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1283, + "src": "14123:4:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1241", + "typeString": "contract IW12Fund" + } + }, + "functionReturnParameters": 2851, + "id": 2853, + "nodeType": "Return", + "src": "14116:11:5" + } + ] + }, + "documentation": null, + "id": 2855, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getFund", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2848, + "nodeType": "ParameterList", + "parameters": [], + "src": "14071:2:5" + }, + "payable": false, + "returnParameters": { + "id": 2851, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2850, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2855, + "src": "14096:8:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1241", + "typeString": "contract IW12Fund" + }, + "typeName": { + "contractScope": null, + "id": 2849, + "name": "IW12Fund", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1241, + "src": "14096:8:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1241", + "typeString": "contract IW12Fund" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14095:10:5" + }, + "scope": 3168, + "src": "14055:79:5", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 2865, + "nodeType": "Block", + "src": "14206:45:5", + "statements": [ { "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1460, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "12352:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1461, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12352:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { "argumentTypes": null, - "id": 1462, - "name": "tokenAmount", + "id": 2861, + "name": "paymentMethods", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1370, - "src": "12364:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "arguments": [ - { - "argumentTypes": null, - "hexValue": "313030303030", - "id": 1458, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12344:6:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_100000_by_1", - "typeString": "int_const 100000" - }, - "value": "100000" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_100000_by_1", - "typeString": "int_const 100000" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1453, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7333, - "src": "12325:4:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_W12Crowdsale_$1809", - "typeString": "contract W12Crowdsale" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_W12Crowdsale_$1809", - "typeString": "contract W12Crowdsale" - } - ], - "id": 1452, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "12317:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1454, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12317:13:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1455, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12317:21:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1447, - "name": "fund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 137, - "src": "12291:4:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", - "typeString": "contract IW12Fund" - } - }, - "id": 1450, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "recordPurchase", - "nodeType": "MemberAccess", - "referencedDeclaration": 4483, - "src": "12291:19:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) payable external" - } - }, - "id": 1451, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12291:25:1", - "typeDescriptions": { - "typeIdentifier": "t_function_setvalue_nonpayable$_t_uint256_$returns$_t_function_external_payable$_t_address_$_t_uint256_$returns$__$value_$", - "typeString": "function (uint256) returns (function (address,uint256) payable external)" - } - }, - "id": 1456, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12291:48:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$_t_address_$_t_uint256_$returns$__$value", - "typeString": "function (address,uint256) payable external" - } - }, - "id": 1457, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "gas", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12291:52:1", + "referencedDeclaration": 1297, + "src": "14223:14:5", "typeDescriptions": { - "typeIdentifier": "t_function_setgas_nonpayable$_t_uint256_$returns$_t_function_external_payable$_t_address_$_t_uint256_$returns$__$gasvalue_$value", - "typeString": "function (uint256) returns (function (address,uint256) payable external)" + "typeIdentifier": "t_struct$_Methods_$4851_storage", + "typeString": "struct PaymentMethods.Methods storage ref" } }, - "id": 1459, + "id": 2862, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12291:60:1", + "memberName": "list", + "nodeType": "MemberAccess", + "referencedDeclaration": 4957, + "src": "14223:19:5", "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$_t_address_$_t_uint256_$returns$__$gasvalue", - "typeString": "function (address,uint256) payable external" + "typeIdentifier": "t_function_internal_view$_t_struct$_Methods_$4851_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$bound_to$_t_struct$_Methods_$4851_storage_ptr_$", + "typeString": "function (struct PaymentMethods.Methods storage pointer) view returns (bytes32[] memory)" } }, - "id": 1463, + "id": 2863, "isConstant": false, "isLValue": false, "isPure": false, @@ -44313,120 +50226,142 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12291:85:1", + "src": "14223:21:5", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[] memory" } }, - "id": 1464, - "nodeType": "ExpressionStatement", - "src": "12291:85:1" - }, + "functionReturnParameters": 2860, + "id": 2864, + "nodeType": "Return", + "src": "14216:28:5" + } + ] + }, + "documentation": null, + "id": 2866, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getPaymentMethodsList", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2856, + "nodeType": "ParameterList", + "parameters": [], + "src": "14170:2:5" + }, + "payable": false, + "returnParameters": { + "id": 2860, + "nodeType": "ParameterList", + "parameters": [ { - "eventCall": { + "constant": false, + "id": 2859, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2866, + "src": "14195:9:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 2857, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "14195:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 2858, + "length": null, + "nodeType": "ArrayTypeName", + "src": "14195:9:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14194:11:5" + }, + "scope": 3168, + "src": "14140:111:5", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 2878, + "nodeType": "Block", + "src": "14335:57:5", + "statements": [ + { + "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1466, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "12406:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1467, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12406:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1468, - "name": "weiCost", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1372, - "src": "12418:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1469, - "name": "tokenAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1370, - "src": "12427:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1470, - "name": "change", + "id": 2875, + "name": "_method", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1374, - "src": "12440:6:1", + "referencedDeclaration": 2868, + "src": "14377:7:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } ], - "id": 1465, - "name": "TokenPurchase", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 153, - "src": "12392:13:1", + "expression": { + "argumentTypes": null, + "id": 2873, + "name": "paymentMethods", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1297, + "src": "14352:14:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Methods_$4851_storage", + "typeString": "struct PaymentMethods.Methods storage ref" + } + }, + "id": 2874, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isAllowed", + "nodeType": "MemberAccess", + "referencedDeclaration": 4945, + "src": "14352:24:5", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256,uint256,uint256)" + "typeIdentifier": "t_function_internal_view$_t_struct$_Methods_$4851_storage_ptr_$_t_bytes32_$returns$_t_bool_$bound_to$_t_struct$_Methods_$4851_storage_ptr_$", + "typeString": "function (struct PaymentMethods.Methods storage pointer,bytes32) view returns (bool)" } }, - "id": 1471, + "id": 2876, "isConstant": false, "isLValue": false, "isPure": false, @@ -44434,148 +50369,119 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12392:55:1", + "src": "14352:33:5", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 1472, - "nodeType": "EmitStatement", - "src": "12387:60:1" + "functionReturnParameters": 2872, + "id": 2877, + "nodeType": "Return", + "src": "14345:40:5" } ] }, "documentation": null, - "id": 1474, + "id": 2879, "implemented": true, "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 1332, - "modifierName": { - "argumentTypes": null, - "id": 1331, - "name": "nonReentrant", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6689, - "src": "11399:12:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "11399:12:1" - }, - { - "arguments": null, - "id": 1334, - "modifierName": { - "argumentTypes": null, - "id": 1333, - "name": "onlyWhenSaleActive", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1808, - "src": "11412:18:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "11412:18:1" - } - ], - "name": "buyTokens", + "isDeclaredConst": true, + "modifiers": [], + "name": "isPaymentMethodAllowed", "nodeType": "FunctionDefinition", "parameters": { - "id": 1330, + "id": 2869, "nodeType": "ParameterList", - "parameters": [], - "src": "11381:2:1" + "parameters": [ + { + "constant": false, + "id": 2868, + "name": "_method", + "nodeType": "VariableDeclaration", + "scope": 2879, + "src": "14289:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2867, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "14289:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14288:17:5" }, - "payable": true, + "payable": false, "returnParameters": { - "id": 1335, + "id": 2872, "nodeType": "ParameterList", - "parameters": [], - "src": "11431:0:1" + "parameters": [ + { + "constant": false, + "id": 2871, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2879, + "src": "14329:4:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2870, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "14329:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14328:6:5" }, - "scope": 1809, - "src": "11363:1091:1", - "stateMutability": "payable", - "superFunction": 4420, - "visibility": "public" + "scope": 3168, + "src": "14257:135:5", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" }, { "body": { - "id": 1585, + "id": 2970, "nodeType": "Block", - "src": "12621:633:1", + "src": "14477:765:5", "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1493, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1491, - "name": "weiCost", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1485, - "src": "12631:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1492, - "name": "_wei", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1476, - "src": "12641:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "12631:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1494, - "nodeType": "ExpressionStatement", - "src": "12631:14:1" - }, { "assignments": [ - 1496 + 2891, + 2893 ], "declarations": [ { "constant": false, - "id": 1496, - "name": "balance", + "id": 2891, + "name": "index", "nodeType": "VariableDeclaration", - "scope": 1586, - "src": "12656:12:1", + "scope": 2971, + "src": "14488:10:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -44583,10 +50489,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1495, + "id": 2890, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "12656:4:1", + "src": "14488:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -44594,99 +50500,52 @@ }, "value": null, "visibility": "internal" - } - ], - "id": 1503, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1500, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7333, - "src": "12695:4:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_W12Crowdsale_$1809", - "typeString": "contract W12Crowdsale" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_W12Crowdsale_$1809", - "typeString": "contract W12Crowdsale" - } - ], - "id": 1499, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "12687:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1501, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12687:13:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1497, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 123, - "src": "12671:5:1", + }, + { + "constant": false, + "id": 2893, + "name": "found", + "nodeType": "VariableDeclaration", + "scope": 2971, + "src": "14500:10:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2892, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "14500:4:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 1498, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 5276, - "src": "12671:15:1", + "value": null, + "visibility": "internal" + } + ], + "id": 2896, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2894, + "name": "getCurrentStageIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3071, + "src": "14514:20:5", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_bool_$", + "typeString": "function () view returns (uint256,bool)" } }, - "id": 1502, + "id": 2895, "isConstant": false, "isLValue": false, "isPure": false, @@ -44694,833 +50553,872 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12671:30:1", + "src": "14514:22:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", + "typeString": "tuple(uint256,bool)" } }, "nodeType": "VariableDeclarationStatement", - "src": "12656:45:1" + "src": "14487:49:5" }, { - "expression": { + "condition": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1513, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "id": 2898, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "14551:6:5", + "subExpression": { + "argumentTypes": null, + "id": 2897, + "name": "found", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2893, + "src": "14552:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2900, + "nodeType": "IfStatement", + "src": "14547:19:5", + "trueBody": { + "expression": null, + "functionReturnParameters": 2889, + "id": 2899, + "nodeType": "Return", + "src": "14559:7:5" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 2905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { "argumentTypes": null, - "id": 1505, - "name": "balance", + "id": 2901, + "name": "PurchaseProcessing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1496, - "src": "12720:7:1", + "referencedDeclaration": 5854, + "src": "14580:18:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$5854_$", + "typeString": "type(library PurchaseProcessing)" } }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { + "id": 2902, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "METHOD_ETH", + "nodeType": "MemberAccess", + "referencedDeclaration": 5192, + "src": "14580:29:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 2903, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14580:31:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 2904, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2881, + "src": "14615:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "14580:41:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2918, + "nodeType": "IfStatement", + "src": "14576:159:5", + "trueBody": { + "id": 2917, + "nodeType": "Block", + "src": "14623:112:5", + "statements": [ + { + "condition": { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" }, - "id": 1512, + "id": 2913, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "hexValue": "3130", - "id": 1506, + "arguments": [ + { + "argumentTypes": null, + "id": 2908, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2881, + "src": "14663:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 2906, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1285, + "src": "14641:5:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "id": 2907, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getTokenAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 6985, + "src": "14641:21:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view external returns (address)" + } + }, + "id": 2909, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "number", + "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "Literal", - "src": "12731:2:1", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "14641:29:5", "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" + "typeIdentifier": "t_address", + "typeString": "address" + } }, "nodeType": "BinaryOperation", - "operator": "**", + "operator": "==", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 1508, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 123, - "src": "12742:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" - } - }, - "id": 1509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "decimals", - "nodeType": "MemberAccess", - "referencedDeclaration": 6951, - "src": "12742:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", - "typeString": "function () view external returns (uint8)" - } - }, - "id": 1510, + "hexValue": "30", + "id": 2911, "isConstant": false, "isLValue": false, - "isPure": false, - "kind": "functionCall", + "isPure": true, + "kind": "number", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12742:16:1", + "nodeType": "Literal", + "src": "14682:1:5", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" } ], - "id": 1507, + "id": 2910, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "12737:4:1", + "src": "14674:7:5", "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" }, - "typeName": "uint" + "typeName": "address" }, - "id": 1511, + "id": 2912, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12737:22:1", + "src": "14674:10:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "src": "12731:28:1", + "src": "14641:43:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "src": "12720:39:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" + "falseBody": null, + "id": 2916, + "nodeType": "IfStatement", + "src": "14637:88:5", + "trueBody": { + "id": 2915, + "nodeType": "Block", + "src": "14686:39:5", + "statements": [ + { + "expression": null, + "functionReturnParameters": 2889, + "id": 2914, + "nodeType": "Return", + "src": "14704:7:5" + } + ] } - ], - "id": 1504, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 7297, - 7298 - ], - "referencedDeclaration": 7297, - "src": "12712:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" } - }, - "id": 1514, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12712:48:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1515, - "nodeType": "ExpressionStatement", - "src": "12712:48:1" + ] + } }, { "expression": { "argumentTypes": null, - "id": 1530, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1516, - "name": "actualPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1489, - "src": "12771:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "condition": { + "arguments": [ + { "argumentTypes": null, - "commonType": { + "id": 2921, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2881, + "src": "14792:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 2922, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2883, + "src": "14812:6:5", + "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2923, + "name": "stages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1300, + "src": "14832:6:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", + "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" + } + }, + "id": 2925, + "indexExpression": { + "argumentTypes": null, + "id": 2924, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2891, + "src": "14839:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14832:13:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Stage_$1318_storage", + "typeString": "struct W12Crowdsale.Stage storage ref" + } }, - "id": 1519, + "id": 2926, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, "lValueRequested": false, - "leftExpression": { + "memberName": "discount", + "nodeType": "MemberAccess", + "referencedDeclaration": 1309, + "src": "14832:22:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { "argumentTypes": null, - "id": 1517, - "name": "discount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1478, - "src": "12785:8:1", + "baseExpression": { + "argumentTypes": null, + "id": 2927, + "name": "stages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1300, + "src": "14868:6:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", + "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" + } + }, + "id": 2929, + "indexExpression": { + "argumentTypes": null, + "id": 2928, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2891, + "src": "14875:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14868:13:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_struct$_Stage_$1318_storage", + "typeString": "struct W12Crowdsale.Stage storage ref" } }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { + "id": 2930, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "volumeBoundaries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1314, + "src": "14868:30:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + { + "argumentTypes": null, + "expression": { "argumentTypes": null, - "hexValue": "30", - "id": 1518, + "baseExpression": { + "argumentTypes": null, + "id": 2931, + "name": "stages", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1300, + "src": "14912:6:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", + "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" + } + }, + "id": 2933, + "indexExpression": { + "argumentTypes": null, + "id": 2932, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2891, + "src": "14919:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", + "isLValue": true, + "isPure": false, "lValueRequested": false, - "nodeType": "Literal", - "src": "12796:1:1", - "subdenomination": null, + "nodeType": "IndexAccess", + "src": "14912:13:5", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "typeIdentifier": "t_struct$_Stage_$1318_storage", + "typeString": "struct W12Crowdsale.Stage storage ref" + } + }, + "id": 2934, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "volumeBonuses", + "nodeType": "MemberAccess", + "referencedDeclaration": 1317, + "src": "14912:27:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2937, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2881, + "src": "14963:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 2935, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1285, + "src": "14953:5:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } }, - "value": "0" + "id": 2936, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "get", + "nodeType": "MemberAccess", + "referencedDeclaration": 6999, + "src": "14953:9:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_uint256_$", + "typeString": "function (bytes32) view external returns (uint256)" + } }, - "src": "12785:12:1", + "id": 2938, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14953:17:5", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "falseExpression": { + { "argumentTypes": null, - "id": 1528, + "id": 2939, "name": "price", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 127, - "src": "12866:5:1", + "referencedDeclaration": 1287, + "src": "14984:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1529, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "12785:86:1", - "trueExpression": { + { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1526, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 1522, - "name": "Percent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4631, - "src": "12826:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Percent_$4631_$", - "typeString": "type(library Percent)" - } - }, - "id": 1523, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "MAX", - "nodeType": "MemberAccess", - "referencedDeclaration": 4543, - "src": "12826:11:1", + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 2941, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1279, + "src": "15008:5:5", "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$__$returns$_t_uint256_$", - "typeString": "function () pure returns (uint256)" + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" } }, - "id": 1524, + "id": 2942, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12826:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 1525, - "name": "discount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1478, - "src": "12842:8:1", + "memberName": "decimals", + "nodeType": "MemberAccess", + "referencedDeclaration": 9699, + "src": "15008:14:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", + "typeString": "function () view external returns (uint8)" } }, - "src": "12826:24:1", + "id": 2943, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15008:16:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_uint8", + "typeString": "uint8" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_uint8", + "typeString": "uint8" } ], - "expression": { - "argumentTypes": null, - "id": 1520, - "name": "price", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 127, - "src": "12812:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1521, + "id": 2940, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, "lValueRequested": false, - "memberName": "percent", - "nodeType": "MemberAccess", - "referencedDeclaration": 4568, - "src": "12812:13:1", + "nodeType": "ElementaryTypeNameExpression", + "src": "15003:4: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)" - } + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint" }, - "id": 1527, + "id": 2944, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", + "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12812:39:1", + "src": "15003:22:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "12771:100:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1531, - "nodeType": "ExpressionStatement", - "src": "12771:100:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1558, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1532, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1483, - "src": "12882:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { + { + "argumentTypes": null, + "condition": { "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 2949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], "expression": { - "argumentTypes": null, - "id": 1554, - "name": "Percent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4631, - "src": "13036:7:1", + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 2945, + "name": "PurchaseProcessing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5854, + "src": "15039:18:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$5854_$", + "typeString": "type(library PurchaseProcessing)" + } + }, + "id": 2946, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "METHOD_ETH", + "nodeType": "MemberAccess", + "referencedDeclaration": 5192, + "src": "15039:29:5", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Percent_$4631_$", - "typeString": "type(library Percent)" + "typeIdentifier": "t_function_internal_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" } }, - "id": 1555, + "id": 2947, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "memberName": "MAX", - "nodeType": "MemberAccess", - "referencedDeclaration": 4543, - "src": "13036:11:1", + "names": [], + "nodeType": "FunctionCall", + "src": "15039:31:5", "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$__$returns$_t_uint256_$", - "typeString": "function () pure returns (uint256)" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, - "id": 1556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13036:13:1", + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 2948, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2881, + "src": "15074:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "15039:41:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } - ], - "expression": { + }, + "falseExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1551, - "name": "actualPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1489, - "src": "13006:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1548, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 1542, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12959:2:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 1544, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 123, - "src": "12970:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" - } - }, - "id": 1545, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "decimals", - "nodeType": "MemberAccess", - "referencedDeclaration": 6951, - "src": "12970:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", - "typeString": "function () view external returns (uint8)" - } - }, - "id": 1546, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12970:16:1", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 1543, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "12965:4:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint" - }, - "id": 1547, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12965:22:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "12959:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], + "arguments": [], "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], + "argumentTypes": [], "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1539, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], + "arguments": [ + { + "argumentTypes": null, + "id": 2955, + "name": "method", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2881, + "src": "15161:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 1535, - "name": "Percent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4631, - "src": "12913:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Percent_$4631_$", - "typeString": "type(library Percent)" - } - }, - "id": 1536, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "MAX", - "nodeType": "MemberAccess", - "referencedDeclaration": 4543, - "src": "12913:11:1", + "argumentTypes": null, + "id": 2953, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1285, + "src": "15139:5:5", "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_pure$__$returns$_t_uint256_$", - "typeString": "function () pure returns (uint256)" + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" } }, - "id": 1537, + "id": 2954, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12913:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 1538, - "name": "volumeBonus", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1480, - "src": "12929:11:1", + "memberName": "getTokenAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 6985, + "src": "15139:21:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view external returns (address)" } }, - "src": "12913:27:1", + "id": 2956, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15139:29:5", "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": 1533, - "name": "_wei", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1476, - "src": "12891:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1534, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 6795, - "src": "12891:21:1", + "id": 2952, + "name": "DetailedERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9722, + "src": "15125:13: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)" + "typeIdentifier": "t_type$_t_contract$_DetailedERC20_$9722_$", + "typeString": "type(contract DetailedERC20)" } }, - "id": 1540, + "id": 2957, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", + "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12891:50:1", + "src": "15125:44:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_contract$_DetailedERC20_$9722", + "typeString": "contract DetailedERC20" } }, - "id": 1541, + "id": 2958, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "mul", + "memberName": "decimals", "nodeType": "MemberAccess", - "referencedDeclaration": 6795, - "src": "12891:67:1", + "referencedDeclaration": 9699, + "src": "15125:53: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)" + "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", + "typeString": "function () view external returns (uint8)" } }, - "id": 1549, + "id": 2959, "isConstant": false, "isLValue": false, "isPure": false, @@ -45528,471 +51426,305 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12891:97:1", + "src": "15125:55:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_uint8", + "typeString": "uint8" } - }, - "id": 1550, + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 2951, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 6809, - "src": "12891:114:1", + "nodeType": "ElementaryTypeNameExpression", + "src": "15120:4: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)" - } + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint" }, - "id": 1552, + "id": 2960, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", + "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12891:127:1", + "src": "15120:61:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1553, + "id": 2961, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 6809, - "src": "12891:144: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": 1557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12891:159:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "12882:168:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1559, - "nodeType": "ExpressionStatement", - "src": "12882:168:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1562, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1560, - "name": "balance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1496, - "src": "13065:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 1561, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1483, - "src": "13075:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13065:16:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1584, - "nodeType": "IfStatement", - "src": "13061:187:1", - "trueBody": { - "id": 1583, - "nodeType": "Block", - "src": "13083:165:1", - "statements": [ - { - "expression": { + "nodeType": "Conditional", + "src": "15039:142:5", + "trueExpression": { "argumentTypes": null, - "id": 1571, + "hexValue": "3138", + "id": 2950, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "number", "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1563, - "name": "weiCost", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1485, - "src": "13097:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "nodeType": "Literal", + "src": "15099:2:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { + "value": "18" + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1569, - "name": "tokens", + "id": 2965, + "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1483, - "src": "13163:6:1", + "referencedDeclaration": 10113, + "src": "15219:4:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_contract$_W12Crowdsale_$3168", + "typeString": "contract W12Crowdsale" } } ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1566, - "name": "balance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1496, - "src": "13133:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1564, - "name": "_wei", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1476, - "src": "13107:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1565, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 6795, - "src": "13107: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)" - } - }, - "id": 1567, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13107:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_W12Crowdsale_$3168", + "typeString": "contract W12Crowdsale" } - }, - "id": 1568, + ], + "id": 2964, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 6809, - "src": "13107:55:1", + "nodeType": "ElementaryTypeNameExpression", + "src": "15211:7: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)" - } + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, - "id": 1570, + "id": 2966, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", + "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13107:63:1", + "src": "15211:13:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } - }, - "src": "13097:73:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" } - }, - "id": 1572, - "nodeType": "ExpressionStatement", - "src": "13097:73:1" - }, - { + ], "expression": { - "argumentTypes": null, - "id": 1577, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { "argumentTypes": null, - "id": 1573, - "name": "change", + "id": 2962, + "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1487, - "src": "13184:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1576, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1574, - "name": "_wei", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1476, - "src": "13193:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 1575, - "name": "weiCost", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1485, - "src": "13200:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13193:14:1", + "referencedDeclaration": 1279, + "src": "15195:5:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" } }, - "src": "13184:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1578, - "nodeType": "ExpressionStatement", - "src": "13184:23:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1581, + "id": 2963, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1579, - "name": "tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1483, - "src": "13221:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1580, - "name": "balance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1496, - "src": "13230:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13221:16:1", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 9779, + "src": "15195:15:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" } }, - "id": 1582, - "nodeType": "ExpressionStatement", - "src": "13221:16:1" + "id": 2967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15195: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": 2919, + "name": "PurchaseProcessing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5854, + "src": "14752:18:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$5854_$", + "typeString": "type(library PurchaseProcessing)" + } + }, + "id": 2920, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "invoice", + "nodeType": "MemberAccess", + "referencedDeclaration": 5439, + "src": "14752: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": 2968, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14752:483:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5] memory" + } + }, + "functionReturnParameters": 2889, + "id": 2969, + "nodeType": "Return", + "src": "14745:490:5" } ] }, "documentation": null, - "id": 1586, + "id": 2971, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], - "name": "_purchaseOrder", + "name": "getInvoice", "nodeType": "FunctionDefinition", "parameters": { - "id": 1481, + "id": 2884, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1476, - "name": "_wei", - "nodeType": "VariableDeclaration", - "scope": 1586, - "src": "12484:9:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1475, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "12484:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1478, - "name": "discount", + "id": 2881, + "name": "method", "nodeType": "VariableDeclaration", - "scope": 1586, - "src": "12495:13:1", + "scope": 2971, + "src": "14418:14:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" }, "typeName": { - "id": 1477, - "name": "uint", + "id": 2880, + "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "12495:4:1", + "src": "14418:7:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, "value": null, @@ -46000,11 +51732,11 @@ }, { "constant": false, - "id": 1480, - "name": "volumeBonus", + "id": 2883, + "name": "amount", "nodeType": "VariableDeclaration", - "scope": 1586, - "src": "12510:16:1", + "scope": 2971, + "src": "14434:11:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -46012,10 +51744,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1479, + "id": 2882, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "12510:4:1", + "src": "14434:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -46025,311 +51757,358 @@ "visibility": "internal" } ], - "src": "12483:44:1" + "src": "14417:29:5" }, "payable": false, "returnParameters": { - "id": 1490, + "id": 2889, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1483, - "name": "tokens", - "nodeType": "VariableDeclaration", - "scope": 1586, - "src": "12559:11:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1482, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "12559:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1485, - "name": "weiCost", - "nodeType": "VariableDeclaration", - "scope": 1586, - "src": "12572:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1484, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "12572:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1487, - "name": "change", - "nodeType": "VariableDeclaration", - "scope": 1586, - "src": "12586:11:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1486, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "12586:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1489, - "name": "actualPrice", + "id": 2888, + "name": "", "nodeType": "VariableDeclaration", - "scope": 1586, - "src": "12599:16:1", + "scope": 2971, + "src": "14468:7:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_uint256_$5_memory_ptr", + "typeString": "uint256[5]" }, "typeName": { - "id": 1488, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "12599:4:1", + "baseType": { + "id": 2885, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "14468:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2887, + "length": { + "argumentTypes": null, + "hexValue": "35", + "id": 2886, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14473:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "5" + }, + "nodeType": "ArrayTypeName", + "src": "14468:7:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr", + "typeString": "uint256[5]" } }, "value": null, "visibility": "internal" } ], - "src": "12558:58:1" + "src": "14467:9:5" }, - "scope": 1809, - "src": "12460:794:1", + "scope": 3168, + "src": "14398:844:5", "stateMutability": "view", "superFunction": null, - "visibility": "internal" + "visibility": "public" }, { "body": { - "id": 1593, + "id": 2990, "nodeType": "Block", - "src": "13311:29:1", + "src": "15322:99:5", "statements": [ { "expression": { "argumentTypes": null, - "id": 1591, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 123, - "src": "13328:5:1", + "arguments": [ + { + "argumentTypes": null, + "id": 2984, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2973, + "src": "15362:11:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2985, + "name": "cost", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2975, + "src": "15375:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2986, + "name": "serviceFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1289, + "src": "15381:10:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2987, + "name": "WTokenSaleFeePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1291, + "src": "15393: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": 2982, + "name": "PurchaseProcessing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5854, + "src": "15339:18:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$5854_$", + "typeString": "type(library PurchaseProcessing)" + } + }, + "id": 2983, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "fee", + "nodeType": "MemberAccess", + "referencedDeclaration": 5481, + "src": "15339: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": 2988, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15339:75:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" } }, - "functionReturnParameters": 1590, - "id": 1592, + "functionReturnParameters": 2981, + "id": 2989, "nodeType": "Return", - "src": "13321:12:1" + "src": "15332:82:5" } ] }, "documentation": null, - "id": 1594, + "id": 2991, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], - "name": "getWToken", + "name": "getFee", "nodeType": "FunctionDefinition", "parameters": { - "id": 1587, - "nodeType": "ParameterList", - "parameters": [], - "src": "13278:2:1" - }, - "payable": false, - "returnParameters": { - "id": 1590, + "id": 2976, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1589, - "name": "", + "id": 2973, + "name": "tokenAmount", "nodeType": "VariableDeclaration", - "scope": 1594, - "src": "13303:6:1", + "scope": 2991, + "src": "15264:16:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "contractScope": null, - "id": 1588, - "name": "WToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5925, - "src": "13303:6:1", + "id": 2972, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "15264:4:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "value": null, "visibility": "internal" - } - ], - "src": "13302:8:1" - }, - "scope": 1809, - "src": "13260:80:1", - "stateMutability": "view", - "superFunction": 4335, - "visibility": "external" - }, - { - "body": { - "id": 1601, - "nodeType": "Block", - "src": "13397:28:1", - "statements": [ + }, { - "expression": { - "argumentTypes": null, - "id": 1599, - "name": "fund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 137, - "src": "13414:4:1", + "constant": false, + "id": 2975, + "name": "cost", + "nodeType": "VariableDeclaration", + "scope": 2991, + "src": "15282:9:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2974, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "15282:4:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", - "typeString": "contract IW12Fund" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "functionReturnParameters": 1598, - "id": 1600, - "nodeType": "Return", - "src": "13407:11:1" + "value": null, + "visibility": "internal" } - ] - }, - "documentation": null, - "id": 1602, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getFund", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1595, - "nodeType": "ParameterList", - "parameters": [], - "src": "13362:2:1" + ], + "src": "15263:29:5" }, "payable": false, "returnParameters": { - "id": 1598, + "id": 2981, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1597, + "id": 2980, "name": "", "nodeType": "VariableDeclaration", - "scope": 1602, - "src": "13387:8:1", + "scope": 2991, + "src": "15313:7:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", - "typeString": "contract IW12Fund" + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2]" }, "typeName": { - "contractScope": null, - "id": 1596, - "name": "IW12Fund", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4484, - "src": "13387:8:1", + "baseType": { + "id": 2977, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "15313:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2979, + "length": { + "argumentTypes": null, + "hexValue": "32", + "id": 2978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15318:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "15313:7:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", - "typeString": "contract IW12Fund" + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" } }, "value": null, "visibility": "internal" } ], - "src": "13386:10:1" + "src": "15312:9:5" }, - "scope": 1809, - "src": "13346:79:1", + "scope": 3168, + "src": "15248:173:5", "stateMutability": "view", "superFunction": null, - "visibility": "external" + "visibility": "public" }, { "body": { - "id": 1658, + "id": 3024, "nodeType": "Block", - "src": "13503:380:1", + "src": "15499:238:5", "statements": [ { "assignments": [ - 1610, - 1612 + 2999, + 3001 ], "declarations": [ { "constant": false, - "id": 1610, + "id": 2999, "name": "index", "nodeType": "VariableDeclaration", - "scope": 1659, - "src": "13514:10:1", + "scope": 3025, + "src": "15510:10:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -46337,10 +52116,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1609, + "id": 2998, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "13514:4:1", + "src": "15510:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -46351,11 +52130,11 @@ }, { "constant": false, - "id": 1612, + "id": 3001, "name": "found", "nodeType": "VariableDeclaration", - "scope": 1659, - "src": "13526:10:1", + "scope": 3025, + "src": "15522:10:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -46363,10 +52142,10 @@ "typeString": "bool" }, "typeName": { - "id": 1611, + "id": 3000, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "13526:4:1", + "src": "15522:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -46376,24 +52155,24 @@ "visibility": "internal" } ], - "id": 1615, + "id": 3004, "initialValue": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 1613, + "id": 3002, "name": "getCurrentStageIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1705, - "src": "13540:20:1", + "referencedDeclaration": 3071, + "src": "15536:20:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_bool_$", "typeString": "function () view returns (uint256,bool)" } }, - "id": 1614, + "id": 3003, "isConstant": false, "isLValue": false, "isPure": false, @@ -46401,19 +52180,19 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13540:22:1", + "src": "15536:22:5", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", "typeString": "tuple(uint256,bool)" } }, "nodeType": "VariableDeclarationStatement", - "src": "13513:49:1" + "src": "15509:49:5" }, { "condition": { "argumentTypes": null, - "id": 1617, + "id": 3006, "isConstant": false, "isLValue": false, "isPure": false, @@ -46421,15 +52200,15 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "13577:6:1", + "src": "15573:6:5", "subExpression": { "argumentTypes": null, - "id": 1616, + "id": 3005, "name": "found", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1612, - "src": "13578:5:1", + "referencedDeclaration": 3001, + "src": "15574:5:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -46441,61 +52220,44 @@ } }, "falseBody": null, - "id": 1620, + "id": 3008, "nodeType": "IfStatement", - "src": "13573:20:1", + "src": "15569:19:5", "trueBody": { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1618, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13592:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 1608, - "id": 1619, + "expression": null, + "functionReturnParameters": 2997, + "id": 3007, "nodeType": "Return", - "src": "13585:8:1" + "src": "15581:7:5" } }, { "assignments": [ - 1622 + 3010 ], "declarations": [ { "constant": false, - "id": 1622, + "id": 3010, "name": "stage", "nodeType": "VariableDeclaration", - "scope": 1659, - "src": "13604:19:1", + "scope": 3025, + "src": "15598:19:5", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$108_storage_ptr", + "typeIdentifier": "t_struct$_Stage_$1318_storage_ptr", "typeString": "struct W12Crowdsale.Stage" }, "typeName": { "contractScope": null, - "id": 1621, + "id": 3009, "name": "Stage", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 108, - "src": "13604:5:1", + "referencedDeclaration": 1318, + "src": "15598:5:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$108_storage_ptr", + "typeIdentifier": "t_struct$_Stage_$1318_storage_ptr", "typeString": "struct W12Crowdsale.Stage" } }, @@ -46503,31 +52265,31 @@ "visibility": "internal" } ], - "id": 1626, + "id": 3014, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1623, + "id": 3011, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "13626:6:1", + "referencedDeclaration": 1300, + "src": "15620:6:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$108_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" } }, - "id": 1625, + "id": 3013, "indexExpression": { "argumentTypes": null, - "id": 1624, + "id": 3012, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1610, - "src": "13633:5:1", + "referencedDeclaration": 2999, + "src": "15627:5:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -46538,397 +52300,156 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "13626:13:1", + "src": "15620:13:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$108_storage", + "typeIdentifier": "t_struct$_Stage_$1318_storage", "typeString": "struct W12Crowdsale.Stage storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "13604:35:1" + "src": "15598:35:5" }, { - "body": { - "id": 1656, - "nodeType": "Block", - "src": "13706:171:1", - "statements": [ + "expression": { + "argumentTypes": null, + "arguments": [ { - "condition": { + "argumentTypes": null, + "id": 3017, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2993, + "src": "15679:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1644, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1639, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1604, - "src": "13724:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1640, - "name": "stage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1622, - "src": "13733:5:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$108_storage_ptr", - "typeString": "struct W12Crowdsale.Stage storage pointer" - } - }, - "id": 1641, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "volumeBoundaries", - "nodeType": "MemberAccess", - "referencedDeclaration": 104, - "src": "13733:22:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1643, - "indexExpression": { - "argumentTypes": null, - "id": 1642, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1628, - "src": "13756:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13733:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13724:34:1", + "id": 3018, + "name": "stage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3010, + "src": "15686:5:5", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_struct$_Stage_$1318_storage_ptr", + "typeString": "struct W12Crowdsale.Stage storage pointer" } }, - "falseBody": { - "id": 1654, - "nodeType": "Block", - "src": "13829:38:1", - "statements": [ - { - "id": 1653, - "nodeType": "Break", - "src": "13847:5:1" - } - ] - }, - "id": 1655, - "nodeType": "IfStatement", - "src": "13720:147:1", - "trueBody": { - "id": 1652, - "nodeType": "Block", - "src": "13760:63:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1645, - "name": "bonus", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1607, - "src": "13778:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1646, - "name": "stage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1622, - "src": "13786:5:1", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$108_storage_ptr", - "typeString": "struct W12Crowdsale.Stage storage pointer" - } - }, - "id": 1647, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "volumeBonuses", - "nodeType": "MemberAccess", - "referencedDeclaration": 107, - "src": "13786:19:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 1649, - "indexExpression": { - "argumentTypes": null, - "id": 1648, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1628, - "src": "13806:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13786:22:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13778:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1651, - "nodeType": "ExpressionStatement", - "src": "13778:30:1" - } - ] + "id": 3019, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "volumeBoundaries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1314, + "src": "15686:22:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" } - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1635, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1631, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1628, - "src": "13666:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { + }, + { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1632, + "id": 3020, "name": "stage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1622, - "src": "13670:5:1", + "referencedDeclaration": 3010, + "src": "15710:5:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$108_storage_ptr", + "typeIdentifier": "t_struct$_Stage_$1318_storage_ptr", "typeString": "struct W12Crowdsale.Stage storage pointer" } }, - "id": 1633, + "id": 3021, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberName": "volumeBoundaries", + "memberName": "volumeBonuses", "nodeType": "MemberAccess", - "referencedDeclaration": 104, - "src": "13670:22:1", + "referencedDeclaration": 1317, + "src": "15710:19:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } - }, - "id": 1634, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13670:29:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" } - }, - "src": "13666:33:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1657, - "initializationExpression": { - "assignments": [ - 1628 ], - "declarations": [ - { - "constant": false, - "id": 1628, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 1659, - "src": "13654:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { + "expression": { + "argumentTypes": [ + { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "typeName": { - "id": 1627, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "13654:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" }, - "value": null, - "visibility": "internal" - } - ], - "id": 1630, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 1629, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13663:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "13654:10:1" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 1637, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "13701:3:1", - "subExpression": { + { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + ], + "expression": { "argumentTypes": null, - "id": 1636, - "name": "i", + "id": 3015, + "name": "PurchaseProcessing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1628, - "src": "13701:1:1", + "referencedDeclaration": 5854, + "src": "15651:18:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_type$_t_contract$_PurchaseProcessing_$5854_$", + "typeString": "type(library PurchaseProcessing)" } }, + "id": 3016, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getBonus", + "nodeType": "MemberAccess", + "referencedDeclaration": 5853, + "src": "15651:27:5", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "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": 1638, - "nodeType": "ExpressionStatement", - "src": "13701:3:1" + "id": 3022, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15651:79:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - "nodeType": "ForStatement", - "src": "13650:227:1" + "functionReturnParameters": 2997, + "id": 3023, + "nodeType": "Return", + "src": "15644:86:5" } ] }, "documentation": null, - "id": 1659, + "id": 3025, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -46936,16 +52457,16 @@ "name": "getSaleVolumeBonus", "nodeType": "FunctionDefinition", "parameters": { - "id": 1605, + "id": 2994, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1604, + "id": 2993, "name": "value", "nodeType": "VariableDeclaration", - "scope": 1659, - "src": "13459:10:1", + "scope": 3025, + "src": "15455:10:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -46953,10 +52474,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1603, + "id": 2992, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "13459:4:1", + "src": "15455:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -46966,20 +52487,20 @@ "visibility": "internal" } ], - "src": "13458:12:1" + "src": "15454:12:5" }, "payable": false, "returnParameters": { - "id": 1608, + "id": 2997, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1607, + "id": 2996, "name": "bonus", "nodeType": "VariableDeclaration", - "scope": 1659, - "src": "13491:10:1", + "scope": 3025, + "src": "15487:10:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -46987,10 +52508,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1606, + "id": 2995, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "13491:4:1", + "src": "15487:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -47000,53 +52521,53 @@ "visibility": "internal" } ], - "src": "13490:12:1" + "src": "15486:12:5" }, - "scope": 1809, - "src": "13431:452:1", + "scope": 3168, + "src": "15427:310:5", "stateMutability": "view", - "superFunction": 4404, + "superFunction": 1181, "visibility": "public" }, { "body": { - "id": 1704, + "id": 3070, "nodeType": "Block", - "src": "13966:254:1", + "src": "15820:254:5", "statements": [ { "body": { - "id": 1698, + "id": 3064, "nodeType": "Block", - "src": "14016:170:1", + "src": "15870:170:5", "statements": [ { "assignments": [ - 1678 + 3044 ], "declarations": [ { "constant": false, - "id": 1678, + "id": 3044, "name": "stage", "nodeType": "VariableDeclaration", - "scope": 1705, - "src": "14030:19:1", + "scope": 3071, + "src": "15884:19:5", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$108_storage_ptr", + "typeIdentifier": "t_struct$_Stage_$1318_storage_ptr", "typeString": "struct W12Crowdsale.Stage" }, "typeName": { "contractScope": null, - "id": 1677, + "id": 3043, "name": "Stage", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 108, - "src": "14030:5:1", + "referencedDeclaration": 1318, + "src": "15884:5:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$108_storage_ptr", + "typeIdentifier": "t_struct$_Stage_$1318_storage_ptr", "typeString": "struct W12Crowdsale.Stage" } }, @@ -47054,31 +52575,31 @@ "visibility": "internal" } ], - "id": 1682, + "id": 3048, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1679, + "id": 3045, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "14052:6:1", + "referencedDeclaration": 1300, + "src": "15906:6:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$108_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" } }, - "id": 1681, + "id": 3047, "indexExpression": { "argumentTypes": null, - "id": 1680, + "id": 3046, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1667, - "src": "14059:1:1", + "referencedDeclaration": 3033, + "src": "15913:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -47089,14 +52610,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "14052:9:1", + "src": "15906:9:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$108_storage", + "typeIdentifier": "t_struct$_Stage_$1318_storage", "typeString": "struct W12Crowdsale.Stage storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "14030:31:1" + "src": "15884:31:5" }, { "condition": { @@ -47105,7 +52626,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1691, + "id": 3057, "isConstant": false, "isLValue": false, "isPure": false, @@ -47116,7 +52637,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1686, + "id": 3052, "isConstant": false, "isLValue": false, "isPure": false, @@ -47125,26 +52646,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1683, + "id": 3049, "name": "stage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1678, - "src": "14080:5:1", + "referencedDeclaration": 3044, + "src": "15934:5:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$108_storage_ptr", + "typeIdentifier": "t_struct$_Stage_$1318_storage_ptr", "typeString": "struct W12Crowdsale.Stage storage pointer" } }, - "id": 1684, + "id": 3050, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "startDate", "nodeType": "MemberAccess", - "referencedDeclaration": 95, - "src": "14080:15:1", + "referencedDeclaration": 1305, + "src": "15934:15:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -47154,18 +52675,18 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 1685, + "id": 3051, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7296, - "src": "14099:3:1", + "referencedDeclaration": 10044, + "src": "15953:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "14080:22:1", + "src": "15934:22:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -47179,7 +52700,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1690, + "id": 3056, "isConstant": false, "isLValue": false, "isPure": false, @@ -47188,26 +52709,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1687, + "id": 3053, "name": "stage", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1678, - "src": "14106:5:1", + "referencedDeclaration": 3044, + "src": "15960:5:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$108_storage_ptr", + "typeIdentifier": "t_struct$_Stage_$1318_storage_ptr", "typeString": "struct W12Crowdsale.Stage storage pointer" } }, - "id": 1688, + "id": 3054, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "endDate", "nodeType": "MemberAccess", - "referencedDeclaration": 97, - "src": "14106:13:1", + "referencedDeclaration": 1307, + "src": "15960:13:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -47217,37 +52738,37 @@ "operator": ">", "rightExpression": { "argumentTypes": null, - "id": 1689, + "id": 3055, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7296, - "src": "14122:3:1", + "referencedDeclaration": 10044, + "src": "15976:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "14106:19:1", + "src": "15960:19:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "14080:45:1", + "src": "15934:45:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 1697, + "id": 3063, "nodeType": "IfStatement", - "src": "14076:100:1", + "src": "15930:100:5", "trueBody": { - "id": 1696, + "id": 3062, "nodeType": "Block", - "src": "14127:49:1", + "src": "15981:49:5", "statements": [ { "expression": { @@ -47255,12 +52776,12 @@ "components": [ { "argumentTypes": null, - "id": 1692, + "id": 3058, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1667, - "src": "14153:1:1", + "referencedDeclaration": 3033, + "src": "16007:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -47269,14 +52790,14 @@ { "argumentTypes": null, "hexValue": "74727565", - "id": 1693, + "id": 3059, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "14156:4:1", + "src": "16010:4:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -47285,23 +52806,23 @@ "value": "true" } ], - "id": 1694, + "id": 3060, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "14152:9:1", + "src": "16006:9:5", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", "typeString": "tuple(uint256,bool)" } }, - "functionReturnParameters": 1665, - "id": 1695, + "functionReturnParameters": 3031, + "id": 3061, "nodeType": "Return", - "src": "14145:16:1" + "src": "15999:16:5" } ] } @@ -47314,19 +52835,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1673, + "id": 3039, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1670, + "id": 3036, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1667, - "src": "13992:1:1", + "referencedDeclaration": 3033, + "src": "15846:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -47338,18 +52859,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1671, + "id": 3037, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "13996:6:1", + "referencedDeclaration": 1300, + "src": "15850:6:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$108_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" } }, - "id": 1672, + "id": 3038, "isConstant": false, "isLValue": true, "isPure": false, @@ -47357,31 +52878,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "13996:13:1", + "src": "15850:13:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "13992:17:1", + "src": "15846:17:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1699, + "id": 3065, "initializationExpression": { "assignments": [ - 1667 + 3033 ], "declarations": [ { "constant": false, - "id": 1667, + "id": 3033, "name": "i", "nodeType": "VariableDeclaration", - "scope": 1705, - "src": "13980:6:1", + "scope": 3071, + "src": "15834:6:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -47389,10 +52910,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1666, + "id": 3032, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "13980:4:1", + "src": "15834:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -47402,18 +52923,18 @@ "visibility": "internal" } ], - "id": 1669, + "id": 3035, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 1668, + "id": 3034, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "13989:1:1", + "src": "15843:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -47422,12 +52943,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "13980:10:1" + "src": "15834:10:5" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 1675, + "id": 3041, "isConstant": false, "isLValue": false, "isPure": false, @@ -47435,15 +52956,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "14011:3:1", + "src": "15865:3:5", "subExpression": { "argumentTypes": null, - "id": 1674, + "id": 3040, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1667, - "src": "14011:1:1", + "referencedDeclaration": 3033, + "src": "15865:1:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -47454,12 +52975,12 @@ "typeString": "uint256" } }, - "id": 1676, + "id": 3042, "nodeType": "ExpressionStatement", - "src": "14011:3:1" + "src": "15865:3:5" }, "nodeType": "ForStatement", - "src": "13976:210:1" + "src": "15830:210:5" }, { "expression": { @@ -47468,14 +52989,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 1700, + "id": 3066, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14204:1:1", + "src": "16058:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -47486,14 +53007,14 @@ { "argumentTypes": null, "hexValue": "66616c7365", - "id": 1701, + "id": 3067, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "14207:5:1", + "src": "16061:5:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -47502,28 +53023,28 @@ "value": "false" } ], - "id": 1702, + "id": 3068, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "14203:10:1", + "src": "16057:10:5", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_rational_0_by_1_$_t_bool_$", "typeString": "tuple(int_const 0,bool)" } }, - "functionReturnParameters": 1665, - "id": 1703, + "functionReturnParameters": 3031, + "id": 3069, "nodeType": "Return", - "src": "14196:17:1" + "src": "16050:17:5" } ] }, "documentation": null, - "id": 1705, + "id": 3071, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -47531,23 +53052,23 @@ "name": "getCurrentStageIndex", "nodeType": "FunctionDefinition", "parameters": { - "id": 1660, + "id": 3026, "nodeType": "ParameterList", "parameters": [], - "src": "13918:2:1" + "src": "15772:2:5" }, "payable": false, "returnParameters": { - "id": 1665, + "id": 3031, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1662, + "id": 3028, "name": "index", "nodeType": "VariableDeclaration", - "scope": 1705, - "src": "13942:10:1", + "scope": 3071, + "src": "15796:10:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -47555,10 +53076,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1661, + "id": 3027, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "13942:4:1", + "src": "15796:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -47569,11 +53090,11 @@ }, { "constant": false, - "id": 1664, + "id": 3030, "name": "found", "nodeType": "VariableDeclaration", - "scope": 1705, - "src": "13954:10:1", + "scope": 3071, + "src": "15808:10:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -47581,10 +53102,10 @@ "typeString": "bool" }, "typeName": { - "id": 1663, + "id": 3029, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "13954:4:1", + "src": "15808:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -47594,19 +53115,19 @@ "visibility": "internal" } ], - "src": "13941:24:1" + "src": "15795:24:5" }, - "scope": 1809, - "src": "13889:331:1", + "scope": 3168, + "src": "15743:331:5", "stateMutability": "view", - "superFunction": 4397, + "superFunction": 1174, "visibility": "public" }, { "body": { - "id": 1737, + "id": 3103, "nodeType": "Block", - "src": "14277:189:1", + "src": "16131:189:5", "statements": [ { "expression": { @@ -47617,18 +53138,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1711, + "id": 3077, "name": "isEnded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1759, - "src": "14295:7:1", + "referencedDeclaration": 3125, + "src": "16149:7:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", "typeString": "function () view returns (bool)" } }, - "id": 1712, + "id": 3078, "isConstant": false, "isLValue": false, "isPure": false, @@ -47636,7 +53157,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "14295:9:1", + "src": "16149:9:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -47650,21 +53171,21 @@ "typeString": "bool" } ], - "id": 1710, + "id": 3076, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "14287:7:1", + "referencedDeclaration": 10045, + "src": "16141:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1713, + "id": 3079, "isConstant": false, "isLValue": false, "isPure": false, @@ -47672,28 +53193,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "14287:18:1", + "src": "16141:18:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1714, + "id": 3080, "nodeType": "ExpressionStatement", - "src": "14287:18:1" + "src": "16141:18:5" }, { "assignments": [ - 1716 + 3082 ], "declarations": [ { "constant": false, - "id": 1716, + "id": 3082, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 1738, - "src": "14316:11:1", + "scope": 3104, + "src": "16170:11:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -47701,10 +53222,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1715, + "id": 3081, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "14316:4:1", + "src": "16170:4:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -47714,7 +53235,7 @@ "visibility": "internal" } ], - "id": 1723, + "id": 3089, "initialValue": { "argumentTypes": null, "arguments": [ @@ -47723,14 +53244,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1720, + "id": 3086, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7333, - "src": "14354:4:1", + "referencedDeclaration": 10113, + "src": "16208:4:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_W12Crowdsale_$1809", + "typeIdentifier": "t_contract$_W12Crowdsale_$3168", "typeString": "contract W12Crowdsale" } } @@ -47738,24 +53259,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_W12Crowdsale_$1809", + "typeIdentifier": "t_contract$_W12Crowdsale_$3168", "typeString": "contract W12Crowdsale" } ], - "id": 1719, + "id": 3085, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "14346:7:1", + "src": "16200:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1721, + "id": 3087, "isConstant": false, "isLValue": false, "isPure": false, @@ -47763,7 +53284,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "14346:13:1", + "src": "16200:13:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -47779,32 +53300,32 @@ ], "expression": { "argumentTypes": null, - "id": 1717, + "id": 3083, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 123, - "src": "14330:5:1", + "referencedDeclaration": 1279, + "src": "16184:5:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" } }, - "id": 1718, + "id": 3084, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 5276, - "src": "14330:15:1", + "referencedDeclaration": 9779, + "src": "16184:15:5", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 1722, + "id": 3088, "isConstant": false, "isLValue": false, "isPure": false, @@ -47812,14 +53333,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "14330:30:1", + "src": "16184:30:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "14316:44:1" + "src": "16170:44:5" }, { "expression": { @@ -47830,12 +53351,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1727, + "id": 3093, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "14394:5:1", + "referencedDeclaration": 9606, + "src": "16248:5:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -47843,12 +53364,12 @@ }, { "argumentTypes": null, - "id": 1728, + "id": 3094, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1716, - "src": "14401:6:1", + "referencedDeclaration": 3082, + "src": "16255:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -47868,32 +53389,32 @@ ], "expression": { "argumentTypes": null, - "id": 1725, + "id": 3091, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 123, - "src": "14379:5:1", + "referencedDeclaration": 1279, + "src": "16233:5:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" } }, - "id": 1726, + "id": 3092, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 5219, - "src": "14379:14:1", + "referencedDeclaration": 9788, + "src": "16233:14:5", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 1729, + "id": 3095, "isConstant": false, "isLValue": false, "isPure": false, @@ -47901,7 +53422,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "14379:29:1", + "src": "16233:29:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -47915,21 +53436,21 @@ "typeString": "bool" } ], - "id": 1724, + "id": 3090, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "14371:7:1", + "referencedDeclaration": 10045, + "src": "16225:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1730, + "id": 3096, "isConstant": false, "isLValue": false, "isPure": false, @@ -47937,15 +53458,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "14371:38:1", + "src": "16225:38:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1731, + "id": 3097, "nodeType": "ExpressionStatement", - "src": "14371:38:1" + "src": "16225:38:5" }, { "eventCall": { @@ -47953,12 +53474,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1733, + "id": 3099, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6858, - "src": "14445:5:1", + "referencedDeclaration": 9606, + "src": "16299:5:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -47966,12 +53487,12 @@ }, { "argumentTypes": null, - "id": 1734, + "id": 3100, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1716, - "src": "14452:6:1", + "referencedDeclaration": 3082, + "src": "16306:6:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -47989,18 +53510,18 @@ "typeString": "uint256" } ], - "id": 1732, + "id": 3098, "name": "UnsoldTokenReturned", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "14425:19:1", + "referencedDeclaration": 1355, + "src": "16279:19:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 1735, + "id": 3101, "isConstant": false, "isLValue": false, "isPure": false, @@ -48008,70 +53529,70 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "14425:34:1", + "src": "16279:34:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1736, + "id": 3102, "nodeType": "EmitStatement", - "src": "14420:39:1" + "src": "16274:39:5" } ] }, "documentation": null, - "id": 1738, + "id": 3104, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 1708, + "id": 3074, "modifierName": { "argumentTypes": null, - "id": 1707, + "id": 3073, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6888, - "src": "14267:9:1", + "referencedDeclaration": 9636, + "src": "16121:9:5", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "14267:9:1" + "src": "16121:9:5" } ], "name": "claimRemainingTokens", "nodeType": "FunctionDefinition", "parameters": { - "id": 1706, + "id": 3072, "nodeType": "ParameterList", "parameters": [], - "src": "14255:2:1" + "src": "16109:2:5" }, "payable": false, "returnParameters": { - "id": 1709, + "id": 3075, "nodeType": "ParameterList", "parameters": [], - "src": "14277:0:1" + "src": "16131:0:5" }, - "scope": 1809, - "src": "14226:240:1", + "scope": 3168, + "src": "16080:240:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" }, { "body": { - "id": 1758, + "id": 3124, "nodeType": "Block", - "src": "14518:85:1", + "src": "16372:85:5", "statements": [ { "expression": { @@ -48080,7 +53601,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1756, + "id": 3122, "isConstant": false, "isLValue": false, "isPure": false, @@ -48091,7 +53612,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1746, + "id": 3112, "isConstant": false, "isLValue": false, "isPure": false, @@ -48100,18 +53621,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1743, + "id": 3109, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "14535:6:1", + "referencedDeclaration": 1300, + "src": "16389:6:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$108_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" } }, - "id": 1744, + "id": 3110, "isConstant": false, "isLValue": true, "isPure": false, @@ -48119,7 +53640,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "14535:13:1", + "src": "16389:13:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -48130,14 +53651,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1745, + "id": 3111, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14552:1:1", + "src": "16406:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -48145,7 +53666,7 @@ }, "value": "0" }, - "src": "14535:18:1", + "src": "16389:18:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -48159,7 +53680,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1755, + "id": 3121, "isConstant": false, "isLValue": false, "isPure": false, @@ -48170,25 +53691,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1747, + "id": 3113, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "14557:6:1", + "referencedDeclaration": 1300, + "src": "16411:6:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$108_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" } }, - "id": 1752, + "id": 3118, "indexExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1751, + "id": 3117, "isConstant": false, "isLValue": false, "isPure": false, @@ -48197,18 +53718,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1748, + "id": 3114, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "14564:6:1", + "referencedDeclaration": 1300, + "src": "16418:6:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$108_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" } }, - "id": 1749, + "id": 3115, "isConstant": false, "isLValue": true, "isPure": false, @@ -48216,7 +53737,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "14564:13:1", + "src": "16418:13:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -48227,14 +53748,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 1750, + "id": 3116, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14580:1:1", + "src": "16434:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -48242,7 +53763,7 @@ }, "value": "1" }, - "src": "14564:17:1", + "src": "16418:17:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -48253,21 +53774,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "14557:25:1", + "src": "16411:25:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$108_storage", + "typeIdentifier": "t_struct$_Stage_$1318_storage", "typeString": "struct W12Crowdsale.Stage storage ref" } }, - "id": 1753, + "id": 3119, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "endDate", "nodeType": "MemberAccess", - "referencedDeclaration": 97, - "src": "14557:33:1", + "referencedDeclaration": 1307, + "src": "16411:33:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -48277,38 +53798,38 @@ "operator": "<", "rightExpression": { "argumentTypes": null, - "id": 1754, + "id": 3120, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7296, - "src": "14593:3:1", + "referencedDeclaration": 10044, + "src": "16447:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "14557:39:1", + "src": "16411:39:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "14535:61:1", + "src": "16389:61:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 1742, - "id": 1757, + "functionReturnParameters": 3108, + "id": 3123, "nodeType": "Return", - "src": "14528:68:1" + "src": "16382:68:5" } ] }, "documentation": null, - "id": 1759, + "id": 3125, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -48316,23 +53837,23 @@ "name": "isEnded", "nodeType": "FunctionDefinition", "parameters": { - "id": 1739, + "id": 3105, "nodeType": "ParameterList", "parameters": [], - "src": "14488:2:1" + "src": "16342:2:5" }, "payable": false, "returnParameters": { - "id": 1742, + "id": 3108, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1741, + "id": 3107, "name": "", "nodeType": "VariableDeclaration", - "scope": 1759, - "src": "14512:4:1", + "scope": 3125, + "src": "16366:4:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -48340,10 +53861,10 @@ "typeString": "bool" }, "typeName": { - "id": 1740, + "id": 3106, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "14512:4:1", + "src": "16366:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -48353,34 +53874,34 @@ "visibility": "internal" } ], - "src": "14511:6:1" + "src": "16365:6:5" }, - "scope": 1809, - "src": "14472:131:1", + "scope": 3168, + "src": "16326:131:5", "stateMutability": "view", - "superFunction": 4409, + "superFunction": 1186, "visibility": "public" }, { "body": { - "id": 1771, + "id": 3137, "nodeType": "Block", - "src": "14660:79:1", + "src": "16514:79:5", "statements": [ { "assignments": [ null, - 1765 + 3131 ], "declarations": [ null, { "constant": false, - "id": 1765, + "id": 3131, "name": "found", "nodeType": "VariableDeclaration", - "scope": 1772, - "src": "14673:10:1", + "scope": 3138, + "src": "16527:10:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -48388,10 +53909,10 @@ "typeString": "bool" }, "typeName": { - "id": 1764, + "id": 3130, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "14673:4:1", + "src": "16527:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -48401,24 +53922,24 @@ "visibility": "internal" } ], - "id": 1768, + "id": 3134, "initialValue": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 1766, + "id": 3132, "name": "getCurrentStageIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1705, - "src": "14687:20:1", + "referencedDeclaration": 3071, + "src": "16541:20:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_bool_$", "typeString": "function () view returns (uint256,bool)" } }, - "id": 1767, + "id": 3133, "isConstant": false, "isLValue": false, "isPure": false, @@ -48426,38 +53947,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "14687:22:1", + "src": "16541:22:5", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", "typeString": "tuple(uint256,bool)" } }, "nodeType": "VariableDeclarationStatement", - "src": "14670:39:1" + "src": "16524:39:5" }, { "expression": { "argumentTypes": null, - "id": 1769, + "id": 3135, "name": "found", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1765, - "src": "14727:5:1", + "referencedDeclaration": 3131, + "src": "16581:5:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 1763, - "id": 1770, + "functionReturnParameters": 3129, + "id": 3136, "nodeType": "Return", - "src": "14720:12:1" + "src": "16574:12:5" } ] }, "documentation": null, - "id": 1772, + "id": 3138, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -48465,23 +53986,23 @@ "name": "isSaleActive", "nodeType": "FunctionDefinition", "parameters": { - "id": 1760, + "id": 3126, "nodeType": "ParameterList", "parameters": [], - "src": "14630:2:1" + "src": "16484:2:5" }, "payable": false, "returnParameters": { - "id": 1763, + "id": 3129, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1762, + "id": 3128, "name": "", "nodeType": "VariableDeclaration", - "scope": 1772, - "src": "14654:4:1", + "scope": 3138, + "src": "16508:4:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -48489,10 +54010,10 @@ "typeString": "bool" }, "typeName": { - "id": 1761, + "id": 3127, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "14654:4:1", + "src": "16508:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -48502,89 +54023,19 @@ "visibility": "internal" } ], - "src": "14653:6:1" + "src": "16507:6:5" }, - "scope": 1809, - "src": "14609:130:1", + "scope": 3168, + "src": "16463:130:5", "stateMutability": "view", - "superFunction": 4414, + "superFunction": 1191, "visibility": "public" }, { "body": { - "id": 1778, - "nodeType": "Block", - "src": "14773:28:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1775, - "name": "buyTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1474, - "src": "14783:9:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 1776, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14783:11:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1777, - "nodeType": "ExpressionStatement", - "src": "14783:11:1" - } - ] - }, - "documentation": null, - "id": 1779, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1773, - "nodeType": "ParameterList", - "parameters": [], - "src": "14753:2:1" - }, - "payable": true, - "returnParameters": { - "id": 1774, - "nodeType": "ParameterList", - "parameters": [], - "src": "14773:0:1" - }, - "scope": 1809, - "src": "14745:56:1", - "stateMutability": "payable", - "superFunction": 4417, - "visibility": "external" - }, - { - "body": { - "id": 1797, + "id": 3156, "nodeType": "Block", - "src": "14834:110:1", + "src": "16626:110:5", "statements": [ { "condition": { @@ -48593,7 +54044,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1784, + "id": 3143, "isConstant": false, "isLValue": false, "isPure": false, @@ -48602,18 +54053,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1781, + "id": 3140, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "14848:6:1", + "referencedDeclaration": 1300, + "src": "16640:6:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$108_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" } }, - "id": 1782, + "id": 3141, "isConstant": false, "isLValue": true, "isPure": false, @@ -48621,7 +54072,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "14848:13:1", + "src": "16640:13:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -48632,14 +54083,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1783, + "id": 3142, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14864:1:1", + "src": "16656:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -48647,20 +54098,20 @@ }, "value": "0" }, - "src": "14848:17:1", + "src": "16640:17:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 1795, + "id": 3154, "nodeType": "IfStatement", - "src": "14844:82:1", + "src": "16636:82:5", "trueBody": { - "id": 1794, + "id": 3153, "nodeType": "Block", - "src": "14867:59:1", + "src": "16659:59:5", "statements": [ { "expression": { @@ -48672,7 +54123,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1791, + "id": 3150, "isConstant": false, "isLValue": false, "isPure": false, @@ -48683,29 +54134,29 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1786, + "id": 3145, "name": "stages", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "14889:6:1", + "referencedDeclaration": 1300, + "src": "16681:6:5", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Stage_$108_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Stage_$1318_storage_$dyn_storage", "typeString": "struct W12Crowdsale.Stage storage ref[] storage ref" } }, - "id": 1788, + "id": 3147, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1787, + "id": 3146, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14896:1:1", + "src": "16688:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -48718,21 +54169,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "14889:9:1", + "src": "16681:9:5", "typeDescriptions": { - "typeIdentifier": "t_struct$_Stage_$108_storage", + "typeIdentifier": "t_struct$_Stage_$1318_storage", "typeString": "struct W12Crowdsale.Stage storage ref" } }, - "id": 1789, + "id": 3148, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "startDate", "nodeType": "MemberAccess", - "referencedDeclaration": 95, - "src": "14889:19:1", + "referencedDeclaration": 1305, + "src": "16681:19:5", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -48742,18 +54193,18 @@ "operator": ">", "rightExpression": { "argumentTypes": null, - "id": 1790, + "id": 3149, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7296, - "src": "14911:3:1", + "referencedDeclaration": 10044, + "src": "16703:3:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "14889:25:1", + "src": "16681:25:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -48767,21 +54218,21 @@ "typeString": "bool" } ], - "id": 1785, + "id": 3144, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "14881:7:1", + "referencedDeclaration": 10045, + "src": "16673:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1792, + "id": 3151, "isConstant": false, "isLValue": false, "isPure": false, @@ -48789,44 +54240,44 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "14881:34:1", + "src": "16673:34:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1793, + "id": 3152, "nodeType": "ExpressionStatement", - "src": "14881:34:1" + "src": "16673:34:5" } ] } }, { - "id": 1796, + "id": 3155, "nodeType": "PlaceholderStatement", - "src": "14936:1:1" + "src": "16728:1:5" } ] }, "documentation": null, - "id": 1798, + "id": 3157, "name": "beforeSaleStart", "nodeType": "ModifierDefinition", "parameters": { - "id": 1780, + "id": 3139, "nodeType": "ParameterList", "parameters": [], - "src": "14831:2:1" + "src": "16623:2:5" }, - "src": "14807:137:1", + "src": "16599:137:5", "visibility": "internal" }, { "body": { - "id": 1807, + "id": 3166, "nodeType": "Block", - "src": "14980:79:1", + "src": "16772:79:5", "statements": [ { "expression": { @@ -48837,18 +54288,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1801, + "id": 3160, "name": "isSaleActive", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1772, - "src": "14998:12:1", + "referencedDeclaration": 3138, + "src": "16790:12:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", "typeString": "function () view returns (bool)" } }, - "id": 1802, + "id": 3161, "isConstant": false, "isLValue": false, "isPure": false, @@ -48856,7 +54307,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "14998:14:1", + "src": "16790:14:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -48865,14 +54316,14 @@ { "argumentTypes": null, "hexValue": "53616c65206973206e6f74207374617274656420796574", - "id": 1803, + "id": 3162, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "15014:25:1", + "src": "16806:25:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_5d3dac2c5e5eaf55904e5c5b3584f31d9fc0f4cb1622762f2b62bd65063805dc", @@ -48892,21 +54343,21 @@ "typeString": "literal_string \"Sale is not started yet\"" } ], - "id": 1800, + "id": 3159, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7298, - "src": "14990:7:1", + "referencedDeclaration": 10046, + "src": "16782:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1804, + "id": 3163, "isConstant": false, "isLValue": false, "isPure": false, @@ -48914,42 +54365,42 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "14990:50:1", + "src": "16782:50:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1805, + "id": 3164, "nodeType": "ExpressionStatement", - "src": "14990:50:1" + "src": "16782:50:5" }, { - "id": 1806, + "id": 3165, "nodeType": "PlaceholderStatement", - "src": "15051:1:1" + "src": "16843:1:5" } ] }, "documentation": null, - "id": 1808, + "id": 3167, "name": "onlyWhenSaleActive", "nodeType": "ModifierDefinition", "parameters": { - "id": 1799, + "id": 3158, "nodeType": "ParameterList", "parameters": [], - "src": "14977:2:1" + "src": "16769:2:5" }, - "src": "14950:109:1", + "src": "16742:109:5", "visibility": "internal" } ], - "scope": 1810, - "src": "505:14556:1" + "scope": 3169, + "src": "667:16186:5" } ], - "src": "0:15062:1" + "src": "0:16854:5" }, "compiler": { "name": "solc", @@ -48959,10 +54410,11 @@ "4": { "events": {}, "links": { - "Percent": "0xd98ecddead560f1327823ce8c7580729845ccb7f" + "Percent": "0xd6429c58c604e696d68544add46d2c7bcdfdcae4", + "Utils": "0xff9744d4a6369c1c737a10ab912fd1b7d22018f9" } } }, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-02T12:01:53.264Z" + "updatedAt": "2018-10-22T07:59:52.102Z" } \ No newline at end of file diff --git a/build/contracts/W12CrowdsaleFactory.json b/build/contracts/W12CrowdsaleFactory.json index fb87b8b4..83c16b5e 100644 --- a/build/contracts/W12CrowdsaleFactory.json +++ b/build/contracts/W12CrowdsaleFactory.json @@ -24,6 +24,10 @@ { "name": "_fundFactory", "type": "address" + }, + { + "name": "_rates", + "type": "address" } ], "payable": false, @@ -109,24 +113,24 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b506040516040806137718339810160405280516020909101516000829055600160a060020a03811615156100a557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f466163746f727920616464726573732072657175697265640000000000000000604482015290519081900360640190fd5b60018054600160a060020a031916600160a060020a03929092169190911790555061369c806100d56000396000f3006080604052600436106100325763ffffffff60e060020a60003504166354fd4d508114610037578063aa1322f71461005e575b600080fd5b34801561004357600080fd5b5061004c6100c4565b60408051918252519081900360200190f35b34801561006a57600080fd5b506100a8600160a060020a03600435811690602435811690604435906064358116906084359060a4359060c4359060e43581169061010435166100ca565b60408051600160a060020a039092168252519081900360200190f35b60005481565b600154604080517f17444626000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152898116602483015260448201879052915160009384931691631744462691606480830192602092919082900301818787803b15801561014257600080fd5b505af1158015610156573d6000803e3d6000fd5b505050506040513d602081101561016c57600080fd5b50516000549091508b8b8b8b888c8c886101846103cd565b988952600160a060020a0397881660208a01529587166040808a01919091526060890195909552928616608088015290851660a087015260c086015260e08501529116610100830152519081900361012001906000f0801580156101ec573d6000803e3d6000fd5b50915081600160a060020a031663f2fde38b846040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801561024a57600080fd5b505af115801561025e573d6000803e3d6000fd5b5050505080600160a060020a031663483a20b2836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b1580156102bd57600080fd5b505af11580156102d1573d6000803e3d6000fd5b5050505080600160a060020a031663f2fde38b846040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801561033057600080fd5b505af1158015610344573d6000803e3d6000fd5b5050505089600160a060020a031683600160a060020a03167f5c5f2ecd800afaa9861ac6ebf9ef843dfc826dedb68c6fc1447d0879f383629f84846040518083600160a060020a0316600160a060020a0316815260200182600160a060020a0316600160a060020a031681526020019250505060405180910390a3509998505050505050505050565b604051613293806103de833901905600608060405260016002553480156200001657600080fd5b50604051610120806200329383398101604090815281516020830151918301516060840151608085015160a086015160c087015160e088015161010090980151600087905560018054600160a060020a03191633179055959794959394929391929091600160a060020a03881615156200008f57600080fd5b600160a060020a0387161515620000a557600080fd5b620000be836401000000006200289a620001df82021704565b8015620000e357506064620000e18464010000000062002f136200021c82021704565b105b1515620000ef57600080fd5b62000108826401000000006200289a620001df82021704565b80156200012d575060646200012b8364010000000062002f136200021c82021704565b105b15156200013957600080fd5b600160a060020a03811615156200014f57600080fd5b600160a060020a03841615156200016557600080fd5b6200017a86866401000000006200026e810204565b60038054600160a060020a0319908116600160a060020a03998a16179091556004805482169989169990991790985560069290925560098054881693871693909317909255600791909155600a80549095169316929092179092555062000313915050565b6000620001f4640100000000620002b9810204565b821015801562000216575062000212640100000000620002be810204565b8211155b92915050565b60006200023282640100000000620001df810204565b15156200023e57600080fd5b6200021662000255640100000000620002db810204565b8390600a0a64010000000062002885620002e082021704565b600082116200027c57600080fd5b600160a060020a03811615156200029257600080fd5b60059190915560088054600160a060020a031916600160a060020a03909216919091179055565b600090565b6000620002d3640100000000620002f6810204565b600a0a905090565b600290565b60008183811515620002ee57fe5b049392505050565b60006200030b640100000000620002db810204565b600201905090565b612f7080620003236000396000f3006080604052600436106101715763ffffffff60e060020a60003504166313096a41811461017b57806314f66d34146101ac57806317410a07146101da578063208853c91461022a5780632442e1cb146102545780632e3250201461038a5780632fbe59901461047b578063313602d4146104905780633baba4d7146104a55780634090cb64146104ba57806354fd4d50146104cf5780635641f3c3146104e4578063564566a8146104f9578063715018a614610522578063792c02ea146105375780638119c0651461054c578063845ddcb2146105615780638abdf5aa146105aa5780638da5cb5b146105bf5780638edd6eb6146105d4578063a035b1fe146105e9578063a4fd6f56146105fe578063b135648814610613578063b60d428814610641578063d0febe4c14610171578063d6d65f3d14610656578063daa4cf881461066b578063e89e4ed614610680578063e93b054014610698578063f2fde38b146106b0578063fc0c546a146106d1575b6101796106e6565b005b34801561018757600080fd5b50610190610ba3565b60408051600160a060020a039092168252519081900360200190f35b3480156101b857600080fd5b506101c1610bb2565b6040805192835290151560208301528051918290030190f35b3480156101e657600080fd5b506101796024600480358281019290820135918135808301929082013591604435808301929082013591606435808301929082013591608435918201910135610be5565b34801561023657600080fd5b50610242600435610dec565b60408051918252519081900360200190f35b34801561026057600080fd5b5061026c600435610e9a565b604051808763ffffffff1663ffffffff1681526020018681526020018563ffffffff1663ffffffff1681526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019080838360005b838110156102e95781810151838201526020016102d1565b50505050905090810190601f1680156103165780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015610349578181015183820152602001610331565b50505050905090810190601f1680156103765780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b34801561039657600080fd5b506103a26004356110c7565b604051808763ffffffff1663ffffffff1681526020018663ffffffff1663ffffffff1681526020018581526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561042257818101518382015260200161040a565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015610461578181015183820152602001610449565b505050509050019850505050505050505060405180910390f35b34801561048757600080fd5b5061024261126d565b34801561049c57600080fd5b50610179611273565b3480156104b157600080fd5b50610242611422565b3480156104c657600080fd5b50610190611429565b3480156104db57600080fd5b50610242611438565b3480156104f057600080fd5b5061019061143e565b34801561050557600080fd5b5061050e61144d565b604080519115158252519081900360200190f35b34801561052e57600080fd5b50610179611463565b34801561054357600080fd5b506102426114d1565b34801561055857600080fd5b506101906114d7565b34801561056d57600080fd5b506105796004356114e6565b6040805163ffffffff9586168152938516602085015283810192909252909216606082015290519081900360800190f35b3480156105b657600080fd5b5061024261152c565b3480156105cb57600080fd5b50610190611532565b3480156105e057600080fd5b50610190611541565b3480156105f557600080fd5b50610242611550565b34801561060a57600080fd5b5061050e611556565b34801561061f57600080fd5b5061062861159e565b6040805163ffffffff9092168252519081900360200190f35b34801561064d57600080fd5b506101906115e5565b34801561066257600080fd5b506101c16115f4565b34801561067757600080fd5b506101c161166f565b34801561068c57600080fd5b5061026c6004356116f2565b3480156106a457600080fd5b50610179600435611860565b3480156106bc57600080fd5b50610179600160a060020a03600435166118ce565b3480156106dd57600080fd5b506101906118ee565b600080600080600080600080600160025414151561070357600080fd5b6002805561070f61144d565b151561077c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f53616c65206973206e6f74207374617274656420796574000000000000000000604482015290519081900360640190fd5b6000341161078957600080fd5b61079161166f565b509750600b888154811015156107a357fe5b9060005260206000209060050201600101549650600b888154811015156107c657fe5b600091825260209091206002600590920201015463ffffffff1695506107eb34610dec565b94506107f83488876118fd565b509350935093506000600754111561097e5760075461081e90859063ffffffff611ce716565b60048054600954600854604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a03938416958101959095529082166024850152604484018590525193945016916323b872dd916064808201926020929091908290030181600087803b15801561089e57600080fd5b505af11580156108b2573d6000803e3d6000fd5b505050506040513d60208110156108c857600080fd5b505115156108d557600080fd5b600354600954604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152602481018590529051919092169163a9059cbb9160448083019260209291908290030181600087803b15801561094757600080fd5b505af115801561095b573d6000803e3d6000fd5b505050506040513d602081101561097157600080fd5b5051151561097e57600080fd5b600354604080517f9d2e47770000000000000000000000000000000000000000000000000000000081523360048201526024810187905263ffffffff891660448201529051600160a060020a0390921691639d2e4777916064808201926020929091908290030181600087803b1580156109f757600080fd5b505af1158015610a0b573d6000803e3d6000fd5b505050506040513d6020811015610a2157600080fd5b50511515610a2e57600080fd5b6000821115610a6657604051339083156108fc029084906000818181858888f19350505050158015610a64573d6000803e3d6000fd5b505b60006006541115610ac257600854600654600160a060020a03909116906108fc90610a9890869063ffffffff611ce716565b6040518115909202916000818181858888f19350505050158015610ac0573d6000803e3d6000fd5b505b600a54604080517f958799cb000000000000000000000000000000000000000000000000000000008152336004820152602481018790529051600160a060020a039092169163958799cb91620186a09130319160448082019260009290919082900301818589803b158015610b3657600080fd5b5088f1158015610b4a573d6000803e3d6000fd5b505060408051888152602081018a905280820188905290513395507f347f5f0051b895093800553e6e78ef332849e2552639a4f5ffe66535788ae07894509081900360600192509050a250506001600255505050505050565b600454600160a060020a031681565b600c5460009081901580610bcb5750610bc9611556565b155b15610bd557610be1565b5050600c546000190160015b9091565b600154600160a060020a03163314610bfc57600080fd5b600b5460001015610c395742600b6000815481101515610c1857fe5b600091825260209091206005909102015463ffffffff1611610c3957600080fd5b881515610c4557600080fd5b60ff891115610c5357600080fd5b60ff851115610c6157600080fd5b600283048514610c7057600080fd5b60028104851115610c8057600080fd5b610d198a8a808060200260200160405190810160405280939291908181526020016000905b82821015610ce1576040805160c08181019092529080840287019060069083908390808284375050509183525050600190910190602001610ca5565b505050505089898080602002602001604051908101604052809392919081815260200183836020028082843750611d21945050505050565b610de08686808060200260200160405190810160405280939291908181526020016000905b82821015610d7a576040805160808181019092529080840287019060049083908390808284375050509183525050600190910190602001610d3e565b50505050508585808060200260200160405190810160405280939291908181526020018383602002808284375050604080516020601f8b01819004810282018101909252898152945089935088925082915084018382808284375061222a945050505050565b50505050505050505050565b6000806000806000610dfc61166f565b93509350821515610e105760009450610e91565b600b805485908110610e1e57fe5b90600052602060002090600502019150600090505b6003820154811015610e915760038201805482908110610e4f57fe5b906000526020600020015486101515610e845760048201805482908110610e7257fe5b90600052602060002001549450610e89565b610e91565b600101610e33565b50505050919050565b600080600080606080600c87815481101515610eb257fe5b6000918252602090912060059091020154600c805463ffffffff9092169189908110610eda57fe5b906000526020600020906005020160010154600c89815481101515610efb57fe5b6000918252602090912060026005909202010154600c805463ffffffff909216918b908110610f2657fe5b906000526020600020906005020160020160049054906101000a900463ffffffff16600c8b815481101515610f5757fe5b9060005260206000209060050201600301600c8c815481101515610f7757fe5b9060005260206000209060050201600401818054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561101d5780601f10610ff25761010080835404028352916020019161101d565b820191906000526020600020905b81548152906001019060200180831161100057829003601f168201915b5050845460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152959750869450925084019050828280156110ab5780601f10611080576101008083540402835291602001916110ab565b820191906000526020600020905b81548152906001019060200180831161108e57829003601f168201915b5050505050905095509550955095509550955091939550919395565b600080600080606080600b878154811015156110df57fe5b6000918252602090912060059091020154600b805463ffffffff909216918990811061110757fe5b906000526020600020906005020160000160049054906101000a900463ffffffff16600b8981548110151561113857fe5b906000526020600020906005020160010154600b8a81548110151561115957fe5b6000918252602090912060026005909202010154600b805463ffffffff909216918c90811061118457fe5b9060005260206000209060050201600301600b8c8154811015156111a457fe5b90600052602060002090600502016004018180548060200260200160405190810160405280929190818152602001828054801561120057602002820191906000526020600020905b8154815260200190600101908083116111ec575b50505050509150808054806020026020016040519081016040528092919081815260200182805480156110ab57602002820191906000526020600020905b81548152602001906001019080831161123e575050505050905095509550955095509550955091939550919395565b60075481565b600154600090600160a060020a0316331461128d57600080fd5b611295611556565b15156112a057600080fd5b600354604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b15801561130657600080fd5b505af115801561131a573d6000803e3d6000fd5b505050506040513d602081101561133057600080fd5b5051600354600154604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a03928316600482015260248101859052905193945091169163a9059cbb916044808201926020929091908290030181600087803b1580156113a657600080fd5b505af11580156113ba573d6000803e3d6000fd5b505050506040513d60208110156113d057600080fd5b505115156113dd57600080fd5b600154604080518381529051600160a060020a03909216917f26ffb867a6b19bc0240d4e732ed6cfb0f0b6d93143a99cfb24ba5873308861f89181900360200190a250565b600c545b90565b600354600160a060020a031690565b60005481565b600854600160a060020a031681565b60008061145861166f565b9150508091505b5090565b600154600160a060020a0316331461147a57600080fd5b600154604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26001805473ffffffffffffffffffffffffffffffffffffffff19169055565b600b5490565b600954600160a060020a031681565b600b8054829081106114f457fe5b600091825260209091206005909102018054600182015460029092015463ffffffff8083169450640100000000909204821692911684565b60065481565b600154600160a060020a031681565b600a54600160a060020a031690565b60055481565b600b5460009015806115995750600b8054429190600019810190811061157857fe5b6000918252602090912060059091020154640100000000900463ffffffff16105b905090565b600b5460009081106115af57600080fd5b600b805460001981019081106115c157fe5b6000918252602090912060059091020154640100000000900463ffffffff16919050565b600a54600160a060020a031681565b600c546000908190158061160d575061160b611556565b155b1561161757610be1565b5060015b600c54600019018210801561165f5750600c80548390811061163957fe5b6000918252602090912060059091020160020154640100000000900463ffffffff164210155b15610be15760019091019061161b565b60008080805b600b548210156116e457600b80548390811061168d57fe5b6000918252602090912060059091020180549091504263ffffffff909116118015906116c8575080544264010000000090910463ffffffff16115b156116d957816001935093506116ec565b600190910190611675565b600093508392505b50509091565b600c80548290811061170057fe5b60009182526020918290206005919091020180546001808301546002808501546003860180546040805161010097831615979097026000190190911693909304601f810189900489028601890190935282855263ffffffff95861698509296858216966401000000009092049095169490939291908301828280156117c65780601f1061179b576101008083540402835291602001916117c6565b820191906000526020600020905b8154815290600101906020018083116117a957829003601f168201915b5050505060048301805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529495949350908301828280156118565780601f1061182b57610100808354040283529160200191611856565b820191906000526020600020905b81548152906001019060200180831161183957829003601f168201915b5050505050905086565b600154600160a060020a0316331461187757600080fd5b600b54600010156118b45742600b600081548110151561189357fe5b600091825260209091206005909102015463ffffffff16116118b457600080fd5b6008546118cb908290600160a060020a0316612788565b50565b600154600160a060020a031633146118e557600080fd5b6118cb816127de565b600354600160a060020a031681565b600354604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290516000928692849283928392600160a060020a03909116916370a082319160248082019260209290919082900301818787803b15801561196d57600080fd5b505af1158015611981573d6000803e3d6000fd5b505050506040513d602081101561199757600080fd5b5051600354604080517f313ce5670000000000000000000000000000000000000000000000000000000081529051929350600160a060020a039091169163313ce567916004808201926020929091908290030181600087803b1580156119fc57600080fd5b505af1158015611a10573d6000803e3d6000fd5b505050506040513d6020811015611a2657600080fd5b505160ff16600a0a811015611a3a57600080fd5b60008711611a4a57600554611ad2565b611ad28773__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015611a9557600080fd5b505af4158015611aa9573d6000803e3d6000fd5b505050506040513d6020811015611abf57600080fd5b505160055491900363ffffffff611ce716565b9150611cb473__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015611b1e57600080fd5b505af4158015611b32573d6000803e3d6000fd5b505050506040513d6020811015611b4857600080fd5b5051600354604080517f313ce5670000000000000000000000000000000000000000000000000000000081529051611ca89287928492600160a060020a039092169163313ce567916004808201926020929091908290030181600087803b158015611bb257600080fd5b505af1158015611bc6573d6000803e3d6000fd5b505050506040513d6020811015611bdc57600080fd5b5051604080517fd49d5181000000000000000000000000000000000000000000000000000000008152905160ff909216600a0a91611c9c918e9173__Percent_______________________________9163d49d5181916004808301926020929190829003018186803b158015611c5157600080fd5b505af4158015611c65573d6000803e3d6000fd5b505050506040513d6020811015611c7b57600080fd5b8101908080519060200190929190505050018f61285c90919063ffffffff16565b9063ffffffff61285c16565b9063ffffffff61288516565b945084811015611cdd57611cd285611ca88a8463ffffffff61285c16565b935083880392508094505b5093509350935093565b6000611cf28261289a565b1515611cfd57600080fd5b611d18611d086128bf565b611ca8858563ffffffff61285c16565b90505b92915050565b600c54600090811015611d7e57825183906000198101908110611d4057fe5b6020908102919091018101510151600c80546000908110611d5d57fe5b600091825260209091206005909102015463ffffffff1611611d7e57600080fd5b611d8a600b6000612cef565b5060005b82518160ff1610156121fc57825163ffffffff90849060ff8416908110611db157fe5b6020908102919091010151511115611dc857600080fd5b825163ffffffff90849060ff8416908110611ddf57fe5b60209081029190910181015101511115611df857600080fd5b825163ffffffff90849060ff8416908110611e0f57fe5b6020908102919091010151606001511115611e2957600080fd5b825160ff908490838316908110611e3c57fe5b6020908102919091010151608001511115611e5657600080fd5b825160ff908490838316908110611e6957fe5b602090810291909101015160a001511115611e8357600080fd5b42838260ff16815181101515611e9557fe5b60209081029190910101515111611eab57600080fd5b828160ff16815181101515611ebc57fe5b60209081029190910181015101518351849060ff8416908110611edb57fe5b60209081029190910101515110611ef157600080fd5b60008160ff161115611f4857828160ff16815181101515611f0e57fe5b6020908102919091010151518351849060ff600019850116908110611f2f57fe5b60209081029190910181015101511115611f4857600080fd5b611f73838260ff16815181101515611f5c57fe5b6020908102909101015160025b602002015161289a565b1515611f7e57600080fd5b73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015611fc557600080fd5b505af4158015611fd9573d6000803e3d6000fd5b505050506040513d6020811015611fef57600080fd5b50518351849060ff841690811061200257fe5b6020908102919091010151604001511061201b57600080fd5b600b60c060405190810160405280858460ff1681518110151561203a57fe5b6020908102919091018101515163ffffffff1682528651910190869060ff861690811061206357fe5b602090810290910101516001602002015163ffffffff168152602001858460ff1681518110151561209057fe5b60209081029091010151600260200201518152602001858460ff168151811015156120b757fe5b6020908102919091018101516060015163ffffffff16825260408051600080825281840183528484019190915281518181529283018252920191509052815460018082018085556000948552602094859020845160059094020180548587015163ffffffff1991821663ffffffff9687161767ffffffff00000000191664010000000091871691909102178255604086015193820193909355606085015160028201805490941694169390931790915560808301518051919461218292600385019290910190612d10565b5060a0820151805161219e916004840191602090910190612d10565b505050506121f46001600b8054905003848360ff168151811015156121bf57fe5b6020908102919091010151608001518551869060ff86169081106121df57fe5b602090810291909101015160a00151856128d1565b600101611d8e565b6040517f743961f4e677d1146fbf85d75565b1c5474fd083eb166f8b9595cf5d01a4d6e690600090a1505050565b6000806000806060806000600b8054905011156122975788600081518110151561225057fe5b602090810291909101015151600b8054600019810190811061226e57fe5b6000918252602090912060059091020154640100000000900463ffffffff161061229757600080fd5b6122a3600c6000612d57565b600095506000945060009350600092505b88518360ff1610156126d657885163ffffffff908a9060ff86169081106122d757fe5b60209081029190910101515111156122ee57600080fd5b885163ffffffff908a9060ff861690811061230557fe5b6020908102919091018101510151111561231e57600080fd5b885163ffffffff908a9060ff861690811061233557fe5b602090810291909101015160400151111561234f57600080fd5b42898460ff1681518110151561236157fe5b6020908102919091010151511161237757600080fd5b888360ff1681518110151561238857fe5b60209081029190910101515189518a9060ff86169081106123a557fe5b6020908102919091018101510151116123bd57600080fd5b888360ff168151811015156123ce57fe5b602090810291909101810151015189518a9060ff86169081106123ed57fe5b6020908102919091010151604001511161240657600080fd5b60008360ff16111561245d57888360ff1681518110151561242357fe5b60209081029190910101515189518a9060ff60001987011690811061244457fe5b6020908102919091010151604001511061245d57600080fd5b612482898460ff1681518110151561247157fe5b602090810290910101516003611f69565b151561248d57600080fd5b6124bf86898781518110151561249f57fe5b9060200190602002015163ffffffff1689612c459092919063ffffffff16565b91506124f188868151811015156124d257fe5b9060200190602002015163ffffffff1687612cc690919063ffffffff16565b955061250886898760010181518110151561249f57fe5b905061251e88866001018151811015156124d257fe5b955061253185600263ffffffff612cc616565b945061255d898460ff1681518110151561254757fe5b6020908102919091010151606001518590612cc6565b9350600c60c0604051908101604052808b8660ff1681518110151561257e57fe5b6020908102919091018101515163ffffffff1682528c519101908c9060ff88169081106125a757fe5b602090810290910101516003602002015181526020018b8660ff168151811015156125ce57fe5b602090810290910101516001602002015163ffffffff1681526020018b8660ff168151811015156125fb57fe5b6020908102909101015160026020908102919091015163ffffffff90811683528282018790526040928301869052845460018181018088556000978852968490208651600590930201805492841663ffffffff19938416178155868501519181019190915593850151600285018054606088015185166401000000000267ffffffff00000000199390951693169290921716919091179055608083015180516126aa9260038501920190612d78565b5060a082015180516126c6916004840191602090910190612d78565b5050600190940193506122b49050565b73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b15801561271d57600080fd5b505af4158015612731573d6000803e3d6000fd5b505050506040513d602081101561274757600080fd5b5051841461275457600080fd5b6040517f56d9a2e016027a3725bf162ef2779c8b28d4dbec97c679cfba02dbb31a34c7ca90600090a1505050505050505050565b6000821161279557600080fd5b600160a060020a03811615156127aa57600080fd5b6005919091556008805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600160a060020a03811615156127f357600080fd5b600154604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600082151561286d57506000611d1b565b5081810281838281151561287d57fe5b0414611d1b57fe5b6000818381151561289257fe5b049392505050565b60006128a4612cd3565b8210158015611d1b57506128b66128bf565b82111592915050565b60006128c9612cd8565b600a0a905090565b606080600060ff86161580156128e8575060ff8516155b1561297c57604080516000815260208101909152600b805460ff8a1690811061290d57fe5b90600052602060002090600502016003019080519060200190612931929190612d10565b50604080516000815260208101909152600b805460ff8a1690811061295257fe5b90600052602060002090600502016004019080519060200190612976929190612d10565b50612c3c565b835160ff8616111561298d57600080fd5b60ff8086169087161061299f57600080fd5b60018616156129ad57600080fd5b60018516156129bb57600080fd5b600260ff878703160460ff166040519080825280602002602001820160405280156129f0578160200160208202803883390190505b509250600260ff878703160460ff16604051908082528060200260200182016040528015612a28578160200160208202803883390190505b509150600090505b8460ff168660ff161015612bcb57612a64848760010160ff16815181101515612a5557fe5b9060200190602002015161289a565b1515612a6f57600080fd5b73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015612ab657600080fd5b505af4158015612aca573d6000803e3d6000fd5b505050506040513d6020811015612ae057600080fd5b50518451859060ff60018a0116908110612af657fe5b6020908102909101015110612b0a57600080fd5b6000811115612b5357838660ff16815181101515612b2457fe5b906020019060200201518360018303815181101515612b3f57fe5b6020908102909101015110612b5357600080fd5b838660ff16815181101515612b6457fe5b906020019060200201518382815181101515612b7c57fe5b602090810290910101528351849060ff6001890116908110612b9a57fe5b906020019060200201518282815181101515612bb257fe5b6020908102909101015260029590950194600101612a30565b82600b8860ff16815481101515612bde57fe5b90600052602060002090600502016003019080519060200190612c02929190612d10565b5081600b8860ff16815481101515612c1657fe5b90600052602060002090600502016004019080519060200190612c3a929190612d10565b505b50505050505050565b606080828401855110151515612c5a57600080fd5b82158015612c7357604051915060208201604052612cbd565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015612cac578051835260209283019201612c94565b5050858452601f01601f1916604052505b50949350505050565b81810182811015611d1b57fe5b600090565b6000612ce2612cea565b600201905090565b600290565b50805460008255600502906000526020600020908101906118cb9190612de5565b828054828255906000526020600020908101928215612d4b579160200282015b82811115612d4b578251825591602001919060010190612d30565b5061145f929150612e3e565b50805460008255600502906000526020600020908101906118cb9190612e58565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612db957805160ff1916838001178555612d4b565b82800160010185558215612d4b5791820182811115612d4b578251825591602001919060010190612d30565b61142691905b8082111561145f57805467ffffffffffffffff1916815560006001820181905560028201805463ffffffff19169055612e276003830182612eb1565b612e35600483016000612eb1565b50600501612deb565b61142691905b8082111561145f5760008155600101612e44565b61142691905b8082111561145f57805463ffffffff1916815560006001820181905560028201805467ffffffffffffffff19169055612e9a6003830182612ecf565b612ea8600483016000612ecf565b50600501612e5e565b50805460008255906000526020600020908101906118cb9190612e3e565b50805460018160011615610100020316600290046000825580601f10612ef557506118cb565b601f0160209004906000526020600020908101906118cb9190612e3e565b6000612f1e8261289a565b1515612f2957600080fd5b611d1b612f34612cea565b8390600a0a63ffffffff612885165600a165627a7a72305820d5eee603de8192a8603bc46c6dbfdb4a4654cec9cd6a7e5c0dbe9a8b5bca70500029a165627a7a7230582055ab16c6786e7b41a2f5a5fb7cbf66d86b73d88c8f9f2c0562d8fa3bb6ea6d2f0029", - "deployedBytecode": "0x6080604052600436106100325763ffffffff60e060020a60003504166354fd4d508114610037578063aa1322f71461005e575b600080fd5b34801561004357600080fd5b5061004c6100c4565b60408051918252519081900360200190f35b34801561006a57600080fd5b506100a8600160a060020a03600435811690602435811690604435906064358116906084359060a4359060c4359060e43581169061010435166100ca565b60408051600160a060020a039092168252519081900360200190f35b60005481565b600154604080517f17444626000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152898116602483015260448201879052915160009384931691631744462691606480830192602092919082900301818787803b15801561014257600080fd5b505af1158015610156573d6000803e3d6000fd5b505050506040513d602081101561016c57600080fd5b50516000549091508b8b8b8b888c8c886101846103cd565b988952600160a060020a0397881660208a01529587166040808a01919091526060890195909552928616608088015290851660a087015260c086015260e08501529116610100830152519081900361012001906000f0801580156101ec573d6000803e3d6000fd5b50915081600160a060020a031663f2fde38b846040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801561024a57600080fd5b505af115801561025e573d6000803e3d6000fd5b5050505080600160a060020a031663483a20b2836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b1580156102bd57600080fd5b505af11580156102d1573d6000803e3d6000fd5b5050505080600160a060020a031663f2fde38b846040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801561033057600080fd5b505af1158015610344573d6000803e3d6000fd5b5050505089600160a060020a031683600160a060020a03167f5c5f2ecd800afaa9861ac6ebf9ef843dfc826dedb68c6fc1447d0879f383629f84846040518083600160a060020a0316600160a060020a0316815260200182600160a060020a0316600160a060020a031681526020019250505060405180910390a3509998505050505050505050565b604051613293806103de833901905600608060405260016002553480156200001657600080fd5b50604051610120806200329383398101604090815281516020830151918301516060840151608085015160a086015160c087015160e088015161010090980151600087905560018054600160a060020a03191633179055959794959394929391929091600160a060020a03881615156200008f57600080fd5b600160a060020a0387161515620000a557600080fd5b620000be836401000000006200289a620001df82021704565b8015620000e357506064620000e18464010000000062002f136200021c82021704565b105b1515620000ef57600080fd5b62000108826401000000006200289a620001df82021704565b80156200012d575060646200012b8364010000000062002f136200021c82021704565b105b15156200013957600080fd5b600160a060020a03811615156200014f57600080fd5b600160a060020a03841615156200016557600080fd5b6200017a86866401000000006200026e810204565b60038054600160a060020a0319908116600160a060020a03998a16179091556004805482169989169990991790985560069290925560098054881693871693909317909255600791909155600a80549095169316929092179092555062000313915050565b6000620001f4640100000000620002b9810204565b821015801562000216575062000212640100000000620002be810204565b8211155b92915050565b60006200023282640100000000620001df810204565b15156200023e57600080fd5b6200021662000255640100000000620002db810204565b8390600a0a64010000000062002885620002e082021704565b600082116200027c57600080fd5b600160a060020a03811615156200029257600080fd5b60059190915560088054600160a060020a031916600160a060020a03909216919091179055565b600090565b6000620002d3640100000000620002f6810204565b600a0a905090565b600290565b60008183811515620002ee57fe5b049392505050565b60006200030b640100000000620002db810204565b600201905090565b612f7080620003236000396000f3006080604052600436106101715763ffffffff60e060020a60003504166313096a41811461017b57806314f66d34146101ac57806317410a07146101da578063208853c91461022a5780632442e1cb146102545780632e3250201461038a5780632fbe59901461047b578063313602d4146104905780633baba4d7146104a55780634090cb64146104ba57806354fd4d50146104cf5780635641f3c3146104e4578063564566a8146104f9578063715018a614610522578063792c02ea146105375780638119c0651461054c578063845ddcb2146105615780638abdf5aa146105aa5780638da5cb5b146105bf5780638edd6eb6146105d4578063a035b1fe146105e9578063a4fd6f56146105fe578063b135648814610613578063b60d428814610641578063d0febe4c14610171578063d6d65f3d14610656578063daa4cf881461066b578063e89e4ed614610680578063e93b054014610698578063f2fde38b146106b0578063fc0c546a146106d1575b6101796106e6565b005b34801561018757600080fd5b50610190610ba3565b60408051600160a060020a039092168252519081900360200190f35b3480156101b857600080fd5b506101c1610bb2565b6040805192835290151560208301528051918290030190f35b3480156101e657600080fd5b506101796024600480358281019290820135918135808301929082013591604435808301929082013591606435808301929082013591608435918201910135610be5565b34801561023657600080fd5b50610242600435610dec565b60408051918252519081900360200190f35b34801561026057600080fd5b5061026c600435610e9a565b604051808763ffffffff1663ffffffff1681526020018681526020018563ffffffff1663ffffffff1681526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019080838360005b838110156102e95781810151838201526020016102d1565b50505050905090810190601f1680156103165780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015610349578181015183820152602001610331565b50505050905090810190601f1680156103765780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b34801561039657600080fd5b506103a26004356110c7565b604051808763ffffffff1663ffffffff1681526020018663ffffffff1663ffffffff1681526020018581526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561042257818101518382015260200161040a565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015610461578181015183820152602001610449565b505050509050019850505050505050505060405180910390f35b34801561048757600080fd5b5061024261126d565b34801561049c57600080fd5b50610179611273565b3480156104b157600080fd5b50610242611422565b3480156104c657600080fd5b50610190611429565b3480156104db57600080fd5b50610242611438565b3480156104f057600080fd5b5061019061143e565b34801561050557600080fd5b5061050e61144d565b604080519115158252519081900360200190f35b34801561052e57600080fd5b50610179611463565b34801561054357600080fd5b506102426114d1565b34801561055857600080fd5b506101906114d7565b34801561056d57600080fd5b506105796004356114e6565b6040805163ffffffff9586168152938516602085015283810192909252909216606082015290519081900360800190f35b3480156105b657600080fd5b5061024261152c565b3480156105cb57600080fd5b50610190611532565b3480156105e057600080fd5b50610190611541565b3480156105f557600080fd5b50610242611550565b34801561060a57600080fd5b5061050e611556565b34801561061f57600080fd5b5061062861159e565b6040805163ffffffff9092168252519081900360200190f35b34801561064d57600080fd5b506101906115e5565b34801561066257600080fd5b506101c16115f4565b34801561067757600080fd5b506101c161166f565b34801561068c57600080fd5b5061026c6004356116f2565b3480156106a457600080fd5b50610179600435611860565b3480156106bc57600080fd5b50610179600160a060020a03600435166118ce565b3480156106dd57600080fd5b506101906118ee565b600080600080600080600080600160025414151561070357600080fd5b6002805561070f61144d565b151561077c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f53616c65206973206e6f74207374617274656420796574000000000000000000604482015290519081900360640190fd5b6000341161078957600080fd5b61079161166f565b509750600b888154811015156107a357fe5b9060005260206000209060050201600101549650600b888154811015156107c657fe5b600091825260209091206002600590920201015463ffffffff1695506107eb34610dec565b94506107f83488876118fd565b509350935093506000600754111561097e5760075461081e90859063ffffffff611ce716565b60048054600954600854604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a03938416958101959095529082166024850152604484018590525193945016916323b872dd916064808201926020929091908290030181600087803b15801561089e57600080fd5b505af11580156108b2573d6000803e3d6000fd5b505050506040513d60208110156108c857600080fd5b505115156108d557600080fd5b600354600954604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152602481018590529051919092169163a9059cbb9160448083019260209291908290030181600087803b15801561094757600080fd5b505af115801561095b573d6000803e3d6000fd5b505050506040513d602081101561097157600080fd5b5051151561097e57600080fd5b600354604080517f9d2e47770000000000000000000000000000000000000000000000000000000081523360048201526024810187905263ffffffff891660448201529051600160a060020a0390921691639d2e4777916064808201926020929091908290030181600087803b1580156109f757600080fd5b505af1158015610a0b573d6000803e3d6000fd5b505050506040513d6020811015610a2157600080fd5b50511515610a2e57600080fd5b6000821115610a6657604051339083156108fc029084906000818181858888f19350505050158015610a64573d6000803e3d6000fd5b505b60006006541115610ac257600854600654600160a060020a03909116906108fc90610a9890869063ffffffff611ce716565b6040518115909202916000818181858888f19350505050158015610ac0573d6000803e3d6000fd5b505b600a54604080517f958799cb000000000000000000000000000000000000000000000000000000008152336004820152602481018790529051600160a060020a039092169163958799cb91620186a09130319160448082019260009290919082900301818589803b158015610b3657600080fd5b5088f1158015610b4a573d6000803e3d6000fd5b505060408051888152602081018a905280820188905290513395507f347f5f0051b895093800553e6e78ef332849e2552639a4f5ffe66535788ae07894509081900360600192509050a250506001600255505050505050565b600454600160a060020a031681565b600c5460009081901580610bcb5750610bc9611556565b155b15610bd557610be1565b5050600c546000190160015b9091565b600154600160a060020a03163314610bfc57600080fd5b600b5460001015610c395742600b6000815481101515610c1857fe5b600091825260209091206005909102015463ffffffff1611610c3957600080fd5b881515610c4557600080fd5b60ff891115610c5357600080fd5b60ff851115610c6157600080fd5b600283048514610c7057600080fd5b60028104851115610c8057600080fd5b610d198a8a808060200260200160405190810160405280939291908181526020016000905b82821015610ce1576040805160c08181019092529080840287019060069083908390808284375050509183525050600190910190602001610ca5565b505050505089898080602002602001604051908101604052809392919081815260200183836020028082843750611d21945050505050565b610de08686808060200260200160405190810160405280939291908181526020016000905b82821015610d7a576040805160808181019092529080840287019060049083908390808284375050509183525050600190910190602001610d3e565b50505050508585808060200260200160405190810160405280939291908181526020018383602002808284375050604080516020601f8b01819004810282018101909252898152945089935088925082915084018382808284375061222a945050505050565b50505050505050505050565b6000806000806000610dfc61166f565b93509350821515610e105760009450610e91565b600b805485908110610e1e57fe5b90600052602060002090600502019150600090505b6003820154811015610e915760038201805482908110610e4f57fe5b906000526020600020015486101515610e845760048201805482908110610e7257fe5b90600052602060002001549450610e89565b610e91565b600101610e33565b50505050919050565b600080600080606080600c87815481101515610eb257fe5b6000918252602090912060059091020154600c805463ffffffff9092169189908110610eda57fe5b906000526020600020906005020160010154600c89815481101515610efb57fe5b6000918252602090912060026005909202010154600c805463ffffffff909216918b908110610f2657fe5b906000526020600020906005020160020160049054906101000a900463ffffffff16600c8b815481101515610f5757fe5b9060005260206000209060050201600301600c8c815481101515610f7757fe5b9060005260206000209060050201600401818054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561101d5780601f10610ff25761010080835404028352916020019161101d565b820191906000526020600020905b81548152906001019060200180831161100057829003601f168201915b5050845460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152959750869450925084019050828280156110ab5780601f10611080576101008083540402835291602001916110ab565b820191906000526020600020905b81548152906001019060200180831161108e57829003601f168201915b5050505050905095509550955095509550955091939550919395565b600080600080606080600b878154811015156110df57fe5b6000918252602090912060059091020154600b805463ffffffff909216918990811061110757fe5b906000526020600020906005020160000160049054906101000a900463ffffffff16600b8981548110151561113857fe5b906000526020600020906005020160010154600b8a81548110151561115957fe5b6000918252602090912060026005909202010154600b805463ffffffff909216918c90811061118457fe5b9060005260206000209060050201600301600b8c8154811015156111a457fe5b90600052602060002090600502016004018180548060200260200160405190810160405280929190818152602001828054801561120057602002820191906000526020600020905b8154815260200190600101908083116111ec575b50505050509150808054806020026020016040519081016040528092919081815260200182805480156110ab57602002820191906000526020600020905b81548152602001906001019080831161123e575050505050905095509550955095509550955091939550919395565b60075481565b600154600090600160a060020a0316331461128d57600080fd5b611295611556565b15156112a057600080fd5b600354604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b15801561130657600080fd5b505af115801561131a573d6000803e3d6000fd5b505050506040513d602081101561133057600080fd5b5051600354600154604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a03928316600482015260248101859052905193945091169163a9059cbb916044808201926020929091908290030181600087803b1580156113a657600080fd5b505af11580156113ba573d6000803e3d6000fd5b505050506040513d60208110156113d057600080fd5b505115156113dd57600080fd5b600154604080518381529051600160a060020a03909216917f26ffb867a6b19bc0240d4e732ed6cfb0f0b6d93143a99cfb24ba5873308861f89181900360200190a250565b600c545b90565b600354600160a060020a031690565b60005481565b600854600160a060020a031681565b60008061145861166f565b9150508091505b5090565b600154600160a060020a0316331461147a57600080fd5b600154604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26001805473ffffffffffffffffffffffffffffffffffffffff19169055565b600b5490565b600954600160a060020a031681565b600b8054829081106114f457fe5b600091825260209091206005909102018054600182015460029092015463ffffffff8083169450640100000000909204821692911684565b60065481565b600154600160a060020a031681565b600a54600160a060020a031690565b60055481565b600b5460009015806115995750600b8054429190600019810190811061157857fe5b6000918252602090912060059091020154640100000000900463ffffffff16105b905090565b600b5460009081106115af57600080fd5b600b805460001981019081106115c157fe5b6000918252602090912060059091020154640100000000900463ffffffff16919050565b600a54600160a060020a031681565b600c546000908190158061160d575061160b611556565b155b1561161757610be1565b5060015b600c54600019018210801561165f5750600c80548390811061163957fe5b6000918252602090912060059091020160020154640100000000900463ffffffff164210155b15610be15760019091019061161b565b60008080805b600b548210156116e457600b80548390811061168d57fe5b6000918252602090912060059091020180549091504263ffffffff909116118015906116c8575080544264010000000090910463ffffffff16115b156116d957816001935093506116ec565b600190910190611675565b600093508392505b50509091565b600c80548290811061170057fe5b60009182526020918290206005919091020180546001808301546002808501546003860180546040805161010097831615979097026000190190911693909304601f810189900489028601890190935282855263ffffffff95861698509296858216966401000000009092049095169490939291908301828280156117c65780601f1061179b576101008083540402835291602001916117c6565b820191906000526020600020905b8154815290600101906020018083116117a957829003601f168201915b5050505060048301805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529495949350908301828280156118565780601f1061182b57610100808354040283529160200191611856565b820191906000526020600020905b81548152906001019060200180831161183957829003601f168201915b5050505050905086565b600154600160a060020a0316331461187757600080fd5b600b54600010156118b45742600b600081548110151561189357fe5b600091825260209091206005909102015463ffffffff16116118b457600080fd5b6008546118cb908290600160a060020a0316612788565b50565b600154600160a060020a031633146118e557600080fd5b6118cb816127de565b600354600160a060020a031681565b600354604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290516000928692849283928392600160a060020a03909116916370a082319160248082019260209290919082900301818787803b15801561196d57600080fd5b505af1158015611981573d6000803e3d6000fd5b505050506040513d602081101561199757600080fd5b5051600354604080517f313ce5670000000000000000000000000000000000000000000000000000000081529051929350600160a060020a039091169163313ce567916004808201926020929091908290030181600087803b1580156119fc57600080fd5b505af1158015611a10573d6000803e3d6000fd5b505050506040513d6020811015611a2657600080fd5b505160ff16600a0a811015611a3a57600080fd5b60008711611a4a57600554611ad2565b611ad28773__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015611a9557600080fd5b505af4158015611aa9573d6000803e3d6000fd5b505050506040513d6020811015611abf57600080fd5b505160055491900363ffffffff611ce716565b9150611cb473__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015611b1e57600080fd5b505af4158015611b32573d6000803e3d6000fd5b505050506040513d6020811015611b4857600080fd5b5051600354604080517f313ce5670000000000000000000000000000000000000000000000000000000081529051611ca89287928492600160a060020a039092169163313ce567916004808201926020929091908290030181600087803b158015611bb257600080fd5b505af1158015611bc6573d6000803e3d6000fd5b505050506040513d6020811015611bdc57600080fd5b5051604080517fd49d5181000000000000000000000000000000000000000000000000000000008152905160ff909216600a0a91611c9c918e9173__Percent_______________________________9163d49d5181916004808301926020929190829003018186803b158015611c5157600080fd5b505af4158015611c65573d6000803e3d6000fd5b505050506040513d6020811015611c7b57600080fd5b8101908080519060200190929190505050018f61285c90919063ffffffff16565b9063ffffffff61285c16565b9063ffffffff61288516565b945084811015611cdd57611cd285611ca88a8463ffffffff61285c16565b935083880392508094505b5093509350935093565b6000611cf28261289a565b1515611cfd57600080fd5b611d18611d086128bf565b611ca8858563ffffffff61285c16565b90505b92915050565b600c54600090811015611d7e57825183906000198101908110611d4057fe5b6020908102919091018101510151600c80546000908110611d5d57fe5b600091825260209091206005909102015463ffffffff1611611d7e57600080fd5b611d8a600b6000612cef565b5060005b82518160ff1610156121fc57825163ffffffff90849060ff8416908110611db157fe5b6020908102919091010151511115611dc857600080fd5b825163ffffffff90849060ff8416908110611ddf57fe5b60209081029190910181015101511115611df857600080fd5b825163ffffffff90849060ff8416908110611e0f57fe5b6020908102919091010151606001511115611e2957600080fd5b825160ff908490838316908110611e3c57fe5b6020908102919091010151608001511115611e5657600080fd5b825160ff908490838316908110611e6957fe5b602090810291909101015160a001511115611e8357600080fd5b42838260ff16815181101515611e9557fe5b60209081029190910101515111611eab57600080fd5b828160ff16815181101515611ebc57fe5b60209081029190910181015101518351849060ff8416908110611edb57fe5b60209081029190910101515110611ef157600080fd5b60008160ff161115611f4857828160ff16815181101515611f0e57fe5b6020908102919091010151518351849060ff600019850116908110611f2f57fe5b60209081029190910181015101511115611f4857600080fd5b611f73838260ff16815181101515611f5c57fe5b6020908102909101015160025b602002015161289a565b1515611f7e57600080fd5b73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015611fc557600080fd5b505af4158015611fd9573d6000803e3d6000fd5b505050506040513d6020811015611fef57600080fd5b50518351849060ff841690811061200257fe5b6020908102919091010151604001511061201b57600080fd5b600b60c060405190810160405280858460ff1681518110151561203a57fe5b6020908102919091018101515163ffffffff1682528651910190869060ff861690811061206357fe5b602090810290910101516001602002015163ffffffff168152602001858460ff1681518110151561209057fe5b60209081029091010151600260200201518152602001858460ff168151811015156120b757fe5b6020908102919091018101516060015163ffffffff16825260408051600080825281840183528484019190915281518181529283018252920191509052815460018082018085556000948552602094859020845160059094020180548587015163ffffffff1991821663ffffffff9687161767ffffffff00000000191664010000000091871691909102178255604086015193820193909355606085015160028201805490941694169390931790915560808301518051919461218292600385019290910190612d10565b5060a0820151805161219e916004840191602090910190612d10565b505050506121f46001600b8054905003848360ff168151811015156121bf57fe5b6020908102919091010151608001518551869060ff86169081106121df57fe5b602090810291909101015160a00151856128d1565b600101611d8e565b6040517f743961f4e677d1146fbf85d75565b1c5474fd083eb166f8b9595cf5d01a4d6e690600090a1505050565b6000806000806060806000600b8054905011156122975788600081518110151561225057fe5b602090810291909101015151600b8054600019810190811061226e57fe5b6000918252602090912060059091020154640100000000900463ffffffff161061229757600080fd5b6122a3600c6000612d57565b600095506000945060009350600092505b88518360ff1610156126d657885163ffffffff908a9060ff86169081106122d757fe5b60209081029190910101515111156122ee57600080fd5b885163ffffffff908a9060ff861690811061230557fe5b6020908102919091018101510151111561231e57600080fd5b885163ffffffff908a9060ff861690811061233557fe5b602090810291909101015160400151111561234f57600080fd5b42898460ff1681518110151561236157fe5b6020908102919091010151511161237757600080fd5b888360ff1681518110151561238857fe5b60209081029190910101515189518a9060ff86169081106123a557fe5b6020908102919091018101510151116123bd57600080fd5b888360ff168151811015156123ce57fe5b602090810291909101810151015189518a9060ff86169081106123ed57fe5b6020908102919091010151604001511161240657600080fd5b60008360ff16111561245d57888360ff1681518110151561242357fe5b60209081029190910101515189518a9060ff60001987011690811061244457fe5b6020908102919091010151604001511061245d57600080fd5b612482898460ff1681518110151561247157fe5b602090810290910101516003611f69565b151561248d57600080fd5b6124bf86898781518110151561249f57fe5b9060200190602002015163ffffffff1689612c459092919063ffffffff16565b91506124f188868151811015156124d257fe5b9060200190602002015163ffffffff1687612cc690919063ffffffff16565b955061250886898760010181518110151561249f57fe5b905061251e88866001018151811015156124d257fe5b955061253185600263ffffffff612cc616565b945061255d898460ff1681518110151561254757fe5b6020908102919091010151606001518590612cc6565b9350600c60c0604051908101604052808b8660ff1681518110151561257e57fe5b6020908102919091018101515163ffffffff1682528c519101908c9060ff88169081106125a757fe5b602090810290910101516003602002015181526020018b8660ff168151811015156125ce57fe5b602090810290910101516001602002015163ffffffff1681526020018b8660ff168151811015156125fb57fe5b6020908102909101015160026020908102919091015163ffffffff90811683528282018790526040928301869052845460018181018088556000978852968490208651600590930201805492841663ffffffff19938416178155868501519181019190915593850151600285018054606088015185166401000000000267ffffffff00000000199390951693169290921716919091179055608083015180516126aa9260038501920190612d78565b5060a082015180516126c6916004840191602090910190612d78565b5050600190940193506122b49050565b73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b15801561271d57600080fd5b505af4158015612731573d6000803e3d6000fd5b505050506040513d602081101561274757600080fd5b5051841461275457600080fd5b6040517f56d9a2e016027a3725bf162ef2779c8b28d4dbec97c679cfba02dbb31a34c7ca90600090a1505050505050505050565b6000821161279557600080fd5b600160a060020a03811615156127aa57600080fd5b6005919091556008805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600160a060020a03811615156127f357600080fd5b600154604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600082151561286d57506000611d1b565b5081810281838281151561287d57fe5b0414611d1b57fe5b6000818381151561289257fe5b049392505050565b60006128a4612cd3565b8210158015611d1b57506128b66128bf565b82111592915050565b60006128c9612cd8565b600a0a905090565b606080600060ff86161580156128e8575060ff8516155b1561297c57604080516000815260208101909152600b805460ff8a1690811061290d57fe5b90600052602060002090600502016003019080519060200190612931929190612d10565b50604080516000815260208101909152600b805460ff8a1690811061295257fe5b90600052602060002090600502016004019080519060200190612976929190612d10565b50612c3c565b835160ff8616111561298d57600080fd5b60ff8086169087161061299f57600080fd5b60018616156129ad57600080fd5b60018516156129bb57600080fd5b600260ff878703160460ff166040519080825280602002602001820160405280156129f0578160200160208202803883390190505b509250600260ff878703160460ff16604051908082528060200260200182016040528015612a28578160200160208202803883390190505b509150600090505b8460ff168660ff161015612bcb57612a64848760010160ff16815181101515612a5557fe5b9060200190602002015161289a565b1515612a6f57600080fd5b73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015612ab657600080fd5b505af4158015612aca573d6000803e3d6000fd5b505050506040513d6020811015612ae057600080fd5b50518451859060ff60018a0116908110612af657fe5b6020908102909101015110612b0a57600080fd5b6000811115612b5357838660ff16815181101515612b2457fe5b906020019060200201518360018303815181101515612b3f57fe5b6020908102909101015110612b5357600080fd5b838660ff16815181101515612b6457fe5b906020019060200201518382815181101515612b7c57fe5b602090810290910101528351849060ff6001890116908110612b9a57fe5b906020019060200201518282815181101515612bb257fe5b6020908102909101015260029590950194600101612a30565b82600b8860ff16815481101515612bde57fe5b90600052602060002090600502016003019080519060200190612c02929190612d10565b5081600b8860ff16815481101515612c1657fe5b90600052602060002090600502016004019080519060200190612c3a929190612d10565b505b50505050505050565b606080828401855110151515612c5a57600080fd5b82158015612c7357604051915060208201604052612cbd565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015612cac578051835260209283019201612c94565b5050858452601f01601f1916604052505b50949350505050565b81810182811015611d1b57fe5b600090565b6000612ce2612cea565b600201905090565b600290565b50805460008255600502906000526020600020908101906118cb9190612de5565b828054828255906000526020600020908101928215612d4b579160200282015b82811115612d4b578251825591602001919060010190612d30565b5061145f929150612e3e565b50805460008255600502906000526020600020908101906118cb9190612e58565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612db957805160ff1916838001178555612d4b565b82800160010185558215612d4b5791820182811115612d4b578251825591602001919060010190612d30565b61142691905b8082111561145f57805467ffffffffffffffff1916815560006001820181905560028201805463ffffffff19169055612e276003830182612eb1565b612e35600483016000612eb1565b50600501612deb565b61142691905b8082111561145f5760008155600101612e44565b61142691905b8082111561145f57805463ffffffff1916815560006001820181905560028201805467ffffffffffffffff19169055612e9a6003830182612ecf565b612ea8600483016000612ecf565b50600501612e5e565b50805460008255906000526020600020908101906118cb9190612e3e565b50805460018160011615610100020316600290046000825580601f10612ef557506118cb565b601f0160209004906000526020600020908101906118cb9190612e3e565b6000612f1e8261289a565b1515612f2957600080fd5b611d1b612f34612cea565b8390600a0a63ffffffff612885165600a165627a7a72305820d5eee603de8192a8603bc46c6dbfdb4a4654cec9cd6a7e5c0dbe9a8b5bca70500029a165627a7a7230582055ab16c6786e7b41a2f5a5fb7cbf66d86b73d88c8f9f2c0562d8fa3bb6ea6d2f0029", - "sourceMap": "187:1326:2:-;;;423:201;8:9:-1;5:2;;;30:1;27;20:12;5:2;423:201:2;;;;;;;;;;;;;;;;;;;123:7:26;:18;;;-1:-1:-1;;;;;525:26:2;;;;517:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;591:11;:26;;-1:-1:-1;;;;;;591:26:2;-1:-1:-1;;;;;591:26:2;;;;;;;;;;-1:-1:-1;187:1326:2;;;-1:-1:-1;187:1326:2;;", - "deployedSourceMap": "187:1326:2:-;;;;;;;;;-1:-1:-1;;;187:1326:2;;;;;;;;;;;;;;;;;;53:19:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;53:19:26;;;;;;;;;;;;;;;;;;;;630:881:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;630:881:2;-1:-1:-1;;;;;630:881:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;630:881:2;;;;;;;;;;;;;;53:19:26;;;;:::o;630:881:2:-;988:11;;:62;;;;;;-1:-1:-1;;;;;988:62:2;;;;;;;;;;;;;;;;;;;;;;936:20;;;;988:11;;:22;;:62;;;;;;;;;;;;;;936:20;988:11;:62;;;5:2:-1;;;;30:1;27;20:12;5:2;988:62:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;988:62:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;988:62:2;1100:7;;988:62;;-1:-1:-1;1121:12:2;1147:13;1174:5;1193:13;1220:4;1238:10;1262:20;988:62;1070:240;;:::i;:::-;;;;-1:-1:-1;;;;;1070:240:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1070:240:2;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1070:240:2;1061:249;;1321:6;-1:-1:-1;;;;;1321:24:2;;1346:5;1321:31;;;;;-1:-1:-1;;;1321:31:2;;;;;;;-1:-1:-1;;;;;1321:31:2;-1:-1:-1;;;;;1321:31:2;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1321:31:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1321:31:2;;;;1363:4;-1:-1:-1;;;;;1363:17:2;;1381:6;1363:25;;;;;-1:-1:-1;;;1363:25:2;;;;;;;-1:-1:-1;;;;;1363:25:2;-1:-1:-1;;;;;1363:25:2;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1363:25:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1363:25:2;;;;1398:4;-1:-1:-1;;;;;1398:22:2;;1421:5;1398:29;;;;;-1:-1:-1;;;1398:29:2;;;;;;;-1:-1:-1;;;;;1398:29:2;-1:-1:-1;;;;;1398:29:2;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1398:29:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1398:29:2;;;;1467:13;-1:-1:-1;;;;;1443:61:2;1460:5;-1:-1:-1;;;;;1443:61:2;;1490:6;1499:4;1443:61;;;;-1:-1:-1;;;;;1443:61:2;-1:-1:-1;;;;;1443:61:2;;;;;;-1:-1:-1;;;;;1443:61:2;-1:-1:-1;;;;;1443:61:2;;;;;;;;;;;;;;;;630:881;;;;;;;;;;;;:::o;187:1326::-;;;;;;;;;;:::o", - "source": "pragma solidity ^0.4.24;\n\nimport \"./interfaces/IW12CrowdsaleFactory.sol\";\nimport \"./interfaces/IW12FundFactory.sol\";\nimport \"./W12Crowdsale.sol\";\nimport \"./versioning/Versionable.sol\";\n\n\ncontract W12CrowdsaleFactory is Versionable, IW12CrowdsaleFactory {\n IW12FundFactory private fundFactory;\n\n event CrowdsaleCreated(address indexed owner, address indexed token, address crowdsaleAddress, address fundAddress);\n\n constructor(uint version, IW12FundFactory _fundFactory) Versionable(version) public {\n require(_fundFactory != address(0), \"Factory address required\");\n\n fundFactory = _fundFactory;\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 );\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", - "sourcePath": "/home/circleci/code/contracts/W12CrowdsaleFactory.sol", + "bytecode": "0x608060405234801561001057600080fd5b50604051606080614cb38339810160409081528151602083015191909201516000839055600160a060020a038216151561004957600080fd5b600160a060020a038116151561005e57600080fd5b60018054600160a060020a03938416600160a060020a0319918216179091556002805492909316911617905550614c198061009a6000396000f3006080604052600436106100325763ffffffff60e060020a60003504166354fd4d508114610037578063aa1322f71461005e575b600080fd5b34801561004357600080fd5b5061004c6100c4565b60408051918252519081900360200190f35b34801561006a57600080fd5b506100a8600160a060020a03600435811690602435811690604435906064358116906084359060a4359060c4359060e43581169061010435166100ca565b60408051600160a060020a039092168252519081900360200190f35b60005481565b600154604080517f17444626000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152898116602483015260448201879052915160009384931691631744462691606480830192602092919082900301818787803b15801561014257600080fd5b505af1158015610156573d6000803e3d6000fd5b505050506040513d602081101561016c57600080fd5b5051600054600254919250908c908c908c908c9089908d908d908990600160a060020a03166101996103ea565b998a52600160a060020a0398891660208b01529688166040808b019190915260608a0196909652938716608089015291861660a088015260c087015260e086015283166101008501529116610120830152519081900361014001906000f080158015610209573d6000803e3d6000fd5b50915081600160a060020a031663f2fde38b846040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801561026757600080fd5b505af115801561027b573d6000803e3d6000fd5b5050505080600160a060020a031663483a20b2836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b1580156102da57600080fd5b505af11580156102ee573d6000803e3d6000fd5b5050505080600160a060020a031663f2fde38b846040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801561034d57600080fd5b505af1158015610361573d6000803e3d6000fd5b5050505089600160a060020a031683600160a060020a03167f5c5f2ecd800afaa9861ac6ebf9ef843dfc826dedb68c6fc1447d0879f383629f84846040518083600160a060020a0316600160a060020a0316815260200182600160a060020a0316600160a060020a031681526020019250505060405180910390a3509998505050505050505050565b6040516147f3806103fb833901905600608060405260016002553480156200001657600080fd5b5060405161014080620047f383398101604090815281516020830151918301516060840151608085015160a086015160c087015160e088015161010089015161012090990151600088905560018054600160a060020a03191633179055969895969495939492939192909190600160a060020a03891615156200009857600080fd5b600160a060020a0388161515620000ae57600080fd5b620000c78464010000000062003c116200020b82021704565b8015620000ec57506064620000ea85640100000000620044476200024882021704565b105b1515620000f857600080fd5b620001118364010000000062003c116200020b82021704565b801562000136575060646200013484640100000000620044476200024882021704565b105b15156200014257600080fd5b600160a060020a03821615156200015857600080fd5b600160a060020a03851615156200016e57600080fd5b600160a060020a03811615156200018457600080fd5b6200019987876401000000006200029a810204565b60038054600160a060020a0319908116600160a060020a039a8b16179091556004805482169a8a169a909a17909955600893909355600b80548916948816949094179093556009556005805487169286169290921790915560068054909516931692909217909255506200033f915050565b600062000220640100000000620002e5810204565b82101580156200024257506200023e640100000000620002ea810204565b8211155b92915050565b60006200025e826401000000006200020b810204565b15156200026a57600080fd5b620002426200028164010000000062000307810204565b8390600a0a6401000000006200405f6200030c82021704565b60008211620002a857600080fd5b600160a060020a0381161515620002be57600080fd5b600791909155600a8054600160a060020a031916600160a060020a03909216919091179055565b600090565b6000620002ff64010000000062000322810204565b600a0a905090565b600290565b600081838115156200031a57fe5b049392505050565b60006200033764010000000062000307810204565b600201905090565b6144a4806200034f6000396000f3006080604052600436106101a85763ffffffff60e060020a60003504166307f5d63381146101ad57806311eb8c9f146101bd57806313096a41146101e957806314f66d341461021a578063208853c9146102485780632442e1cb146102725780632e325020146103a85780632fbe599014610499578063313602d4146104ae5780633baba4d7146104c35780634090cb64146104d857806343f48fbd146104ed57806354fd4d5014610502578063550fd742146105175780635641f3c31461057c578063564566a814610591578063715018a6146105a6578063792c02ea146105bb5780638119c065146105d0578063845ddcb2146105e55780638abdf5aa1461062e5780638aea2af8146106435780638da5cb5b146106965780638edd6eb6146106ab578063a035b1fe146106c0578063a4fd6f56146106d5578063b1356488146106ea578063b60d428814610718578063d250185c1461072d578063d5b226231461075f578063d6d65f3d146107bb578063daa4cf88146107d0578063e89e4ed6146107e5578063e93b0540146107fd578063f2fde38b14610815578063fc0c546a14610836575b600080fd5b6101bb60043560243561084b565b005b3480156101c957600080fd5b506101d5600435610a52565b604080519115158252519081900360200190f35b3480156101f557600080fd5b506101fe610a6b565b60408051600160a060020a039092168252519081900360200190f35b34801561022657600080fd5b5061022f610a7a565b6040805192835290151560208301528051918290030190f35b34801561025457600080fd5b50610260600435610aad565b60408051918252519081900360200190f35b34801561027e57600080fd5b5061028a600435610ba3565b604051808763ffffffff1663ffffffff1681526020018681526020018563ffffffff1663ffffffff1681526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019080838360005b838110156103075781810151838201526020016102ef565b50505050905090810190601f1680156103345780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b8381101561036757818101518382015260200161034f565b50505050905090810190601f1680156103945780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b3480156103b457600080fd5b506103c0600435610dd0565b604051808763ffffffff1663ffffffff1681526020018663ffffffff1663ffffffff1681526020018581526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015610440578181015183820152602001610428565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561047f578181015183820152602001610467565b505050509050019850505050505050505060405180910390f35b3480156104a557600080fd5b50610260610f76565b3480156104ba57600080fd5b506101bb610f7c565b3480156104cf57600080fd5b5061026061112b565b3480156104e457600080fd5b506101fe611132565b3480156104f957600080fd5b506101fe611141565b34801561050e57600080fd5b50610260611150565b34801561052357600080fd5b5061052c611156565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610568578181015183820152602001610550565b505050509050019250505060405180910390f35b34801561058857600080fd5b506101fe611167565b34801561059d57600080fd5b506101d5611176565b3480156105b257600080fd5b506101bb61118c565b3480156105c757600080fd5b506102606111fa565b3480156105dc57600080fd5b506101fe611200565b3480156105f157600080fd5b506105fd60043561120f565b6040805163ffffffff9586168152938516602085015283810192909252909216606082015290519081900360800190f35b34801561063a57600080fd5b50610260611255565b34801561064f57600080fd5b5061065e60043560243561125b565b604051808260a080838360005b8381101561068357818101518382015260200161066b565b5050505090500191505060405180910390f35b3480156106a257600080fd5b506101fe61171a565b3480156106b757600080fd5b506101fe611729565b3480156106cc57600080fd5b50610260611738565b3480156106e157600080fd5b506101d561173e565b3480156106f657600080fd5b506106ff611785565b6040805163ffffffff9092168252519081900360200190f35b34801561072457600080fd5b506101fe6117cc565b34801561073957600080fd5b506107486004356024356117db565b60408051825181529081908390808383602061066b565b34801561076b57600080fd5b506101bb602460048035828101929082013591813580830192908201359160443580830192908201359160643580830192908201359160843580830192908201359160a4359182019101356117fa565b3480156107c757600080fd5b5061022f611aff565b3480156107dc57600080fd5b5061022f611b7a565b3480156107f157600080fd5b5061028a600435611bfd565b34801561080957600080fd5b506101bb600435611d6b565b34801561082157600080fd5b506101bb600160a060020a0360043516611dd9565b34801561084257600080fd5b506101fe611df9565b60006108556141ac565b61085d6141cb565b60025460011461086c57600080fd5b60028055610878611176565b15156108e557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f53616c65206973206e6f74207374617274656420796574000000000000000000604482015290519081900360640190fd5b846108ee611e08565b14610983576006546040805160e460020a630b12e441028152600481018890529051600092600160a060020a03169163b12e441091602480830192602092919082900301818787803b15801561094357600080fd5b505af1158015610957573d6000803e3d6000fd5b505050506040513d602081101561096d57600080fd5b5051600160a060020a0316141561098357600080fd5b61098b611b7a565b509250610998858561125b565b805160208201519193506109ab916117db565b90506109b78186611e2c565b6109eb8282600e868154811015156109cb57fe5b600091825260209091206002600590920201015463ffffffff1688611f7a565b6109f68282876120b9565b8151602080840151606080860151604080519586529385019290925283830191909152905133927f347f5f0051b895093800553e6e78ef332849e2552639a4f5ffe66535788ae07892908290030190a250506001600255505050565b6000610a65600c8363ffffffff61237716565b92915050565b600454600160a060020a031681565b600f5460009081901580610a935750610a9161173e565b155b15610a9d57610aa9565b5050600f546000190160015b9091565b600080600080610abb611b7a565b92509250811515610acb57610b9b565b600e805484908110610ad957fe5b90600052602060002090600502019050610b988582600301805480602002602001604051908101604052809291908181526020018280548015610b3b57602002820191906000526020600020905b815481526020019060010190808311610b27575b505050505083600401805480602002602001604051908101604052809291908181526020018280548015610b8e57602002820191906000526020600020905b815481526020019060010190808311610b7a575b5050505050612390565b93505b505050919050565b600080600080606080600f87815481101515610bbb57fe5b6000918252602090912060059091020154600f805463ffffffff9092169189908110610be357fe5b906000526020600020906005020160010154600f89815481101515610c0457fe5b6000918252602090912060026005909202010154600f805463ffffffff909216918b908110610c2f57fe5b906000526020600020906005020160020160049054906101000a900463ffffffff16600f8b815481101515610c6057fe5b9060005260206000209060050201600301600f8c815481101515610c8057fe5b9060005260206000209060050201600401818054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d265780601f10610cfb57610100808354040283529160200191610d26565b820191906000526020600020905b815481529060010190602001808311610d0957829003601f168201915b5050845460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815295975086945092508401905082828015610db45780601f10610d8957610100808354040283529160200191610db4565b820191906000526020600020905b815481529060010190602001808311610d9757829003601f168201915b5050505050905095509550955095509550955091939550919395565b600080600080606080600e87815481101515610de857fe5b6000918252602090912060059091020154600e805463ffffffff9092169189908110610e1057fe5b906000526020600020906005020160000160049054906101000a900463ffffffff16600e89815481101515610e4157fe5b906000526020600020906005020160010154600e8a815481101515610e6257fe5b6000918252602090912060026005909202010154600e805463ffffffff909216918c908110610e8d57fe5b9060005260206000209060050201600301600e8c815481101515610ead57fe5b906000526020600020906005020160040181805480602002602001604051908101604052809291908181526020018280548015610f0957602002820191906000526020600020905b815481526020019060010190808311610ef5575b5050505050915080805480602002602001604051908101604052809291908181526020018280548015610db457602002820191906000526020600020905b815481526020019060010190808311610f47575050505050905095509550955095509550955091939550919395565b60095481565b600154600090600160a060020a03163314610f9657600080fd5b610f9e61173e565b1515610fa957600080fd5b600354604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b15801561100f57600080fd5b505af1158015611023573d6000803e3d6000fd5b505050506040513d602081101561103957600080fd5b5051600354600154604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a03928316600482015260248101859052905193945091169163a9059cbb916044808201926020929091908290030181600087803b1580156110af57600080fd5b505af11580156110c3573d6000803e3d6000fd5b505050506040513d60208110156110d957600080fd5b505115156110e657600080fd5b600154604080518381529051600160a060020a03909216917f26ffb867a6b19bc0240d4e732ed6cfb0f0b6d93143a99cfb24ba5873308861f89181900360200190a250565b600f545b90565b600354600160a060020a031690565b600654600160a060020a031681565b60005481565b6060611162600c6123ef565b905090565b600a54600160a060020a031681565b600080611181611b7a565b9150508091505b5090565b600154600160a060020a031633146111a357600080fd5b600154604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26001805473ffffffffffffffffffffffffffffffffffffffff19169055565b600e5490565b600b54600160a060020a031681565b600e80548290811061121d57fe5b600091825260209091206005909102018054600182015460029092015463ffffffff8083169450640100000000909204821692911684565b60085481565b6112636141ac565b60008061126e611b7a565b9150915080151561127e57611712565b84611287611e08565b1461131c576006546040805160e460020a630b12e441028152600481018890529051600092600160a060020a03169163b12e441091602480830192602092919082900301818787803b1580156112dc57600080fd5b505af11580156112f0573d6000803e3d6000fd5b505050506040513d602081101561130657600080fd5b5051600160a060020a0316141561131c57611712565b61170f8585600e8581548110151561133057fe5b906000526020600020906005020160010154600e8681548110151561135157fe5b90600052602060002090600502016003018054806020026020016040519081016040528092919081815260200182805480156113ac57602002820191906000526020600020905b815481526020019060010190808311611398575b5050505050600e878154811015156113c057fe5b906000526020600020906005020160040180548060200260200160405190810160405280929190818152602001828054801561141b57602002820191906000526020600020905b815481526020019060010190808311611407575b5050505050600660009054906101000a9004600160a060020a0316600160a060020a0316638eaa6ac08c6040518263ffffffff1660e060020a028152600401808260001916600019168152602001915050602060405180830381600087803b15801561148657600080fd5b505af115801561149a573d6000803e3d6000fd5b505050506040513d60208110156114b057600080fd5b5051600754600354604080517f313ce5670000000000000000000000000000000000000000000000000000000081529051600160a060020a039092169163313ce567916004808201926020929091908290030181600087803b15801561151557600080fd5b505af1158015611529573d6000803e3d6000fd5b505050506040513d602081101561153f57600080fd5b505160ff168d61154d611e08565b1461167557600660009054906101000a9004600160a060020a0316600160a060020a031663b12e44108f6040518263ffffffff1660e060020a028152600401808260001916600019168152602001915050602060405180830381600087803b1580156115b857600080fd5b505af11580156115cc573d6000803e3d6000fd5b505050506040513d60208110156115e257600080fd5b5051604080517f313ce5670000000000000000000000000000000000000000000000000000000081529051600160a060020a039092169163313ce567916004808201926020929091908290030181600087803b15801561164157600080fd5b505af1158015611655573d6000803e3d6000fd5b505050506040513d602081101561166b57600080fd5b505160ff16611678565b60125b600354604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b1580156116de57600080fd5b505af11580156116f2573d6000803e3d6000fd5b505050506040513d602081101561170857600080fd5b505161244c565b92505b505092915050565b600154600160a060020a031681565b600554600160a060020a031690565b60075481565b600e5460009015806111625750600e8054429190600019810190811061176057fe5b6000918252602090912060059091020154640100000000900463ffffffff1610919050565b600e54600090811061179657600080fd5b600e805460001981019081106117a857fe5b6000918252602090912060059091020154640100000000900463ffffffff16919050565b600554600160a060020a031681565b6117e36141cb565b6117f38383600854600954612887565b9392505050565b600154600090600160a060020a0316331461181457600080fd5b600e54600010156118515742600e600081548110151561183057fe5b600091825260209091206005909102015463ffffffff161161185157600080fd5b8b151561185d57600080fd5b60ff8c111561186b57600080fd5b60ff88111561187957600080fd5b60028604881461188857600080fd5b6002840488111561189857600080fd5b8115156118a457600080fd5b5060005b8181101561195057600654600160a060020a0316637d20abf88484848181106118cd57fe5b6040805160e060020a63ffffffff87160281526020928302949094013560048501525160248085019492935090918290030181600087803b15801561191157600080fd5b505af1158015611925573d6000803e3d6000fd5b505050506040513d602081101561193b57600080fd5b5051151561194857600080fd5b6001016118a8565b6119e98d8d808060200260200160405190810160405280939291908181526020016000905b828210156119b1576040805160c08181019092529080840287019060069083908390808284375050509183525050600190910190602001611975565b50505050508c8c80806020026020016040519081016040528093929190818152602001838360200280828437506128d2945050505050565b611ab08989808060200260200160405190810160405280939291908181526020016000905b82821015611a4a576040805160808181019092529080840287019060049083908390808284375050509183525050600190910190602001611a0e565b50505050508888808060200260200160405190810160405280939291908181526020018383602002808284375050604080516020601f8e018190048102820181019092528c815294508c93508b9250829150840183828082843750612ddb945050505050565b611af083838080602002602001604051908101604052809392919081815260200183836020028082843750600c9594505063ffffffff6133391692505050565b50505050505050505050505050565b600f5460009081901580611b185750611b1661173e565b155b15611b2257610aa9565b5060015b600f546000190182108015611b6a5750600f805483908110611b4457fe5b6000918252602090912060059091020160020154640100000000900463ffffffff164210155b15610aa957600190910190611b26565b60008080805b600e54821015611bef57600e805483908110611b9857fe5b6000918252602090912060059091020180549091504263ffffffff90911611801590611bd3575080544264010000000090910463ffffffff16115b15611be45781600193509350611bf7565b600190910190611b80565b600093508392505b50509091565b600f805482908110611c0b57fe5b60009182526020918290206005919091020180546001808301546002808501546003860180546040805161010097831615979097026000190190911693909304601f810189900489028601890190935282855263ffffffff9586169850929685821696640100000000909204909516949093929190830182828015611cd15780601f10611ca657610100808354040283529160200191611cd1565b820191906000526020600020905b815481529060010190602001808311611cb457829003601f168201915b5050505060048301805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152949594935090830182828015611d615780601f10611d3657610100808354040283529160200191611d61565b820191906000526020600020905b815481529060010190602001808311611d4457829003601f168201915b5050505050905086565b600154600160a060020a03163314611d8257600080fd5b600e5460001015611dbf5742600e6000815481101515611d9e57fe5b600091825260209091206005909102015463ffffffff1611611dbf57600080fd5b600a54611dd6908290600160a060020a031661340a565b50565b600154600160a060020a03163314611df057600080fd5b611dd681613460565b600354600160a060020a031681565b7f455448000000000000000000000000000000000000000000000000000000000090565b600654604080517fcfec719f000000000000000000000000000000000000000000000000000000008152600481018490529051611f769285928592600160a060020a039092169163cfec719f916024808201926020929091908290030181600087803b158015611e9b57600080fd5b505af1158015611eaf573d6000803e3d6000fd5b505050506040513d6020811015611ec557600080fd5b5051611ed2576000611f50565b6006546040805160e460020a630b12e441028152600481018790529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b158015611f2357600080fd5b505af1158015611f37573d6000803e3d6000fd5b505050506040513d6020811015611f4d57600080fd5b50515b600354600454600b54600a54600160a060020a03938416939283169291821691166134de565b5050565b600654604080517fcfec719f0000000000000000000000000000000000000000000000000000000081526004810184905290516120b3928792879287928792600160a060020a039091169163cfec719f916024808201926020929091908290030181600087803b158015611fed57600080fd5b505af1158015612001573d6000803e3d6000fd5b505050506040513d602081101561201757600080fd5b50516120245760006120a2565b6006546040805160e460020a630b12e441028152600481018990529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b15801561207557600080fd5b505af1158015612089573d6000803e3d6000fd5b505050506040513d602081101561209f57600080fd5b50515b600354600160a060020a031661386d565b50505050565b6120c1611e08565b81141561219557600554600160a060020a031663d0baf2f56120f984600160200201518660015b60200201519063ffffffff613b5d16565b855160208601513391908690612111908a60016120e8565b89600260200201516040805160e060020a63ffffffff8a16028152600160a060020a03909616600487015260248601949094526044850192909252606484015260848301525160a480830192600092919082900301818588803b15801561217757600080fd5b505af115801561218b573d6000803e3d6000fd5b5050505050612372565b6006546040805160e460020a630b12e441028152600481018490529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b1580156121e657600080fd5b505af11580156121fa573d6000803e3d6000fd5b505050506040513d602081101561221057600080fd5b5051600554600160a060020a039182169163a9059cbb911661223c8560015b60200201518760016120e8565b6040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801561228e57600080fd5b505af11580156122a2573d6000803e3d6000fd5b505050506040513d60208110156122b857600080fd5b505115156122c557600080fd5b600554600160a060020a031663d0baf2f5338560006020020151846122f387600160200201518960016120e8565b88600260200201516040805160e060020a63ffffffff8916028152600160a060020a03909616600487015260248601949094526044850192909252606484015260848301525160a480830192600092919082900301818387803b15801561235957600080fd5b505af115801561236d573d6000803e3d6000fd5b505050505b505050565b6000908152600191909101602052604090205460ff1690565b6000805b83518110156123e75783818151811015156123ab57fe5b6020908102909101015185106123da5782818151811015156123c957fe5b9060200190602002015191506123df565b6123e7565b600101612394565b509392505050565b60608160000180548060200260200160405190810160405280929190818152602001828054801561244057602002820191906000526020600020905b8154815260019091019060200180831161242b575b50505050509050919050565b6124546141ac565b60006124658c8c8989878a8a613b6f565b151561247057600080fd5b73__Utils_________________________________6376ba78988c868a6040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b1580156124d257600080fd5b505af41580156124e6573d6000803e3d6000fd5b505050506040513d60208110156124fc57600080fd5b50516040830181905286111561251157600080fd5b6040820151612521908a8a612390565b905060008a1161253157856125b7565b6125b78a73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b15801561257c57600080fd5b505af4158015612590573d6000803e3d6000fd5b505050506040513d60208110156125a657600080fd5b50518891900363ffffffff613bc716565b82600460200201818152505073__Utils_________________________________63a5a55fcf61266e6126638473__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b15801561262b57600080fd5b505af415801561263f573d6000803e3d6000fd5b505050506040513d602081101561265557600080fd5b50519063ffffffff613bf016565b604086015190613bfd565b8785600460200201516040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b1580156126bc57600080fd5b505af41580156126d0573d6000803e3d6000fd5b505050506040513d60208110156126e657600080fd5b50518083528310156127a5576080820151604080517f76ba7898000000000000000000000000000000000000000000000000000000008152600481018690526024810188905260448101929092525173__Utils_________________________________916376ba7898916064808301926020929190829003018186803b15801561277057600080fd5b505af4158015612784573d6000803e3d6000fd5b505050506040513d602081101561279a57600080fd5b505160408301528282525b73__Utils_________________________________63a5a55fcf8360026020020151868a6040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b15801561280e57600080fd5b505af4158015612822573d6000803e3d6000fd5b505050506040513d602081101561283857600080fd5b505160208301819052158061284c57508151155b156128635760008083526020830181905260408301525b6020820151612873908c90613b5d565b6060830152509a9950505050505050505050565b61288f6141cb565b60008311156128ab576128a8858463ffffffff613bfd16565b81525b60008211156128ca576128c4848363ffffffff613bfd16565b60208201525b949350505050565b600f5460009081101561292f578251839060001981019081106128f157fe5b6020908102919091018101510151600f8054600090811061290e57fe5b600091825260209091206005909102015463ffffffff161161292f57600080fd5b61293b600e60006141e6565b5060005b82518160ff161015612dad57825163ffffffff90849060ff841690811061296257fe5b602090810291909101015151111561297957600080fd5b825163ffffffff90849060ff841690811061299057fe5b602090810291909101810151015111156129a957600080fd5b825163ffffffff90849060ff84169081106129c057fe5b60209081029190910101516060015111156129da57600080fd5b825160ff9084908383169081106129ed57fe5b6020908102919091010151608001511115612a0757600080fd5b825160ff908490838316908110612a1a57fe5b602090810291909101015160a001511115612a3457600080fd5b42838260ff16815181101515612a4657fe5b60209081029190910101515111612a5c57600080fd5b828160ff16815181101515612a6d57fe5b60209081029190910181015101518351849060ff8416908110612a8c57fe5b60209081029190910101515110612aa257600080fd5b60008160ff161115612af957828160ff16815181101515612abf57fe5b6020908102919091010151518351849060ff600019850116908110612ae057fe5b60209081029190910181015101511115612af957600080fd5b612b24838260ff16815181101515612b0d57fe5b6020908102909101015160025b6020020151613c11565b1515612b2f57600080fd5b73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015612b7657600080fd5b505af4158015612b8a573d6000803e3d6000fd5b505050506040513d6020811015612ba057600080fd5b50518351849060ff8416908110612bb357fe5b60209081029190910101516040015110612bcc57600080fd5b600e60c060405190810160405280858460ff16815181101515612beb57fe5b6020908102919091018101515163ffffffff1682528651910190869060ff8616908110612c1457fe5b602090810290910101516001602002015163ffffffff168152602001858460ff16815181101515612c4157fe5b60209081029091010151600260200201518152602001858460ff16815181101515612c6857fe5b6020908102919091018101516060015163ffffffff16825260408051600080825281840183528484019190915281518181529283018252920191509052815460018082018085556000948552602094859020845160059094020180548587015163ffffffff1991821663ffffffff9687161767ffffffff000000001916640100000000918716919091021782556040860151938201939093556060850151600282018054909416941693909317909155608083015180519194612d3392600385019290910190614207565b5060a08201518051612d4f916004840191602090910190614207565b50505050612da56001600e8054905003848360ff16815181101515612d7057fe5b6020908102919091010151608001518551869060ff8616908110612d9057fe5b602090810291909101015160a0015185613c36565b60010161293f565b6040517f743961f4e677d1146fbf85d75565b1c5474fd083eb166f8b9595cf5d01a4d6e690600090a1505050565b6000806000806060806000600e805490501115612e4857886000815181101515612e0157fe5b602090810291909101015151600e80546000198101908110612e1f57fe5b6000918252602090912060059091020154640100000000900463ffffffff1610612e4857600080fd5b612e54600f600061424e565b600095506000945060009350600092505b88518360ff16101561328757885163ffffffff908a9060ff8616908110612e8857fe5b6020908102919091010151511115612e9f57600080fd5b885163ffffffff908a9060ff8616908110612eb657fe5b60209081029190910181015101511115612ecf57600080fd5b885163ffffffff908a9060ff8616908110612ee657fe5b6020908102919091010151604001511115612f0057600080fd5b42898460ff16815181101515612f1257fe5b60209081029190910101515111612f2857600080fd5b888360ff16815181101515612f3957fe5b60209081029190910101515189518a9060ff8616908110612f5657fe5b602090810291909101810151015111612f6e57600080fd5b888360ff16815181101515612f7f57fe5b602090810291909101810151015189518a9060ff8616908110612f9e57fe5b60209081029190910101516040015111612fb757600080fd5b60008360ff16111561300e57888360ff16815181101515612fd457fe5b60209081029190910101515189518a9060ff600019870116908110612ff557fe5b6020908102919091010151604001511061300e57600080fd5b613033898460ff1681518110151561302257fe5b602090810290910101516003612b1a565b151561303e57600080fd5b61307086898781518110151561305057fe5b9060200190602002015163ffffffff1689613fa39092919063ffffffff16565b91506130a2888681518110151561308357fe5b9060200190602002015163ffffffff1687613bf090919063ffffffff16565b95506130b986898760010181518110151561305057fe5b90506130cf888660010181518110151561308357fe5b95506130e285600263ffffffff613bf016565b945061310e898460ff168151811015156130f857fe5b6020908102919091010151606001518590613bf0565b9350600f60c0604051908101604052808b8660ff1681518110151561312f57fe5b6020908102919091018101515163ffffffff1682528c519101908c9060ff881690811061315857fe5b602090810290910101516003602002015181526020018b8660ff1681518110151561317f57fe5b602090810290910101516001602002015163ffffffff1681526020018b8660ff168151811015156131ac57fe5b6020908102909101015160026020908102919091015163ffffffff90811683528282018790526040928301869052845460018181018088556000978852968490208651600590930201805492841663ffffffff19938416178155868501519181019190915593850151600285018054606088015185166401000000000267ffffffff000000001993909516931692909217169190911790556080830151805161325b926003850192019061426f565b5060a0820151805161327791600484019160209091019061426f565b505060019094019350612e659050565b73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b1580156132ce57600080fd5b505af41580156132e2573d6000803e3d6000fd5b505050506040513d60208110156132f857600080fd5b5051841461330557600080fd5b6040517f56d9a2e016027a3725bf162ef2779c8b28d4dbec97c679cfba02dbb31a34c7ca90600090a1505050505050505050565b81546000901561339c575060005b825481101561339c576000836001016000856000018481548110151561336957fe5b60009182526020808320919091015483528201929092526040019020805460ff1916911515919091179055600101613347565b81516133ae90849060208501906142dc565b50815115612372575060005b815181101561237257600183600101600084848151811015156133d957fe5b6020908102919091018101518252810191909152604001600020805460ff19169115159190911790556001016133ba565b6000821161341757600080fd5b600160a060020a038116151561342c57600080fd5b600791909155600a805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600160a060020a038116151561347557600080fd5b600154604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a03831615156134f357600080fd5b600160a060020a038416151561350857600080fd5b600160a060020a038216151561351d57600080fd5b600160a060020a038116151561353257600080fd5b6020870151600010801561354d5750613549611e08565b8614155b1561356757600160a060020a038516151561356757600080fd5b8651600010156136c5578651604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152848116602483015260448201939093529051918516916323b872dd916064808201926020929091908290030181600087803b1580156135e857600080fd5b505af11580156135fc573d6000803e3d6000fd5b505050506040513d602081101561361257600080fd5b5051151561361f57600080fd5b8651604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152602482019390935290519186169163a9059cbb916044808201926020929091908290030181600087803b15801561368e57600080fd5b505af11580156136a2573d6000803e3d6000fd5b505050506040513d60208110156136b857600080fd5b505115156136c557600080fd5b60208701516000101561236d576136da611e08565b861415613720576020870151604051600160a060020a0383169180156108fc02916000818181858888f1935050505015801561371a573d6000803e3d6000fd5b5061236d565b602080880151604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290519192600160a060020a0389169263dd62ed3e9260448082019392918290030181600087803b15801561378c57600080fd5b505af11580156137a0573d6000803e3d6000fd5b505050506040513d60208110156137b657600080fd5b505110156137c357600080fd5b602080880151604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a03858116602483015260448201939093529051918816926323b872dd926064808401938290030181600087803b15801561383657600080fd5b505af115801561384a573d6000803e3d6000fd5b505050506040513d602081101561386057600080fd5b5051151561236d57600080fd5b600160a060020a038116151561388257600080fd5b8551151561388f57600080fd5b6020860151151561389f57600080fd5b84518651116138ad57600080fd5b60208086015190870151116138c157600080fd5b6138c9611e08565b8314156138e15760208601513410156138e157600080fd5b6138e9611e08565b8314613a5c57600160a060020a038216151561390457600080fd5b61390f85600161222f565b604080517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523360048201523060248201529051600160a060020a0385169163dd62ed3e9160448083019260209291908290030181600087803b15801561397657600080fd5b505af115801561398a573d6000803e3d6000fd5b505050506040513d60208110156139a057600080fd5b505110156139ad57600080fd5b600160a060020a0382166323b872dd33306139d189600160200201518b60016120e8565b6040805160e060020a63ffffffff8716028152600160a060020a0394851660048201529290931660248301526044820152905160648083019260209291908290030181600087803b158015613a2557600080fd5b505af1158015613a39573d6000803e3d6000fd5b505050506040513d6020811015613a4f57600080fd5b50511515613a5c57600080fd5b8551604080517f9d2e4777000000000000000000000000000000000000000000000000000000008152336004820152602481019290925263ffffffff8616604483015251600160a060020a03831691639d2e47779160648083019260209291908290030181600087803b158015613ad257600080fd5b505af1158015613ae6573d6000803e3d6000fd5b505050506040513d6020811015613afc57600080fd5b50511515613b0957600080fd5b606086015160001015613b5557613b1e611e08565b831415613b55576060860151604051339180156108fc02916000818181858888f1935050505015801561236d573d6000803e3d6000fd5b505050505050565b600082821115613b6957fe5b50900390565b60008087118015613b805750600086115b8015613b8c5750600085115b8015613b9b575082600a0a8410155b9050613ba5611e08565b881415613bbc57808015613bb95750816012145b90505b979650505050505050565b60006117f3613bd4614024565b613be4858563ffffffff61403616565b9063ffffffff61405f16565b81810182811015610a6557fe5b60006117f38383613c0c614024565b614074565b6000613c1b614190565b8210158015610a655750613c2d614024565b90911115919050565b606080600060ff8616158015613c4d575060ff8516155b15613cdb57604080516000815260208101909152600e805460ff8a16908110613c7257fe5b90600052602060002090600502016003019080519060200190613c96929190614207565b50604080516000815260208101909152600e805460ff8a16908110613cb757fe5b9060005260206000209060050201600401908051906020019061371a929190614207565b835160ff86161115613cec57600080fd5b60ff80861690871610613cfe57600080fd5b6001861615613d0c57600080fd5b6001851615613d1a57600080fd5b600260ff878703160460ff16604051908082528060200260200182016040528015613d4f578160200160208202803883390190505b509250600260ff878703160460ff16604051908082528060200260200182016040528015613d87578160200160208202803883390190505b509150600090505b8460ff168660ff161015613f2a57613dc3848760010160ff16815181101515613db457fe5b90602001906020020151613c11565b1515613dce57600080fd5b73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015613e1557600080fd5b505af4158015613e29573d6000803e3d6000fd5b505050506040513d6020811015613e3f57600080fd5b50518451859060ff60018a0116908110613e5557fe5b6020908102909101015110613e6957600080fd5b6000811115613eb257838660ff16815181101515613e8357fe5b906020019060200201518360018303815181101515613e9e57fe5b6020908102909101015110613eb257600080fd5b838660ff16815181101515613ec357fe5b906020019060200201518382815181101515613edb57fe5b602090810290910101528351849060ff6001890116908110613ef957fe5b906020019060200201518282815181101515613f1157fe5b6020908102909101015260029590950194600101613d8f565b82600e8860ff16815481101515613f3d57fe5b90600052602060002090600502016003019080519060200190613f61929190614207565b5081600e8860ff16815481101515613f7557fe5b90600052602060002090600502016004019080519060200190613f99929190614207565b5050505050505050565b606080828401855110151515613fb857600080fd5b82158015613fd15760405191506020820160405261401b565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561400a578051835260209283019201613ff2565b5050858452601f01601f1916604052505b50949350505050565b600061402e614195565b600a0a905090565b600082151561404757506000610a65565b5081810281838281151561405757fe5b0414610a6557fe5b6000818381151561406c57fe5b049392505050565b60008080808085151561408357fe5b87158061408e575086155b1561409857614185565b6140aa6000198863ffffffff61405f16565b92508288116140ce576140c786613be48a8a63ffffffff61403616565b9450614185565b858814156140de57869450614185565b858714156140ee57879450614185565b871561416f578783116141015782614103565b875b9150614115828863ffffffff61403616565b905061413761412a828863ffffffff61405f16565b869063ffffffff613bf016565b9450614156868281151561414757fe5b8691900663ffffffff613bf016565b9350614168888363ffffffff613b5d16565b97506140ee565b61418261412a858863ffffffff61405f16565b94505b505050509392505050565b600090565b600061419f6141a7565b600201905090565b600290565b60a0604051908101604052806005906020820280388339509192915050565b60408051808201825290600290829080388339509192915050565b5080546000825560050290600052602060002090810190611dd69190614319565b828054828255906000526020600020908101928215614242579160200282015b82811115614242578251825591602001919060010190614227565b50611188929150614372565b5080546000825560050290600052602060002090810190611dd6919061438c565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106142b057805160ff1916838001178555614242565b828001600101855582156142425791820182811115614242578251825591602001919060010190614227565b828054828255906000526020600020908101928215614242579160200282015b8281111561424257825182556020909201916001909101906142fc565b61112f91905b8082111561118857805467ffffffffffffffff1916815560006001820181905560028201805463ffffffff1916905561435b60038301826143e5565b6143696004830160006143e5565b5060050161431f565b61112f91905b808211156111885760008155600101614378565b61112f91905b8082111561118857805463ffffffff1916815560006001820181905560028201805467ffffffffffffffff191690556143ce6003830182614403565b6143dc600483016000614403565b50600501614392565b5080546000825590600052602060002090810190611dd69190614372565b50805460018160011615610100020316600290046000825580601f106144295750611dd6565b601f016020900490600052602060002090810190611dd69190614372565b600061445282613c11565b151561445d57600080fd5b610a656144686141a7565b8390600a0a63ffffffff61405f165600a165627a7a723058202342b88ad61b0780c18df5bad6bf46006e8ba44f4e4efd9edf7cf615b579c9400029a165627a7a72305820b947665d3415e55ae94b66d80b0eeb1c79263f4271b00b38923f10e444ac27a50029", + "deployedBytecode": "0x6080604052600436106100325763ffffffff60e060020a60003504166354fd4d508114610037578063aa1322f71461005e575b600080fd5b34801561004357600080fd5b5061004c6100c4565b60408051918252519081900360200190f35b34801561006a57600080fd5b506100a8600160a060020a03600435811690602435811690604435906064358116906084359060a4359060c4359060e43581169061010435166100ca565b60408051600160a060020a039092168252519081900360200190f35b60005481565b600154604080517f17444626000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152898116602483015260448201879052915160009384931691631744462691606480830192602092919082900301818787803b15801561014257600080fd5b505af1158015610156573d6000803e3d6000fd5b505050506040513d602081101561016c57600080fd5b5051600054600254919250908c908c908c908c9089908d908d908990600160a060020a03166101996103ea565b998a52600160a060020a0398891660208b01529688166040808b019190915260608a0196909652938716608089015291861660a088015260c087015260e086015283166101008501529116610120830152519081900361014001906000f080158015610209573d6000803e3d6000fd5b50915081600160a060020a031663f2fde38b846040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801561026757600080fd5b505af115801561027b573d6000803e3d6000fd5b5050505080600160a060020a031663483a20b2836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b1580156102da57600080fd5b505af11580156102ee573d6000803e3d6000fd5b5050505080600160a060020a031663f2fde38b846040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801561034d57600080fd5b505af1158015610361573d6000803e3d6000fd5b5050505089600160a060020a031683600160a060020a03167f5c5f2ecd800afaa9861ac6ebf9ef843dfc826dedb68c6fc1447d0879f383629f84846040518083600160a060020a0316600160a060020a0316815260200182600160a060020a0316600160a060020a031681526020019250505060405180910390a3509998505050505050505050565b6040516147f3806103fb833901905600608060405260016002553480156200001657600080fd5b5060405161014080620047f383398101604090815281516020830151918301516060840151608085015160a086015160c087015160e088015161010089015161012090990151600088905560018054600160a060020a03191633179055969895969495939492939192909190600160a060020a03891615156200009857600080fd5b600160a060020a0388161515620000ae57600080fd5b620000c78464010000000062003c116200020b82021704565b8015620000ec57506064620000ea85640100000000620044476200024882021704565b105b1515620000f857600080fd5b620001118364010000000062003c116200020b82021704565b801562000136575060646200013484640100000000620044476200024882021704565b105b15156200014257600080fd5b600160a060020a03821615156200015857600080fd5b600160a060020a03851615156200016e57600080fd5b600160a060020a03811615156200018457600080fd5b6200019987876401000000006200029a810204565b60038054600160a060020a0319908116600160a060020a039a8b16179091556004805482169a8a169a909a17909955600893909355600b80548916948816949094179093556009556005805487169286169290921790915560068054909516931692909217909255506200033f915050565b600062000220640100000000620002e5810204565b82101580156200024257506200023e640100000000620002ea810204565b8211155b92915050565b60006200025e826401000000006200020b810204565b15156200026a57600080fd5b620002426200028164010000000062000307810204565b8390600a0a6401000000006200405f6200030c82021704565b60008211620002a857600080fd5b600160a060020a0381161515620002be57600080fd5b600791909155600a8054600160a060020a031916600160a060020a03909216919091179055565b600090565b6000620002ff64010000000062000322810204565b600a0a905090565b600290565b600081838115156200031a57fe5b049392505050565b60006200033764010000000062000307810204565b600201905090565b6144a4806200034f6000396000f3006080604052600436106101a85763ffffffff60e060020a60003504166307f5d63381146101ad57806311eb8c9f146101bd57806313096a41146101e957806314f66d341461021a578063208853c9146102485780632442e1cb146102725780632e325020146103a85780632fbe599014610499578063313602d4146104ae5780633baba4d7146104c35780634090cb64146104d857806343f48fbd146104ed57806354fd4d5014610502578063550fd742146105175780635641f3c31461057c578063564566a814610591578063715018a6146105a6578063792c02ea146105bb5780638119c065146105d0578063845ddcb2146105e55780638abdf5aa1461062e5780638aea2af8146106435780638da5cb5b146106965780638edd6eb6146106ab578063a035b1fe146106c0578063a4fd6f56146106d5578063b1356488146106ea578063b60d428814610718578063d250185c1461072d578063d5b226231461075f578063d6d65f3d146107bb578063daa4cf88146107d0578063e89e4ed6146107e5578063e93b0540146107fd578063f2fde38b14610815578063fc0c546a14610836575b600080fd5b6101bb60043560243561084b565b005b3480156101c957600080fd5b506101d5600435610a52565b604080519115158252519081900360200190f35b3480156101f557600080fd5b506101fe610a6b565b60408051600160a060020a039092168252519081900360200190f35b34801561022657600080fd5b5061022f610a7a565b6040805192835290151560208301528051918290030190f35b34801561025457600080fd5b50610260600435610aad565b60408051918252519081900360200190f35b34801561027e57600080fd5b5061028a600435610ba3565b604051808763ffffffff1663ffffffff1681526020018681526020018563ffffffff1663ffffffff1681526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019080838360005b838110156103075781810151838201526020016102ef565b50505050905090810190601f1680156103345780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b8381101561036757818101518382015260200161034f565b50505050905090810190601f1680156103945780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b3480156103b457600080fd5b506103c0600435610dd0565b604051808763ffffffff1663ffffffff1681526020018663ffffffff1663ffffffff1681526020018581526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015610440578181015183820152602001610428565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561047f578181015183820152602001610467565b505050509050019850505050505050505060405180910390f35b3480156104a557600080fd5b50610260610f76565b3480156104ba57600080fd5b506101bb610f7c565b3480156104cf57600080fd5b5061026061112b565b3480156104e457600080fd5b506101fe611132565b3480156104f957600080fd5b506101fe611141565b34801561050e57600080fd5b50610260611150565b34801561052357600080fd5b5061052c611156565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610568578181015183820152602001610550565b505050509050019250505060405180910390f35b34801561058857600080fd5b506101fe611167565b34801561059d57600080fd5b506101d5611176565b3480156105b257600080fd5b506101bb61118c565b3480156105c757600080fd5b506102606111fa565b3480156105dc57600080fd5b506101fe611200565b3480156105f157600080fd5b506105fd60043561120f565b6040805163ffffffff9586168152938516602085015283810192909252909216606082015290519081900360800190f35b34801561063a57600080fd5b50610260611255565b34801561064f57600080fd5b5061065e60043560243561125b565b604051808260a080838360005b8381101561068357818101518382015260200161066b565b5050505090500191505060405180910390f35b3480156106a257600080fd5b506101fe61171a565b3480156106b757600080fd5b506101fe611729565b3480156106cc57600080fd5b50610260611738565b3480156106e157600080fd5b506101d561173e565b3480156106f657600080fd5b506106ff611785565b6040805163ffffffff9092168252519081900360200190f35b34801561072457600080fd5b506101fe6117cc565b34801561073957600080fd5b506107486004356024356117db565b60408051825181529081908390808383602061066b565b34801561076b57600080fd5b506101bb602460048035828101929082013591813580830192908201359160443580830192908201359160643580830192908201359160843580830192908201359160a4359182019101356117fa565b3480156107c757600080fd5b5061022f611aff565b3480156107dc57600080fd5b5061022f611b7a565b3480156107f157600080fd5b5061028a600435611bfd565b34801561080957600080fd5b506101bb600435611d6b565b34801561082157600080fd5b506101bb600160a060020a0360043516611dd9565b34801561084257600080fd5b506101fe611df9565b60006108556141ac565b61085d6141cb565b60025460011461086c57600080fd5b60028055610878611176565b15156108e557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f53616c65206973206e6f74207374617274656420796574000000000000000000604482015290519081900360640190fd5b846108ee611e08565b14610983576006546040805160e460020a630b12e441028152600481018890529051600092600160a060020a03169163b12e441091602480830192602092919082900301818787803b15801561094357600080fd5b505af1158015610957573d6000803e3d6000fd5b505050506040513d602081101561096d57600080fd5b5051600160a060020a0316141561098357600080fd5b61098b611b7a565b509250610998858561125b565b805160208201519193506109ab916117db565b90506109b78186611e2c565b6109eb8282600e868154811015156109cb57fe5b600091825260209091206002600590920201015463ffffffff1688611f7a565b6109f68282876120b9565b8151602080840151606080860151604080519586529385019290925283830191909152905133927f347f5f0051b895093800553e6e78ef332849e2552639a4f5ffe66535788ae07892908290030190a250506001600255505050565b6000610a65600c8363ffffffff61237716565b92915050565b600454600160a060020a031681565b600f5460009081901580610a935750610a9161173e565b155b15610a9d57610aa9565b5050600f546000190160015b9091565b600080600080610abb611b7a565b92509250811515610acb57610b9b565b600e805484908110610ad957fe5b90600052602060002090600502019050610b988582600301805480602002602001604051908101604052809291908181526020018280548015610b3b57602002820191906000526020600020905b815481526020019060010190808311610b27575b505050505083600401805480602002602001604051908101604052809291908181526020018280548015610b8e57602002820191906000526020600020905b815481526020019060010190808311610b7a575b5050505050612390565b93505b505050919050565b600080600080606080600f87815481101515610bbb57fe5b6000918252602090912060059091020154600f805463ffffffff9092169189908110610be357fe5b906000526020600020906005020160010154600f89815481101515610c0457fe5b6000918252602090912060026005909202010154600f805463ffffffff909216918b908110610c2f57fe5b906000526020600020906005020160020160049054906101000a900463ffffffff16600f8b815481101515610c6057fe5b9060005260206000209060050201600301600f8c815481101515610c8057fe5b9060005260206000209060050201600401818054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d265780601f10610cfb57610100808354040283529160200191610d26565b820191906000526020600020905b815481529060010190602001808311610d0957829003601f168201915b5050845460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815295975086945092508401905082828015610db45780601f10610d8957610100808354040283529160200191610db4565b820191906000526020600020905b815481529060010190602001808311610d9757829003601f168201915b5050505050905095509550955095509550955091939550919395565b600080600080606080600e87815481101515610de857fe5b6000918252602090912060059091020154600e805463ffffffff9092169189908110610e1057fe5b906000526020600020906005020160000160049054906101000a900463ffffffff16600e89815481101515610e4157fe5b906000526020600020906005020160010154600e8a815481101515610e6257fe5b6000918252602090912060026005909202010154600e805463ffffffff909216918c908110610e8d57fe5b9060005260206000209060050201600301600e8c815481101515610ead57fe5b906000526020600020906005020160040181805480602002602001604051908101604052809291908181526020018280548015610f0957602002820191906000526020600020905b815481526020019060010190808311610ef5575b5050505050915080805480602002602001604051908101604052809291908181526020018280548015610db457602002820191906000526020600020905b815481526020019060010190808311610f47575050505050905095509550955095509550955091939550919395565b60095481565b600154600090600160a060020a03163314610f9657600080fd5b610f9e61173e565b1515610fa957600080fd5b600354604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b15801561100f57600080fd5b505af1158015611023573d6000803e3d6000fd5b505050506040513d602081101561103957600080fd5b5051600354600154604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a03928316600482015260248101859052905193945091169163a9059cbb916044808201926020929091908290030181600087803b1580156110af57600080fd5b505af11580156110c3573d6000803e3d6000fd5b505050506040513d60208110156110d957600080fd5b505115156110e657600080fd5b600154604080518381529051600160a060020a03909216917f26ffb867a6b19bc0240d4e732ed6cfb0f0b6d93143a99cfb24ba5873308861f89181900360200190a250565b600f545b90565b600354600160a060020a031690565b600654600160a060020a031681565b60005481565b6060611162600c6123ef565b905090565b600a54600160a060020a031681565b600080611181611b7a565b9150508091505b5090565b600154600160a060020a031633146111a357600080fd5b600154604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26001805473ffffffffffffffffffffffffffffffffffffffff19169055565b600e5490565b600b54600160a060020a031681565b600e80548290811061121d57fe5b600091825260209091206005909102018054600182015460029092015463ffffffff8083169450640100000000909204821692911684565b60085481565b6112636141ac565b60008061126e611b7a565b9150915080151561127e57611712565b84611287611e08565b1461131c576006546040805160e460020a630b12e441028152600481018890529051600092600160a060020a03169163b12e441091602480830192602092919082900301818787803b1580156112dc57600080fd5b505af11580156112f0573d6000803e3d6000fd5b505050506040513d602081101561130657600080fd5b5051600160a060020a0316141561131c57611712565b61170f8585600e8581548110151561133057fe5b906000526020600020906005020160010154600e8681548110151561135157fe5b90600052602060002090600502016003018054806020026020016040519081016040528092919081815260200182805480156113ac57602002820191906000526020600020905b815481526020019060010190808311611398575b5050505050600e878154811015156113c057fe5b906000526020600020906005020160040180548060200260200160405190810160405280929190818152602001828054801561141b57602002820191906000526020600020905b815481526020019060010190808311611407575b5050505050600660009054906101000a9004600160a060020a0316600160a060020a0316638eaa6ac08c6040518263ffffffff1660e060020a028152600401808260001916600019168152602001915050602060405180830381600087803b15801561148657600080fd5b505af115801561149a573d6000803e3d6000fd5b505050506040513d60208110156114b057600080fd5b5051600754600354604080517f313ce5670000000000000000000000000000000000000000000000000000000081529051600160a060020a039092169163313ce567916004808201926020929091908290030181600087803b15801561151557600080fd5b505af1158015611529573d6000803e3d6000fd5b505050506040513d602081101561153f57600080fd5b505160ff168d61154d611e08565b1461167557600660009054906101000a9004600160a060020a0316600160a060020a031663b12e44108f6040518263ffffffff1660e060020a028152600401808260001916600019168152602001915050602060405180830381600087803b1580156115b857600080fd5b505af11580156115cc573d6000803e3d6000fd5b505050506040513d60208110156115e257600080fd5b5051604080517f313ce5670000000000000000000000000000000000000000000000000000000081529051600160a060020a039092169163313ce567916004808201926020929091908290030181600087803b15801561164157600080fd5b505af1158015611655573d6000803e3d6000fd5b505050506040513d602081101561166b57600080fd5b505160ff16611678565b60125b600354604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b1580156116de57600080fd5b505af11580156116f2573d6000803e3d6000fd5b505050506040513d602081101561170857600080fd5b505161244c565b92505b505092915050565b600154600160a060020a031681565b600554600160a060020a031690565b60075481565b600e5460009015806111625750600e8054429190600019810190811061176057fe5b6000918252602090912060059091020154640100000000900463ffffffff1610919050565b600e54600090811061179657600080fd5b600e805460001981019081106117a857fe5b6000918252602090912060059091020154640100000000900463ffffffff16919050565b600554600160a060020a031681565b6117e36141cb565b6117f38383600854600954612887565b9392505050565b600154600090600160a060020a0316331461181457600080fd5b600e54600010156118515742600e600081548110151561183057fe5b600091825260209091206005909102015463ffffffff161161185157600080fd5b8b151561185d57600080fd5b60ff8c111561186b57600080fd5b60ff88111561187957600080fd5b60028604881461188857600080fd5b6002840488111561189857600080fd5b8115156118a457600080fd5b5060005b8181101561195057600654600160a060020a0316637d20abf88484848181106118cd57fe5b6040805160e060020a63ffffffff87160281526020928302949094013560048501525160248085019492935090918290030181600087803b15801561191157600080fd5b505af1158015611925573d6000803e3d6000fd5b505050506040513d602081101561193b57600080fd5b5051151561194857600080fd5b6001016118a8565b6119e98d8d808060200260200160405190810160405280939291908181526020016000905b828210156119b1576040805160c08181019092529080840287019060069083908390808284375050509183525050600190910190602001611975565b50505050508c8c80806020026020016040519081016040528093929190818152602001838360200280828437506128d2945050505050565b611ab08989808060200260200160405190810160405280939291908181526020016000905b82821015611a4a576040805160808181019092529080840287019060049083908390808284375050509183525050600190910190602001611a0e565b50505050508888808060200260200160405190810160405280939291908181526020018383602002808284375050604080516020601f8e018190048102820181019092528c815294508c93508b9250829150840183828082843750612ddb945050505050565b611af083838080602002602001604051908101604052809392919081815260200183836020028082843750600c9594505063ffffffff6133391692505050565b50505050505050505050505050565b600f5460009081901580611b185750611b1661173e565b155b15611b2257610aa9565b5060015b600f546000190182108015611b6a5750600f805483908110611b4457fe5b6000918252602090912060059091020160020154640100000000900463ffffffff164210155b15610aa957600190910190611b26565b60008080805b600e54821015611bef57600e805483908110611b9857fe5b6000918252602090912060059091020180549091504263ffffffff90911611801590611bd3575080544264010000000090910463ffffffff16115b15611be45781600193509350611bf7565b600190910190611b80565b600093508392505b50509091565b600f805482908110611c0b57fe5b60009182526020918290206005919091020180546001808301546002808501546003860180546040805161010097831615979097026000190190911693909304601f810189900489028601890190935282855263ffffffff9586169850929685821696640100000000909204909516949093929190830182828015611cd15780601f10611ca657610100808354040283529160200191611cd1565b820191906000526020600020905b815481529060010190602001808311611cb457829003601f168201915b5050505060048301805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152949594935090830182828015611d615780601f10611d3657610100808354040283529160200191611d61565b820191906000526020600020905b815481529060010190602001808311611d4457829003601f168201915b5050505050905086565b600154600160a060020a03163314611d8257600080fd5b600e5460001015611dbf5742600e6000815481101515611d9e57fe5b600091825260209091206005909102015463ffffffff1611611dbf57600080fd5b600a54611dd6908290600160a060020a031661340a565b50565b600154600160a060020a03163314611df057600080fd5b611dd681613460565b600354600160a060020a031681565b7f455448000000000000000000000000000000000000000000000000000000000090565b600654604080517fcfec719f000000000000000000000000000000000000000000000000000000008152600481018490529051611f769285928592600160a060020a039092169163cfec719f916024808201926020929091908290030181600087803b158015611e9b57600080fd5b505af1158015611eaf573d6000803e3d6000fd5b505050506040513d6020811015611ec557600080fd5b5051611ed2576000611f50565b6006546040805160e460020a630b12e441028152600481018790529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b158015611f2357600080fd5b505af1158015611f37573d6000803e3d6000fd5b505050506040513d6020811015611f4d57600080fd5b50515b600354600454600b54600a54600160a060020a03938416939283169291821691166134de565b5050565b600654604080517fcfec719f0000000000000000000000000000000000000000000000000000000081526004810184905290516120b3928792879287928792600160a060020a039091169163cfec719f916024808201926020929091908290030181600087803b158015611fed57600080fd5b505af1158015612001573d6000803e3d6000fd5b505050506040513d602081101561201757600080fd5b50516120245760006120a2565b6006546040805160e460020a630b12e441028152600481018990529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b15801561207557600080fd5b505af1158015612089573d6000803e3d6000fd5b505050506040513d602081101561209f57600080fd5b50515b600354600160a060020a031661386d565b50505050565b6120c1611e08565b81141561219557600554600160a060020a031663d0baf2f56120f984600160200201518660015b60200201519063ffffffff613b5d16565b855160208601513391908690612111908a60016120e8565b89600260200201516040805160e060020a63ffffffff8a16028152600160a060020a03909616600487015260248601949094526044850192909252606484015260848301525160a480830192600092919082900301818588803b15801561217757600080fd5b505af115801561218b573d6000803e3d6000fd5b5050505050612372565b6006546040805160e460020a630b12e441028152600481018490529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b1580156121e657600080fd5b505af11580156121fa573d6000803e3d6000fd5b505050506040513d602081101561221057600080fd5b5051600554600160a060020a039182169163a9059cbb911661223c8560015b60200201518760016120e8565b6040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801561228e57600080fd5b505af11580156122a2573d6000803e3d6000fd5b505050506040513d60208110156122b857600080fd5b505115156122c557600080fd5b600554600160a060020a031663d0baf2f5338560006020020151846122f387600160200201518960016120e8565b88600260200201516040805160e060020a63ffffffff8916028152600160a060020a03909616600487015260248601949094526044850192909252606484015260848301525160a480830192600092919082900301818387803b15801561235957600080fd5b505af115801561236d573d6000803e3d6000fd5b505050505b505050565b6000908152600191909101602052604090205460ff1690565b6000805b83518110156123e75783818151811015156123ab57fe5b6020908102909101015185106123da5782818151811015156123c957fe5b9060200190602002015191506123df565b6123e7565b600101612394565b509392505050565b60608160000180548060200260200160405190810160405280929190818152602001828054801561244057602002820191906000526020600020905b8154815260019091019060200180831161242b575b50505050509050919050565b6124546141ac565b60006124658c8c8989878a8a613b6f565b151561247057600080fd5b73__Utils_________________________________6376ba78988c868a6040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b1580156124d257600080fd5b505af41580156124e6573d6000803e3d6000fd5b505050506040513d60208110156124fc57600080fd5b50516040830181905286111561251157600080fd5b6040820151612521908a8a612390565b905060008a1161253157856125b7565b6125b78a73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b15801561257c57600080fd5b505af4158015612590573d6000803e3d6000fd5b505050506040513d60208110156125a657600080fd5b50518891900363ffffffff613bc716565b82600460200201818152505073__Utils_________________________________63a5a55fcf61266e6126638473__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b15801561262b57600080fd5b505af415801561263f573d6000803e3d6000fd5b505050506040513d602081101561265557600080fd5b50519063ffffffff613bf016565b604086015190613bfd565b8785600460200201516040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b1580156126bc57600080fd5b505af41580156126d0573d6000803e3d6000fd5b505050506040513d60208110156126e657600080fd5b50518083528310156127a5576080820151604080517f76ba7898000000000000000000000000000000000000000000000000000000008152600481018690526024810188905260448101929092525173__Utils_________________________________916376ba7898916064808301926020929190829003018186803b15801561277057600080fd5b505af4158015612784573d6000803e3d6000fd5b505050506040513d602081101561279a57600080fd5b505160408301528282525b73__Utils_________________________________63a5a55fcf8360026020020151868a6040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b15801561280e57600080fd5b505af4158015612822573d6000803e3d6000fd5b505050506040513d602081101561283857600080fd5b505160208301819052158061284c57508151155b156128635760008083526020830181905260408301525b6020820151612873908c90613b5d565b6060830152509a9950505050505050505050565b61288f6141cb565b60008311156128ab576128a8858463ffffffff613bfd16565b81525b60008211156128ca576128c4848363ffffffff613bfd16565b60208201525b949350505050565b600f5460009081101561292f578251839060001981019081106128f157fe5b6020908102919091018101510151600f8054600090811061290e57fe5b600091825260209091206005909102015463ffffffff161161292f57600080fd5b61293b600e60006141e6565b5060005b82518160ff161015612dad57825163ffffffff90849060ff841690811061296257fe5b602090810291909101015151111561297957600080fd5b825163ffffffff90849060ff841690811061299057fe5b602090810291909101810151015111156129a957600080fd5b825163ffffffff90849060ff84169081106129c057fe5b60209081029190910101516060015111156129da57600080fd5b825160ff9084908383169081106129ed57fe5b6020908102919091010151608001511115612a0757600080fd5b825160ff908490838316908110612a1a57fe5b602090810291909101015160a001511115612a3457600080fd5b42838260ff16815181101515612a4657fe5b60209081029190910101515111612a5c57600080fd5b828160ff16815181101515612a6d57fe5b60209081029190910181015101518351849060ff8416908110612a8c57fe5b60209081029190910101515110612aa257600080fd5b60008160ff161115612af957828160ff16815181101515612abf57fe5b6020908102919091010151518351849060ff600019850116908110612ae057fe5b60209081029190910181015101511115612af957600080fd5b612b24838260ff16815181101515612b0d57fe5b6020908102909101015160025b6020020151613c11565b1515612b2f57600080fd5b73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015612b7657600080fd5b505af4158015612b8a573d6000803e3d6000fd5b505050506040513d6020811015612ba057600080fd5b50518351849060ff8416908110612bb357fe5b60209081029190910101516040015110612bcc57600080fd5b600e60c060405190810160405280858460ff16815181101515612beb57fe5b6020908102919091018101515163ffffffff1682528651910190869060ff8616908110612c1457fe5b602090810290910101516001602002015163ffffffff168152602001858460ff16815181101515612c4157fe5b60209081029091010151600260200201518152602001858460ff16815181101515612c6857fe5b6020908102919091018101516060015163ffffffff16825260408051600080825281840183528484019190915281518181529283018252920191509052815460018082018085556000948552602094859020845160059094020180548587015163ffffffff1991821663ffffffff9687161767ffffffff000000001916640100000000918716919091021782556040860151938201939093556060850151600282018054909416941693909317909155608083015180519194612d3392600385019290910190614207565b5060a08201518051612d4f916004840191602090910190614207565b50505050612da56001600e8054905003848360ff16815181101515612d7057fe5b6020908102919091010151608001518551869060ff8616908110612d9057fe5b602090810291909101015160a0015185613c36565b60010161293f565b6040517f743961f4e677d1146fbf85d75565b1c5474fd083eb166f8b9595cf5d01a4d6e690600090a1505050565b6000806000806060806000600e805490501115612e4857886000815181101515612e0157fe5b602090810291909101015151600e80546000198101908110612e1f57fe5b6000918252602090912060059091020154640100000000900463ffffffff1610612e4857600080fd5b612e54600f600061424e565b600095506000945060009350600092505b88518360ff16101561328757885163ffffffff908a9060ff8616908110612e8857fe5b6020908102919091010151511115612e9f57600080fd5b885163ffffffff908a9060ff8616908110612eb657fe5b60209081029190910181015101511115612ecf57600080fd5b885163ffffffff908a9060ff8616908110612ee657fe5b6020908102919091010151604001511115612f0057600080fd5b42898460ff16815181101515612f1257fe5b60209081029190910101515111612f2857600080fd5b888360ff16815181101515612f3957fe5b60209081029190910101515189518a9060ff8616908110612f5657fe5b602090810291909101810151015111612f6e57600080fd5b888360ff16815181101515612f7f57fe5b602090810291909101810151015189518a9060ff8616908110612f9e57fe5b60209081029190910101516040015111612fb757600080fd5b60008360ff16111561300e57888360ff16815181101515612fd457fe5b60209081029190910101515189518a9060ff600019870116908110612ff557fe5b6020908102919091010151604001511061300e57600080fd5b613033898460ff1681518110151561302257fe5b602090810290910101516003612b1a565b151561303e57600080fd5b61307086898781518110151561305057fe5b9060200190602002015163ffffffff1689613fa39092919063ffffffff16565b91506130a2888681518110151561308357fe5b9060200190602002015163ffffffff1687613bf090919063ffffffff16565b95506130b986898760010181518110151561305057fe5b90506130cf888660010181518110151561308357fe5b95506130e285600263ffffffff613bf016565b945061310e898460ff168151811015156130f857fe5b6020908102919091010151606001518590613bf0565b9350600f60c0604051908101604052808b8660ff1681518110151561312f57fe5b6020908102919091018101515163ffffffff1682528c519101908c9060ff881690811061315857fe5b602090810290910101516003602002015181526020018b8660ff1681518110151561317f57fe5b602090810290910101516001602002015163ffffffff1681526020018b8660ff168151811015156131ac57fe5b6020908102909101015160026020908102919091015163ffffffff90811683528282018790526040928301869052845460018181018088556000978852968490208651600590930201805492841663ffffffff19938416178155868501519181019190915593850151600285018054606088015185166401000000000267ffffffff000000001993909516931692909217169190911790556080830151805161325b926003850192019061426f565b5060a0820151805161327791600484019160209091019061426f565b505060019094019350612e659050565b73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b1580156132ce57600080fd5b505af41580156132e2573d6000803e3d6000fd5b505050506040513d60208110156132f857600080fd5b5051841461330557600080fd5b6040517f56d9a2e016027a3725bf162ef2779c8b28d4dbec97c679cfba02dbb31a34c7ca90600090a1505050505050505050565b81546000901561339c575060005b825481101561339c576000836001016000856000018481548110151561336957fe5b60009182526020808320919091015483528201929092526040019020805460ff1916911515919091179055600101613347565b81516133ae90849060208501906142dc565b50815115612372575060005b815181101561237257600183600101600084848151811015156133d957fe5b6020908102919091018101518252810191909152604001600020805460ff19169115159190911790556001016133ba565b6000821161341757600080fd5b600160a060020a038116151561342c57600080fd5b600791909155600a805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600160a060020a038116151561347557600080fd5b600154604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a03831615156134f357600080fd5b600160a060020a038416151561350857600080fd5b600160a060020a038216151561351d57600080fd5b600160a060020a038116151561353257600080fd5b6020870151600010801561354d5750613549611e08565b8614155b1561356757600160a060020a038516151561356757600080fd5b8651600010156136c5578651604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152848116602483015260448201939093529051918516916323b872dd916064808201926020929091908290030181600087803b1580156135e857600080fd5b505af11580156135fc573d6000803e3d6000fd5b505050506040513d602081101561361257600080fd5b5051151561361f57600080fd5b8651604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152602482019390935290519186169163a9059cbb916044808201926020929091908290030181600087803b15801561368e57600080fd5b505af11580156136a2573d6000803e3d6000fd5b505050506040513d60208110156136b857600080fd5b505115156136c557600080fd5b60208701516000101561236d576136da611e08565b861415613720576020870151604051600160a060020a0383169180156108fc02916000818181858888f1935050505015801561371a573d6000803e3d6000fd5b5061236d565b602080880151604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290519192600160a060020a0389169263dd62ed3e9260448082019392918290030181600087803b15801561378c57600080fd5b505af11580156137a0573d6000803e3d6000fd5b505050506040513d60208110156137b657600080fd5b505110156137c357600080fd5b602080880151604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a03858116602483015260448201939093529051918816926323b872dd926064808401938290030181600087803b15801561383657600080fd5b505af115801561384a573d6000803e3d6000fd5b505050506040513d602081101561386057600080fd5b5051151561236d57600080fd5b600160a060020a038116151561388257600080fd5b8551151561388f57600080fd5b6020860151151561389f57600080fd5b84518651116138ad57600080fd5b60208086015190870151116138c157600080fd5b6138c9611e08565b8314156138e15760208601513410156138e157600080fd5b6138e9611e08565b8314613a5c57600160a060020a038216151561390457600080fd5b61390f85600161222f565b604080517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523360048201523060248201529051600160a060020a0385169163dd62ed3e9160448083019260209291908290030181600087803b15801561397657600080fd5b505af115801561398a573d6000803e3d6000fd5b505050506040513d60208110156139a057600080fd5b505110156139ad57600080fd5b600160a060020a0382166323b872dd33306139d189600160200201518b60016120e8565b6040805160e060020a63ffffffff8716028152600160a060020a0394851660048201529290931660248301526044820152905160648083019260209291908290030181600087803b158015613a2557600080fd5b505af1158015613a39573d6000803e3d6000fd5b505050506040513d6020811015613a4f57600080fd5b50511515613a5c57600080fd5b8551604080517f9d2e4777000000000000000000000000000000000000000000000000000000008152336004820152602481019290925263ffffffff8616604483015251600160a060020a03831691639d2e47779160648083019260209291908290030181600087803b158015613ad257600080fd5b505af1158015613ae6573d6000803e3d6000fd5b505050506040513d6020811015613afc57600080fd5b50511515613b0957600080fd5b606086015160001015613b5557613b1e611e08565b831415613b55576060860151604051339180156108fc02916000818181858888f1935050505015801561236d573d6000803e3d6000fd5b505050505050565b600082821115613b6957fe5b50900390565b60008087118015613b805750600086115b8015613b8c5750600085115b8015613b9b575082600a0a8410155b9050613ba5611e08565b881415613bbc57808015613bb95750816012145b90505b979650505050505050565b60006117f3613bd4614024565b613be4858563ffffffff61403616565b9063ffffffff61405f16565b81810182811015610a6557fe5b60006117f38383613c0c614024565b614074565b6000613c1b614190565b8210158015610a655750613c2d614024565b90911115919050565b606080600060ff8616158015613c4d575060ff8516155b15613cdb57604080516000815260208101909152600e805460ff8a16908110613c7257fe5b90600052602060002090600502016003019080519060200190613c96929190614207565b50604080516000815260208101909152600e805460ff8a16908110613cb757fe5b9060005260206000209060050201600401908051906020019061371a929190614207565b835160ff86161115613cec57600080fd5b60ff80861690871610613cfe57600080fd5b6001861615613d0c57600080fd5b6001851615613d1a57600080fd5b600260ff878703160460ff16604051908082528060200260200182016040528015613d4f578160200160208202803883390190505b509250600260ff878703160460ff16604051908082528060200260200182016040528015613d87578160200160208202803883390190505b509150600090505b8460ff168660ff161015613f2a57613dc3848760010160ff16815181101515613db457fe5b90602001906020020151613c11565b1515613dce57600080fd5b73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015613e1557600080fd5b505af4158015613e29573d6000803e3d6000fd5b505050506040513d6020811015613e3f57600080fd5b50518451859060ff60018a0116908110613e5557fe5b6020908102909101015110613e6957600080fd5b6000811115613eb257838660ff16815181101515613e8357fe5b906020019060200201518360018303815181101515613e9e57fe5b6020908102909101015110613eb257600080fd5b838660ff16815181101515613ec357fe5b906020019060200201518382815181101515613edb57fe5b602090810290910101528351849060ff6001890116908110613ef957fe5b906020019060200201518282815181101515613f1157fe5b6020908102909101015260029590950194600101613d8f565b82600e8860ff16815481101515613f3d57fe5b90600052602060002090600502016003019080519060200190613f61929190614207565b5081600e8860ff16815481101515613f7557fe5b90600052602060002090600502016004019080519060200190613f99929190614207565b5050505050505050565b606080828401855110151515613fb857600080fd5b82158015613fd15760405191506020820160405261401b565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561400a578051835260209283019201613ff2565b5050858452601f01601f1916604052505b50949350505050565b600061402e614195565b600a0a905090565b600082151561404757506000610a65565b5081810281838281151561405757fe5b0414610a6557fe5b6000818381151561406c57fe5b049392505050565b60008080808085151561408357fe5b87158061408e575086155b1561409857614185565b6140aa6000198863ffffffff61405f16565b92508288116140ce576140c786613be48a8a63ffffffff61403616565b9450614185565b858814156140de57869450614185565b858714156140ee57879450614185565b871561416f578783116141015782614103565b875b9150614115828863ffffffff61403616565b905061413761412a828863ffffffff61405f16565b869063ffffffff613bf016565b9450614156868281151561414757fe5b8691900663ffffffff613bf016565b9350614168888363ffffffff613b5d16565b97506140ee565b61418261412a858863ffffffff61405f16565b94505b505050509392505050565b600090565b600061419f6141a7565b600201905090565b600290565b60a0604051908101604052806005906020820280388339509192915050565b60408051808201825290600290829080388339509192915050565b5080546000825560050290600052602060002090810190611dd69190614319565b828054828255906000526020600020908101928215614242579160200282015b82811115614242578251825591602001919060010190614227565b50611188929150614372565b5080546000825560050290600052602060002090810190611dd6919061438c565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106142b057805160ff1916838001178555614242565b828001600101855582156142425791820182811115614242578251825591602001919060010190614227565b828054828255906000526020600020908101928215614242579160200282015b8281111561424257825182556020909201916001909101906142fc565b61112f91905b8082111561118857805467ffffffffffffffff1916815560006001820181905560028201805463ffffffff1916905561435b60038301826143e5565b6143696004830160006143e5565b5060050161431f565b61112f91905b808211156111885760008155600101614378565b61112f91905b8082111561118857805463ffffffff1916815560006001820181905560028201805467ffffffffffffffff191690556143ce6003830182614403565b6143dc600483016000614403565b50600501614392565b5080546000825590600052602060002090810190611dd69190614372565b50805460018160011615610100020316600290046000825580601f106144295750611dd6565b601f016020900490600052602060002090810190611dd69190614372565b600061445282613c11565b151561445d57600080fd5b610a656144686141a7565b8390600a0a63ffffffff61405f165600a165627a7a723058202342b88ad61b0780c18df5bad6bf46006e8ba44f4e4efd9edf7cf615b579c9400029a165627a7a72305820b947665d3415e55ae94b66d80b0eeb1c79263f4271b00b38923f10e444ac27a50029", + "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", + "sourcePath": "/home/circleci/code/contracts/crowdsale/factories/W12CrowdsaleFactory.sol", "ast": { - "absolutePath": "/home/circleci/code/contracts/W12CrowdsaleFactory.sol", + "absolutePath": "/home/circleci/code/contracts/crowdsale/factories/W12CrowdsaleFactory.sol", "exportedSymbols": { "W12CrowdsaleFactory": [ - 1931 + 4605 ] }, - "id": 1932, + "id": 4606, "nodeType": "SourceUnit", "nodes": [ { - "id": 1811, + "id": 4468, "literals": [ "solidity", "^", @@ -134,49 +138,60 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:2" + "src": "0:24:9" }, { - "absolutePath": "/home/circleci/code/contracts/interfaces/IW12CrowdsaleFactory.sol", - "file": "./interfaces/IW12CrowdsaleFactory.sol", - "id": 1812, + "absolutePath": "/home/circleci/code/contracts/crowdsale/factories/IW12CrowdsaleFactory.sol", + "file": "./IW12CrowdsaleFactory.sol", + "id": 4469, "nodeType": "ImportDirective", - "scope": 1932, - "sourceUnit": 4454, - "src": "26:47:2", + "scope": 4606, + "sourceUnit": 4452, + "src": "26:36:9", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/home/circleci/code/contracts/interfaces/IW12FundFactory.sol", - "file": "./interfaces/IW12FundFactory.sol", - "id": 1813, + "absolutePath": "/home/circleci/code/contracts/crowdsale/factories/IW12FundFactory.sol", + "file": "./IW12FundFactory.sol", + "id": 4470, "nodeType": "ImportDirective", - "scope": 1932, - "sourceUnit": 4500, - "src": "74:42:2", + "scope": 4606, + "sourceUnit": 4467, + "src": "63:31:9", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/home/circleci/code/contracts/W12Crowdsale.sol", - "file": "./W12Crowdsale.sol", - "id": 1814, + "absolutePath": "/home/circleci/code/contracts/rates/IRates.sol", + "file": "../../rates/IRates.sol", + "id": 4471, "nodeType": "ImportDirective", - "scope": 1932, - "sourceUnit": 1810, - "src": "117:28:2", + "scope": 4606, + "sourceUnit": 7016, + "src": "95:32:9", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/versioning/Versionable.sol", - "file": "./versioning/Versionable.sol", - "id": 1815, + "file": "../../versioning/Versionable.sol", + "id": 4472, + "nodeType": "ImportDirective", + "scope": 4606, + "sourceUnit": 9071, + "src": "128:42:9", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/crowdsale/W12Crowdsale.sol", + "file": "../W12Crowdsale.sol", + "id": 4473, "nodeType": "ImportDirective", - "scope": 1932, - "sourceUnit": 6510, - "src": "146:38:2", + "scope": 4606, + "sourceUnit": 3169, + "src": "171:29:9", "symbolAliases": [], "unitAlias": "" }, @@ -186,102 +201,130 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1816, + "id": 4474, "name": "Versionable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6509, - "src": "219:11:2", + "referencedDeclaration": 9070, + "src": "234:11:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_Versionable_$6509", + "typeIdentifier": "t_contract$_Versionable_$9070", "typeString": "contract Versionable" } }, - "id": 1817, + "id": 4475, "nodeType": "InheritanceSpecifier", - "src": "219:11:2" + "src": "234:11:9" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 1818, + "id": 4476, "name": "IW12CrowdsaleFactory", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4453, - "src": "232:20:2", + "referencedDeclaration": 4451, + "src": "247:20:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4453", + "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4451", "typeString": "contract IW12CrowdsaleFactory" } }, - "id": 1819, + "id": 4477, "nodeType": "InheritanceSpecifier", - "src": "232:20:2" + "src": "247:20:9" } ], "contractDependencies": [ - 1809, - 4453, - 6509 + 3168, + 4451, + 9070 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 1931, + "id": 4605, "linearizedBaseContracts": [ - 1931, - 4453, - 6509 + 4605, + 4451, + 9070 ], "name": "W12CrowdsaleFactory", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 1821, + "id": 4479, "name": "fundFactory", "nodeType": "VariableDeclaration", - "scope": 1931, - "src": "259:35:2", + "scope": 4605, + "src": "274:35:9", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12FundFactory_$4499", + "typeIdentifier": "t_contract$_IW12FundFactory_$4466", "typeString": "contract IW12FundFactory" }, "typeName": { "contractScope": null, - "id": 1820, + "id": 4478, "name": "IW12FundFactory", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4499, - "src": "259:15:2", + "referencedDeclaration": 4466, + "src": "274:15:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12FundFactory_$4499", + "typeIdentifier": "t_contract$_IW12FundFactory_$4466", "typeString": "contract IW12FundFactory" } }, "value": null, "visibility": "private" }, + { + "constant": false, + "id": 4481, + "name": "rates", + "nodeType": "VariableDeclaration", + "scope": 4605, + "src": "315:20:9", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + }, + "typeName": { + "contractScope": null, + "id": 4480, + "name": "IRates", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7015, + "src": "315:6:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "value": null, + "visibility": "private" + }, { "anonymous": false, "documentation": null, - "id": 1831, + "id": 4491, "name": "CrowdsaleCreated", "nodeType": "EventDefinition", "parameters": { - "id": 1830, + "id": 4490, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1823, + "id": 4483, "indexed": true, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 1831, - "src": "324:21:2", + "scope": 4491, + "src": "365:21:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -289,10 +332,10 @@ "typeString": "address" }, "typeName": { - "id": 1822, + "id": 4482, "name": "address", "nodeType": "ElementaryTypeName", - "src": "324:7:2", + "src": "365:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -303,12 +346,12 @@ }, { "constant": false, - "id": 1825, + "id": 4485, "indexed": true, "name": "token", "nodeType": "VariableDeclaration", - "scope": 1831, - "src": "347:21:2", + "scope": 4491, + "src": "388:21:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -316,10 +359,10 @@ "typeString": "address" }, "typeName": { - "id": 1824, + "id": 4484, "name": "address", "nodeType": "ElementaryTypeName", - "src": "347:7:2", + "src": "388:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -330,12 +373,12 @@ }, { "constant": false, - "id": 1827, + "id": 4487, "indexed": false, "name": "crowdsaleAddress", "nodeType": "VariableDeclaration", - "scope": 1831, - "src": "370:24:2", + "scope": 4491, + "src": "411:24:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -343,10 +386,10 @@ "typeString": "address" }, "typeName": { - "id": 1826, + "id": 4486, "name": "address", "nodeType": "ElementaryTypeName", - "src": "370:7:2", + "src": "411:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -357,12 +400,12 @@ }, { "constant": false, - "id": 1829, + "id": 4489, "indexed": false, "name": "fundAddress", "nodeType": "VariableDeclaration", - "scope": 1831, - "src": "396:19:2", + "scope": 4491, + "src": "437:19:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -370,10 +413,10 @@ "typeString": "address" }, "typeName": { - "id": 1828, + "id": 4488, "name": "address", "nodeType": "ElementaryTypeName", - "src": "396:7:2", + "src": "437:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -383,15 +426,15 @@ "visibility": "internal" } ], - "src": "323:93:2" + "src": "364:93:9" }, - "src": "301:116:2" + "src": "342:116:9" }, { "body": { - "id": 1854, + "id": 4527, "nodeType": "Block", - "src": "507:117:2", + "src": "563:152:9", "statements": [ { "expression": { @@ -403,21 +446,21 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1846, + "id": 4508, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1842, + "id": 4504, "name": "_fundFactory", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1835, - "src": "525:12:2", + "referencedDeclaration": 4495, + "src": "581:12:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12FundFactory_$4499", + "typeIdentifier": "t_contract$_IW12FundFactory_$4466", "typeString": "contract IW12FundFactory" } }, @@ -429,14 +472,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 1844, + "id": 4506, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "549:1:2", + "src": "605:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -452,20 +495,20 @@ "typeString": "int_const 0" } ], - "id": 1843, + "id": 4505, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "541:7:2", + "src": "597:7:9", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1845, + "id": 4507, "isConstant": false, "isLValue": false, "isPure": true, @@ -473,35 +516,149 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "541:10:2", + "src": "597:10:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "525:26:2", + "src": "581:26:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - }, + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4503, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "573:7:9", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4509, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "573:35:9", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4510, + "nodeType": "ExpressionStatement", + "src": "573:35:9" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ { "argumentTypes": null, - "hexValue": "466163746f72792061646472657373207265717569726564", - "id": 1847, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 4516, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "string", + "isPure": false, "lValueRequested": false, - "nodeType": "Literal", - "src": "553:26:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_adf2e71ccba8452b8fcf30f7710251d4c5cfb962ac9a0ca1a94ea22dbe36846c", - "typeString": "literal_string \"Factory address required\"" + "leftExpression": { + "argumentTypes": null, + "id": 4512, + "name": "_rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4497, + "src": "626:6:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } }, - "value": "Factory address required" + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 4514, + "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": 4513, + "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": 4515, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "636:10:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "626:20:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } } ], "expression": { @@ -509,27 +666,23 @@ { "typeIdentifier": "t_bool", "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_adf2e71ccba8452b8fcf30f7710251d4c5cfb962ac9a0ca1a94ea22dbe36846c", - "typeString": "literal_string \"Factory address required\"" } ], - "id": 1841, + "id": 4511, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7298, - "src": "517:7:2", + "referencedDeclaration": 10045, + "src": "618:7:9", "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": 1848, + "id": 4517, "isConstant": false, "isLValue": false, "isPure": false, @@ -537,34 +690,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "517:63:2", + "src": "618:29:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1849, + "id": 4518, "nodeType": "ExpressionStatement", - "src": "517:63:2" + "src": "618:29:9" }, { "expression": { "argumentTypes": null, - "id": 1852, + "id": 4521, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1850, + "id": 4519, "name": "fundFactory", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1821, - "src": "591:11:2", + "referencedDeclaration": 4479, + "src": "658:11:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12FundFactory_$4499", + "typeIdentifier": "t_contract$_IW12FundFactory_$4466", "typeString": "contract IW12FundFactory" } }, @@ -572,31 +725,77 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1851, + "id": 4520, "name": "_fundFactory", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1835, - "src": "605:12:2", + "referencedDeclaration": 4495, + "src": "672:12:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12FundFactory_$4499", + "typeIdentifier": "t_contract$_IW12FundFactory_$4466", "typeString": "contract IW12FundFactory" } }, - "src": "591:26:2", + "src": "658:26:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12FundFactory_$4499", + "typeIdentifier": "t_contract$_IW12FundFactory_$4466", "typeString": "contract IW12FundFactory" } }, - "id": 1853, + "id": 4522, + "nodeType": "ExpressionStatement", + "src": "658:26:9" + }, + { + "expression": { + "argumentTypes": null, + "id": 4525, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4523, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4481, + "src": "694:5:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4524, + "name": "_rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4497, + "src": "702:6:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "src": "694:14:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "id": 4526, "nodeType": "ExpressionStatement", - "src": "591:26:2" + "src": "694:14:9" } ] }, "documentation": null, - "id": 1855, + "id": 4528, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -605,49 +804,49 @@ "arguments": [ { "argumentTypes": null, - "id": 1838, + "id": 4500, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1833, - "src": "491:7:2", + "referencedDeclaration": 4493, + "src": "547:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 1839, + "id": 4501, "modifierName": { "argumentTypes": null, - "id": 1837, + "id": 4499, "name": "Versionable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6509, - "src": "479:11:2", + "referencedDeclaration": 9070, + "src": "535:11:9", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Versionable_$6509_$", + "typeIdentifier": "t_type$_t_contract$_Versionable_$9070_$", "typeString": "type(contract Versionable)" } }, "nodeType": "ModifierInvocation", - "src": "479:20:2" + "src": "535:20:9" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 1836, + "id": 4498, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1833, + "id": 4493, "name": "version", "nodeType": "VariableDeclaration", - "scope": 1855, - "src": "435:12:2", + "scope": 4528, + "src": "476:12:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -655,10 +854,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1832, + "id": 4492, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "435:4:2", + "src": "476:4:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -669,81 +868,109 @@ }, { "constant": false, - "id": 1835, + "id": 4495, "name": "_fundFactory", "nodeType": "VariableDeclaration", - "scope": 1855, - "src": "449:28:2", + "scope": 4528, + "src": "490:28:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12FundFactory_$4499", + "typeIdentifier": "t_contract$_IW12FundFactory_$4466", "typeString": "contract IW12FundFactory" }, "typeName": { "contractScope": null, - "id": 1834, + "id": 4494, "name": "IW12FundFactory", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4499, - "src": "449:15:2", + "referencedDeclaration": 4466, + "src": "490:15:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12FundFactory_$4499", + "typeIdentifier": "t_contract$_IW12FundFactory_$4466", "typeString": "contract IW12FundFactory" } }, "value": null, "visibility": "internal" + }, + { + "constant": false, + "id": 4497, + "name": "_rates", + "nodeType": "VariableDeclaration", + "scope": 4528, + "src": "520:13:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + }, + "typeName": { + "contractScope": null, + "id": 4496, + "name": "IRates", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7015, + "src": "520:6:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "value": null, + "visibility": "internal" } ], - "src": "434:44:2" + "src": "475:59:9" }, "payable": false, "returnParameters": { - "id": 1840, + "id": 4502, "nodeType": "ParameterList", "parameters": [], - "src": "507:0:2" + "src": "563:0:9" }, - "scope": 1931, - "src": "423:201:2", + "scope": 4605, + "src": "464:251:9", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1929, + "id": 4603, "nodeType": "Block", - "src": "962:549:2", + "src": "1053:568:9", "statements": [ { "assignments": [ - 1879 + 4552 ], "declarations": [ { "constant": false, - "id": 1879, + "id": 4552, "name": "fund", "nodeType": "VariableDeclaration", - "scope": 1930, - "src": "972:13:2", + "scope": 4604, + "src": "1063:13:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", + "typeIdentifier": "t_contract$_IW12Fund_$1241", "typeString": "contract IW12Fund" }, "typeName": { "contractScope": null, - "id": 1878, + "id": 4551, "name": "IW12Fund", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4484, - "src": "972:8:2", + "referencedDeclaration": 1241, + "src": "1063:8:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", + "typeIdentifier": "t_contract$_IW12Fund_$1241", "typeString": "contract IW12Fund" } }, @@ -751,18 +978,18 @@ "visibility": "internal" } ], - "id": 1886, + "id": 4559, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1882, + "id": 4555, "name": "swap", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "1011:4:2", + "referencedDeclaration": 4544, + "src": "1102:4:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -770,12 +997,12 @@ }, { "argumentTypes": null, - "id": 1883, + "id": 4556, "name": "serviceWallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1863, - "src": "1017:13:2", + "referencedDeclaration": 4536, + "src": "1108:13:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -783,12 +1010,12 @@ }, { "argumentTypes": null, - "id": 1884, + "id": 4557, "name": "trancheFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1869, - "src": "1032:17:2", + "referencedDeclaration": 4542, + "src": "1123:17:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -812,32 +1039,32 @@ ], "expression": { "argumentTypes": null, - "id": 1880, + "id": 4553, "name": "fundFactory", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1821, - "src": "988:11:2", + "referencedDeclaration": 4479, + "src": "1079:11:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12FundFactory_$4499", + "typeIdentifier": "t_contract$_IW12FundFactory_$4466", "typeString": "contract IW12FundFactory" } }, - "id": 1881, + "id": 4554, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "createFund", "nodeType": "MemberAccess", - "referencedDeclaration": 4498, - "src": "988:22:2", + "referencedDeclaration": 4465, + "src": "1079:22:9", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_contract$_IW12Fund_$4484_$", + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_contract$_IW12Fund_$1241_$", "typeString": "function (address,address,uint256) external returns (contract IW12Fund)" } }, - "id": 1885, + "id": 4558, "isConstant": false, "isLValue": false, "isPure": false, @@ -845,33 +1072,33 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "988:62:2", + "src": "1079:62:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", + "typeIdentifier": "t_contract$_IW12Fund_$1241", "typeString": "contract IW12Fund" } }, "nodeType": "VariableDeclarationStatement", - "src": "972:78:2" + "src": "1063:78:9" }, { "expression": { "argumentTypes": null, - "id": 1900, + "id": 4574, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1887, + "id": 4560, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1876, - "src": "1061:6:2", + "referencedDeclaration": 4549, + "src": "1152:6:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } }, @@ -882,12 +1109,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1890, + "id": 4563, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6498, - "src": "1100:7:2", + "referencedDeclaration": 9059, + "src": "1191:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -895,12 +1122,12 @@ }, { "argumentTypes": null, - "id": 1891, + "id": 4564, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1857, - "src": "1121:12:2", + "referencedDeclaration": 4530, + "src": "1212:12:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -908,12 +1135,12 @@ }, { "argumentTypes": null, - "id": 1892, + "id": 4565, "name": "wTokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1859, - "src": "1147:13:2", + "referencedDeclaration": 4532, + "src": "1238:13:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -921,12 +1148,12 @@ }, { "argumentTypes": null, - "id": 1893, + "id": 4566, "name": "price", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1861, - "src": "1174:5:2", + "referencedDeclaration": 4534, + "src": "1265:5:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -934,12 +1161,12 @@ }, { "argumentTypes": null, - "id": 1894, + "id": 4567, "name": "serviceWallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1863, - "src": "1193:13:2", + "referencedDeclaration": 4536, + "src": "1284:13:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -947,12 +1174,12 @@ }, { "argumentTypes": null, - "id": 1895, + "id": 4568, "name": "swap", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "1220:4:2", + "referencedDeclaration": 4544, + "src": "1311:4:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -960,12 +1187,12 @@ }, { "argumentTypes": null, - "id": 1896, + "id": 4569, "name": "serviceFee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1865, - "src": "1238:10:2", + "referencedDeclaration": 4538, + "src": "1329:10:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -973,12 +1200,12 @@ }, { "argumentTypes": null, - "id": 1897, + "id": 4570, "name": "WTokenSaleFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1867, - "src": "1262:20:2", + "referencedDeclaration": 4540, + "src": "1353:20:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -986,16 +1213,29 @@ }, { "argumentTypes": null, - "id": 1898, + "id": 4571, "name": "fund", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1879, - "src": "1296:4:2", + "referencedDeclaration": 4552, + "src": "1387:4:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", + "typeIdentifier": "t_contract$_IW12Fund_$1241", "typeString": "contract IW12Fund" } + }, + { + "argumentTypes": null, + "id": 4572, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4481, + "src": "1405:5:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } } ], "expression": { @@ -1033,35 +1273,39 @@ "typeString": "uint256" }, { - "typeIdentifier": "t_contract$_IW12Fund_$4484", + "typeIdentifier": "t_contract$_IW12Fund_$1241", "typeString": "contract IW12Fund" + }, + { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" } ], - "id": 1889, + "id": 4562, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "NewExpression", - "src": "1070:16:2", + "src": "1161:16:9", "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_$4484_$returns$_t_contract$_W12Crowdsale_$1809_$", - "typeString": "function (uint256,address,address,uint256,address,address,uint256,uint256,contract IW12Fund) returns (contract W12Crowdsale)" + "typeIdentifier": "t_function_creation_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_uint256_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_contract$_IW12Fund_$1241_$_t_contract$_IRates_$7015_$returns$_t_contract$_W12Crowdsale_$3168_$", + "typeString": "function (uint256,address,address,uint256,address,address,uint256,uint256,contract IW12Fund,contract IRates) returns (contract W12Crowdsale)" }, "typeName": { "contractScope": null, - "id": 1888, + "id": 4561, "name": "W12Crowdsale", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1809, - "src": "1074:12:2", + "referencedDeclaration": 3168, + "src": "1165:12:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_W12Crowdsale_$1809", + "typeIdentifier": "t_contract$_W12Crowdsale_$3168", "typeString": "contract W12Crowdsale" } } }, - "id": 1899, + "id": 4573, "isConstant": false, "isLValue": false, "isPure": false, @@ -1069,21 +1313,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1070:240:2", + "src": "1161:259:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_W12Crowdsale_$1809", + "typeIdentifier": "t_contract$_W12Crowdsale_$3168", "typeString": "contract W12Crowdsale" } }, - "src": "1061:249:2", + "src": "1152:268:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } }, - "id": 1901, + "id": 4575, "nodeType": "ExpressionStatement", - "src": "1061:249:2" + "src": "1152:268:9" }, { "expression": { @@ -1091,12 +1335,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1905, + "id": 4579, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1873, - "src": "1346:5:2", + "referencedDeclaration": 4546, + "src": "1456:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1112,32 +1356,32 @@ ], "expression": { "argumentTypes": null, - "id": 1902, + "id": 4576, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1876, - "src": "1321:6:2", + "referencedDeclaration": 4549, + "src": "1431:6:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } }, - "id": 1904, + "id": 4578, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transferOwnership", "nodeType": "MemberAccess", - "referencedDeclaration": 4425, - "src": "1321:24:2", + "referencedDeclaration": 1203, + "src": "1431:24:9", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", "typeString": "function (address) external" } }, - "id": 1906, + "id": 4580, "isConstant": false, "isLValue": false, "isPure": false, @@ -1145,15 +1389,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1321:31:2", + "src": "1431:31:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1907, + "id": 4581, "nodeType": "ExpressionStatement", - "src": "1321:31:2" + "src": "1431:31:9" }, { "expression": { @@ -1161,14 +1405,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1911, + "id": 4585, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1876, - "src": "1381:6:2", + "referencedDeclaration": 4549, + "src": "1491:6:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } } @@ -1176,38 +1420,38 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } ], "expression": { "argumentTypes": null, - "id": 1908, + "id": 4582, "name": "fund", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1879, - "src": "1363:4:2", + "referencedDeclaration": 4552, + "src": "1473:4:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", + "typeIdentifier": "t_contract$_IW12Fund_$1241", "typeString": "contract IW12Fund" } }, - "id": 1910, + "id": 4584, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "setCrowdsale", "nodeType": "MemberAccess", - "referencedDeclaration": 4461, - "src": "1363:17:2", + "referencedDeclaration": 1212, + "src": "1473:17:9", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_contract$_IW12Crowdsale_$4426_$returns$__$", + "typeIdentifier": "t_function_external_nonpayable$_t_contract$_IW12Crowdsale_$1204_$returns$__$", "typeString": "function (contract IW12Crowdsale) external" } }, - "id": 1912, + "id": 4586, "isConstant": false, "isLValue": false, "isPure": false, @@ -1215,15 +1459,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1363:25:2", + "src": "1473:25:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1913, + "id": 4587, "nodeType": "ExpressionStatement", - "src": "1363:25:2" + "src": "1473:25:9" }, { "expression": { @@ -1231,12 +1475,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1917, + "id": 4591, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1873, - "src": "1421:5:2", + "referencedDeclaration": 4546, + "src": "1531:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1252,32 +1496,32 @@ ], "expression": { "argumentTypes": null, - "id": 1914, + "id": 4588, "name": "fund", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1879, - "src": "1398:4:2", + "referencedDeclaration": 4552, + "src": "1508:4:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", + "typeIdentifier": "t_contract$_IW12Fund_$1241", "typeString": "contract IW12Fund" } }, - "id": 1916, + "id": 4590, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transferOwnership", "nodeType": "MemberAccess", - "referencedDeclaration": 4476, - "src": "1398:22:2", + "referencedDeclaration": 1227, + "src": "1508:22:9", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", "typeString": "function (address) external" } }, - "id": 1918, + "id": 4592, "isConstant": false, "isLValue": false, "isPure": false, @@ -1285,15 +1529,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1398:29:2", + "src": "1508:29:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1919, + "id": 4593, "nodeType": "ExpressionStatement", - "src": "1398:29:2" + "src": "1508:29:9" }, { "eventCall": { @@ -1301,12 +1545,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1921, + "id": 4595, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1873, - "src": "1460:5:2", + "referencedDeclaration": 4546, + "src": "1570:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1314,12 +1558,12 @@ }, { "argumentTypes": null, - "id": 1922, + "id": 4596, "name": "wTokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1859, - "src": "1467:13:2", + "referencedDeclaration": 4532, + "src": "1577:13:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1330,14 +1574,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1924, + "id": 4598, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1876, - "src": "1490:6:2", + "referencedDeclaration": 4549, + "src": "1600:6:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } } @@ -1345,24 +1589,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } ], - "id": 1923, + "id": 4597, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1482:7:2", + "src": "1592:7:9", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1925, + "id": 4599, "isConstant": false, "isLValue": false, "isPure": false, @@ -1370,7 +1614,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1482:15:2", + "src": "1592:15:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1378,14 +1622,14 @@ }, { "argumentTypes": null, - "id": 1926, + "id": 4600, "name": "fund", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1879, - "src": "1499:4:2", + "referencedDeclaration": 4552, + "src": "1609:4:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", + "typeIdentifier": "t_contract$_IW12Fund_$1241", "typeString": "contract IW12Fund" } } @@ -1405,22 +1649,22 @@ "typeString": "address" }, { - "typeIdentifier": "t_contract$_IW12Fund_$4484", + "typeIdentifier": "t_contract$_IW12Fund_$1241", "typeString": "contract IW12Fund" } ], - "id": 1920, + "id": 4594, "name": "CrowdsaleCreated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1831, - "src": "1443:16:2", + "referencedDeclaration": 4491, + "src": "1553:16:9", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address,address,address)" } }, - "id": 1927, + "id": 4601, "isConstant": false, "isLValue": false, "isPure": false, @@ -1428,20 +1672,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1443:61:2", + "src": "1553:61:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1928, + "id": 4602, "nodeType": "EmitStatement", - "src": "1438:66:2" + "src": "1548:66:9" } ] }, "documentation": null, - "id": 1930, + "id": 4604, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1449,16 +1693,16 @@ "name": "createCrowdsale", "nodeType": "FunctionDefinition", "parameters": { - "id": 1874, + "id": 4547, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1857, + "id": 4530, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 1930, - "src": "664:20:2", + "scope": 4604, + "src": "755:20:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1466,10 +1710,10 @@ "typeString": "address" }, "typeName": { - "id": 1856, + "id": 4529, "name": "address", "nodeType": "ElementaryTypeName", - "src": "664:7:2", + "src": "755:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1480,11 +1724,11 @@ }, { "constant": false, - "id": 1859, + "id": 4532, "name": "wTokenAddress", "nodeType": "VariableDeclaration", - "scope": 1930, - "src": "694:21:2", + "scope": 4604, + "src": "785:21:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1492,10 +1736,10 @@ "typeString": "address" }, "typeName": { - "id": 1858, + "id": 4531, "name": "address", "nodeType": "ElementaryTypeName", - "src": "694:7:2", + "src": "785:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1506,11 +1750,11 @@ }, { "constant": false, - "id": 1861, + "id": 4534, "name": "price", "nodeType": "VariableDeclaration", - "scope": 1930, - "src": "725:10:2", + "scope": 4604, + "src": "816:10:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1518,10 +1762,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1860, + "id": 4533, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "725:4:2", + "src": "816:4:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1532,11 +1776,11 @@ }, { "constant": false, - "id": 1863, + "id": 4536, "name": "serviceWallet", "nodeType": "VariableDeclaration", - "scope": 1930, - "src": "745:21:2", + "scope": 4604, + "src": "836:21:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1544,10 +1788,10 @@ "typeString": "address" }, "typeName": { - "id": 1862, + "id": 4535, "name": "address", "nodeType": "ElementaryTypeName", - "src": "745:7:2", + "src": "836:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1558,11 +1802,11 @@ }, { "constant": false, - "id": 1865, + "id": 4538, "name": "serviceFee", "nodeType": "VariableDeclaration", - "scope": 1930, - "src": "776:15:2", + "scope": 4604, + "src": "867:15:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1570,10 +1814,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1864, + "id": 4537, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "776:4:2", + "src": "867:4:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1584,11 +1828,11 @@ }, { "constant": false, - "id": 1867, + "id": 4540, "name": "WTokenSaleFeePercent", "nodeType": "VariableDeclaration", - "scope": 1930, - "src": "801:25:2", + "scope": 4604, + "src": "892:25:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1596,10 +1840,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1866, + "id": 4539, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "801:4:2", + "src": "892:4:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1610,11 +1854,11 @@ }, { "constant": false, - "id": 1869, + "id": 4542, "name": "trancheFeePercent", "nodeType": "VariableDeclaration", - "scope": 1930, - "src": "836:22:2", + "scope": 4604, + "src": "927:22:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1622,10 +1866,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1868, + "id": 4541, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "836:4:2", + "src": "927:4:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1636,11 +1880,11 @@ }, { "constant": false, - "id": 1871, + "id": 4544, "name": "swap", "nodeType": "VariableDeclaration", - "scope": 1930, - "src": "868:12:2", + "scope": 4604, + "src": "959:12:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1648,10 +1892,10 @@ "typeString": "address" }, "typeName": { - "id": 1870, + "id": 4543, "name": "address", "nodeType": "ElementaryTypeName", - "src": "868:7:2", + "src": "959:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1662,11 +1906,11 @@ }, { "constant": false, - "id": 1873, + "id": 4546, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 1930, - "src": "890:13:2", + "scope": 4604, + "src": "981:13:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1674,10 +1918,10 @@ "typeString": "address" }, "typeName": { - "id": 1872, + "id": 4545, "name": "address", "nodeType": "ElementaryTypeName", - "src": "890:7:2", + "src": "981:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1687,35 +1931,35 @@ "visibility": "internal" } ], - "src": "654:255:2" + "src": "745:255:9" }, "payable": false, "returnParameters": { - "id": 1877, + "id": 4550, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1876, + "id": 4549, "name": "result", "nodeType": "VariableDeclaration", - "scope": 1930, - "src": "936:20:2", + "scope": 4604, + "src": "1027:20:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" }, "typeName": { "contractScope": null, - "id": 1875, + "id": 4548, "name": "IW12Crowdsale", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4426, - "src": "936:13:2", + "referencedDeclaration": 1204, + "src": "1027:13:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } }, @@ -1723,33 +1967,33 @@ "visibility": "internal" } ], - "src": "935:22:2" + "src": "1026:22:9" }, - "scope": 1931, - "src": "630:881:2", + "scope": 4605, + "src": "721:900:9", "stateMutability": "nonpayable", - "superFunction": 4452, + "superFunction": 4450, "visibility": "external" } ], - "scope": 1932, - "src": "187:1326:2" + "scope": 4606, + "src": "202:1421:9" } ], - "src": "0:1514:2" + "src": "0:1624:9" }, "legacyAST": { - "absolutePath": "/home/circleci/code/contracts/W12CrowdsaleFactory.sol", + "absolutePath": "/home/circleci/code/contracts/crowdsale/factories/W12CrowdsaleFactory.sol", "exportedSymbols": { "W12CrowdsaleFactory": [ - 1931 + 4605 ] }, - "id": 1932, + "id": 4606, "nodeType": "SourceUnit", "nodes": [ { - "id": 1811, + "id": 4468, "literals": [ "solidity", "^", @@ -1757,49 +2001,60 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:2" + "src": "0:24:9" }, { - "absolutePath": "/home/circleci/code/contracts/interfaces/IW12CrowdsaleFactory.sol", - "file": "./interfaces/IW12CrowdsaleFactory.sol", - "id": 1812, + "absolutePath": "/home/circleci/code/contracts/crowdsale/factories/IW12CrowdsaleFactory.sol", + "file": "./IW12CrowdsaleFactory.sol", + "id": 4469, "nodeType": "ImportDirective", - "scope": 1932, - "sourceUnit": 4454, - "src": "26:47:2", + "scope": 4606, + "sourceUnit": 4452, + "src": "26:36:9", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/home/circleci/code/contracts/interfaces/IW12FundFactory.sol", - "file": "./interfaces/IW12FundFactory.sol", - "id": 1813, + "absolutePath": "/home/circleci/code/contracts/crowdsale/factories/IW12FundFactory.sol", + "file": "./IW12FundFactory.sol", + "id": 4470, "nodeType": "ImportDirective", - "scope": 1932, - "sourceUnit": 4500, - "src": "74:42:2", + "scope": 4606, + "sourceUnit": 4467, + "src": "63:31:9", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/home/circleci/code/contracts/W12Crowdsale.sol", - "file": "./W12Crowdsale.sol", - "id": 1814, + "absolutePath": "/home/circleci/code/contracts/rates/IRates.sol", + "file": "../../rates/IRates.sol", + "id": 4471, "nodeType": "ImportDirective", - "scope": 1932, - "sourceUnit": 1810, - "src": "117:28:2", + "scope": 4606, + "sourceUnit": 7016, + "src": "95:32:9", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/versioning/Versionable.sol", - "file": "./versioning/Versionable.sol", - "id": 1815, + "file": "../../versioning/Versionable.sol", + "id": 4472, + "nodeType": "ImportDirective", + "scope": 4606, + "sourceUnit": 9071, + "src": "128:42:9", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/crowdsale/W12Crowdsale.sol", + "file": "../W12Crowdsale.sol", + "id": 4473, "nodeType": "ImportDirective", - "scope": 1932, - "sourceUnit": 6510, - "src": "146:38:2", + "scope": 4606, + "sourceUnit": 3169, + "src": "171:29:9", "symbolAliases": [], "unitAlias": "" }, @@ -1809,102 +2064,130 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1816, + "id": 4474, "name": "Versionable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6509, - "src": "219:11:2", + "referencedDeclaration": 9070, + "src": "234:11:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_Versionable_$6509", + "typeIdentifier": "t_contract$_Versionable_$9070", "typeString": "contract Versionable" } }, - "id": 1817, + "id": 4475, "nodeType": "InheritanceSpecifier", - "src": "219:11:2" + "src": "234:11:9" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 1818, + "id": 4476, "name": "IW12CrowdsaleFactory", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4453, - "src": "232:20:2", + "referencedDeclaration": 4451, + "src": "247:20:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4453", + "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4451", "typeString": "contract IW12CrowdsaleFactory" } }, - "id": 1819, + "id": 4477, "nodeType": "InheritanceSpecifier", - "src": "232:20:2" + "src": "247:20:9" } ], "contractDependencies": [ - 1809, - 4453, - 6509 + 3168, + 4451, + 9070 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 1931, + "id": 4605, "linearizedBaseContracts": [ - 1931, - 4453, - 6509 + 4605, + 4451, + 9070 ], "name": "W12CrowdsaleFactory", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 1821, + "id": 4479, "name": "fundFactory", "nodeType": "VariableDeclaration", - "scope": 1931, - "src": "259:35:2", + "scope": 4605, + "src": "274:35:9", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12FundFactory_$4499", + "typeIdentifier": "t_contract$_IW12FundFactory_$4466", "typeString": "contract IW12FundFactory" }, "typeName": { "contractScope": null, - "id": 1820, + "id": 4478, "name": "IW12FundFactory", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4499, - "src": "259:15:2", + "referencedDeclaration": 4466, + "src": "274:15:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12FundFactory_$4499", + "typeIdentifier": "t_contract$_IW12FundFactory_$4466", "typeString": "contract IW12FundFactory" } }, "value": null, "visibility": "private" }, + { + "constant": false, + "id": 4481, + "name": "rates", + "nodeType": "VariableDeclaration", + "scope": 4605, + "src": "315:20:9", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + }, + "typeName": { + "contractScope": null, + "id": 4480, + "name": "IRates", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7015, + "src": "315:6:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "value": null, + "visibility": "private" + }, { "anonymous": false, "documentation": null, - "id": 1831, + "id": 4491, "name": "CrowdsaleCreated", "nodeType": "EventDefinition", "parameters": { - "id": 1830, + "id": 4490, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1823, + "id": 4483, "indexed": true, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 1831, - "src": "324:21:2", + "scope": 4491, + "src": "365:21:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1912,10 +2195,10 @@ "typeString": "address" }, "typeName": { - "id": 1822, + "id": 4482, "name": "address", "nodeType": "ElementaryTypeName", - "src": "324:7:2", + "src": "365:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1926,12 +2209,12 @@ }, { "constant": false, - "id": 1825, + "id": 4485, "indexed": true, "name": "token", "nodeType": "VariableDeclaration", - "scope": 1831, - "src": "347:21:2", + "scope": 4491, + "src": "388:21:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1939,10 +2222,10 @@ "typeString": "address" }, "typeName": { - "id": 1824, + "id": 4484, "name": "address", "nodeType": "ElementaryTypeName", - "src": "347:7:2", + "src": "388:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1953,12 +2236,12 @@ }, { "constant": false, - "id": 1827, + "id": 4487, "indexed": false, "name": "crowdsaleAddress", "nodeType": "VariableDeclaration", - "scope": 1831, - "src": "370:24:2", + "scope": 4491, + "src": "411:24:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1966,10 +2249,10 @@ "typeString": "address" }, "typeName": { - "id": 1826, + "id": 4486, "name": "address", "nodeType": "ElementaryTypeName", - "src": "370:7:2", + "src": "411:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1980,12 +2263,12 @@ }, { "constant": false, - "id": 1829, + "id": 4489, "indexed": false, "name": "fundAddress", "nodeType": "VariableDeclaration", - "scope": 1831, - "src": "396:19:2", + "scope": 4491, + "src": "437:19:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1993,10 +2276,10 @@ "typeString": "address" }, "typeName": { - "id": 1828, + "id": 4488, "name": "address", "nodeType": "ElementaryTypeName", - "src": "396:7:2", + "src": "437:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2006,15 +2289,15 @@ "visibility": "internal" } ], - "src": "323:93:2" + "src": "364:93:9" }, - "src": "301:116:2" + "src": "342:116:9" }, { "body": { - "id": 1854, + "id": 4527, "nodeType": "Block", - "src": "507:117:2", + "src": "563:152:9", "statements": [ { "expression": { @@ -2026,21 +2309,21 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1846, + "id": 4508, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1842, + "id": 4504, "name": "_fundFactory", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1835, - "src": "525:12:2", + "referencedDeclaration": 4495, + "src": "581:12:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12FundFactory_$4499", + "typeIdentifier": "t_contract$_IW12FundFactory_$4466", "typeString": "contract IW12FundFactory" } }, @@ -2052,14 +2335,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 1844, + "id": 4506, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "549:1:2", + "src": "605:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2075,20 +2358,20 @@ "typeString": "int_const 0" } ], - "id": 1843, + "id": 4505, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "541:7:2", + "src": "597:7:9", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1845, + "id": 4507, "isConstant": false, "isLValue": false, "isPure": true, @@ -2096,35 +2379,149 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "541:10:2", + "src": "597:10:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "525:26:2", + "src": "581:26:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - }, + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4503, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "573:7:9", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4509, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "573:35:9", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4510, + "nodeType": "ExpressionStatement", + "src": "573:35:9" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ { "argumentTypes": null, - "hexValue": "466163746f72792061646472657373207265717569726564", - "id": 1847, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 4516, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "string", + "isPure": false, "lValueRequested": false, - "nodeType": "Literal", - "src": "553:26:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_adf2e71ccba8452b8fcf30f7710251d4c5cfb962ac9a0ca1a94ea22dbe36846c", - "typeString": "literal_string \"Factory address required\"" + "leftExpression": { + "argumentTypes": null, + "id": 4512, + "name": "_rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4497, + "src": "626:6:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 4514, + "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": 4513, + "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": 4515, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "636:10:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } }, - "value": "Factory address required" + "src": "626:20:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } } ], "expression": { @@ -2132,27 +2529,23 @@ { "typeIdentifier": "t_bool", "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_adf2e71ccba8452b8fcf30f7710251d4c5cfb962ac9a0ca1a94ea22dbe36846c", - "typeString": "literal_string \"Factory address required\"" } ], - "id": 1841, + "id": 4511, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7298, - "src": "517:7:2", + "referencedDeclaration": 10045, + "src": "618:7:9", "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": 1848, + "id": 4517, "isConstant": false, "isLValue": false, "isPure": false, @@ -2160,34 +2553,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "517:63:2", + "src": "618:29:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1849, + "id": 4518, "nodeType": "ExpressionStatement", - "src": "517:63:2" + "src": "618:29:9" }, { "expression": { "argumentTypes": null, - "id": 1852, + "id": 4521, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1850, + "id": 4519, "name": "fundFactory", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1821, - "src": "591:11:2", + "referencedDeclaration": 4479, + "src": "658:11:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12FundFactory_$4499", + "typeIdentifier": "t_contract$_IW12FundFactory_$4466", "typeString": "contract IW12FundFactory" } }, @@ -2195,31 +2588,77 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1851, + "id": 4520, "name": "_fundFactory", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1835, - "src": "605:12:2", + "referencedDeclaration": 4495, + "src": "672:12:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12FundFactory_$4499", + "typeIdentifier": "t_contract$_IW12FundFactory_$4466", "typeString": "contract IW12FundFactory" } }, - "src": "591:26:2", + "src": "658:26:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12FundFactory_$4499", + "typeIdentifier": "t_contract$_IW12FundFactory_$4466", "typeString": "contract IW12FundFactory" } }, - "id": 1853, + "id": 4522, + "nodeType": "ExpressionStatement", + "src": "658:26:9" + }, + { + "expression": { + "argumentTypes": null, + "id": 4525, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4523, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4481, + "src": "694:5:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4524, + "name": "_rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4497, + "src": "702:6:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "src": "694:14:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "id": 4526, "nodeType": "ExpressionStatement", - "src": "591:26:2" + "src": "694:14:9" } ] }, "documentation": null, - "id": 1855, + "id": 4528, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -2228,49 +2667,49 @@ "arguments": [ { "argumentTypes": null, - "id": 1838, + "id": 4500, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1833, - "src": "491:7:2", + "referencedDeclaration": 4493, + "src": "547:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 1839, + "id": 4501, "modifierName": { "argumentTypes": null, - "id": 1837, + "id": 4499, "name": "Versionable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6509, - "src": "479:11:2", + "referencedDeclaration": 9070, + "src": "535:11:9", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Versionable_$6509_$", + "typeIdentifier": "t_type$_t_contract$_Versionable_$9070_$", "typeString": "type(contract Versionable)" } }, "nodeType": "ModifierInvocation", - "src": "479:20:2" + "src": "535:20:9" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 1836, + "id": 4498, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1833, + "id": 4493, "name": "version", "nodeType": "VariableDeclaration", - "scope": 1855, - "src": "435:12:2", + "scope": 4528, + "src": "476:12:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2278,10 +2717,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1832, + "id": 4492, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "435:4:2", + "src": "476:4:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2292,81 +2731,109 @@ }, { "constant": false, - "id": 1835, + "id": 4495, "name": "_fundFactory", "nodeType": "VariableDeclaration", - "scope": 1855, - "src": "449:28:2", + "scope": 4528, + "src": "490:28:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12FundFactory_$4499", + "typeIdentifier": "t_contract$_IW12FundFactory_$4466", "typeString": "contract IW12FundFactory" }, "typeName": { "contractScope": null, - "id": 1834, + "id": 4494, "name": "IW12FundFactory", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4499, - "src": "449:15:2", + "referencedDeclaration": 4466, + "src": "490:15:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12FundFactory_$4499", + "typeIdentifier": "t_contract$_IW12FundFactory_$4466", "typeString": "contract IW12FundFactory" } }, "value": null, "visibility": "internal" + }, + { + "constant": false, + "id": 4497, + "name": "_rates", + "nodeType": "VariableDeclaration", + "scope": 4528, + "src": "520:13:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + }, + "typeName": { + "contractScope": null, + "id": 4496, + "name": "IRates", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7015, + "src": "520:6:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "value": null, + "visibility": "internal" } ], - "src": "434:44:2" + "src": "475:59:9" }, "payable": false, "returnParameters": { - "id": 1840, + "id": 4502, "nodeType": "ParameterList", "parameters": [], - "src": "507:0:2" + "src": "563:0:9" }, - "scope": 1931, - "src": "423:201:2", + "scope": 4605, + "src": "464:251:9", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1929, + "id": 4603, "nodeType": "Block", - "src": "962:549:2", + "src": "1053:568:9", "statements": [ { "assignments": [ - 1879 + 4552 ], "declarations": [ { "constant": false, - "id": 1879, + "id": 4552, "name": "fund", "nodeType": "VariableDeclaration", - "scope": 1930, - "src": "972:13:2", + "scope": 4604, + "src": "1063:13:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", + "typeIdentifier": "t_contract$_IW12Fund_$1241", "typeString": "contract IW12Fund" }, "typeName": { "contractScope": null, - "id": 1878, + "id": 4551, "name": "IW12Fund", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4484, - "src": "972:8:2", + "referencedDeclaration": 1241, + "src": "1063:8:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", + "typeIdentifier": "t_contract$_IW12Fund_$1241", "typeString": "contract IW12Fund" } }, @@ -2374,18 +2841,18 @@ "visibility": "internal" } ], - "id": 1886, + "id": 4559, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1882, + "id": 4555, "name": "swap", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "1011:4:2", + "referencedDeclaration": 4544, + "src": "1102:4:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2393,12 +2860,12 @@ }, { "argumentTypes": null, - "id": 1883, + "id": 4556, "name": "serviceWallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1863, - "src": "1017:13:2", + "referencedDeclaration": 4536, + "src": "1108:13:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2406,12 +2873,12 @@ }, { "argumentTypes": null, - "id": 1884, + "id": 4557, "name": "trancheFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1869, - "src": "1032:17:2", + "referencedDeclaration": 4542, + "src": "1123:17:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2435,32 +2902,32 @@ ], "expression": { "argumentTypes": null, - "id": 1880, + "id": 4553, "name": "fundFactory", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1821, - "src": "988:11:2", + "referencedDeclaration": 4479, + "src": "1079:11:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12FundFactory_$4499", + "typeIdentifier": "t_contract$_IW12FundFactory_$4466", "typeString": "contract IW12FundFactory" } }, - "id": 1881, + "id": 4554, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "createFund", "nodeType": "MemberAccess", - "referencedDeclaration": 4498, - "src": "988:22:2", + "referencedDeclaration": 4465, + "src": "1079:22:9", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_contract$_IW12Fund_$4484_$", + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_contract$_IW12Fund_$1241_$", "typeString": "function (address,address,uint256) external returns (contract IW12Fund)" } }, - "id": 1885, + "id": 4558, "isConstant": false, "isLValue": false, "isPure": false, @@ -2468,33 +2935,33 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "988:62:2", + "src": "1079:62:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", + "typeIdentifier": "t_contract$_IW12Fund_$1241", "typeString": "contract IW12Fund" } }, "nodeType": "VariableDeclarationStatement", - "src": "972:78:2" + "src": "1063:78:9" }, { "expression": { "argumentTypes": null, - "id": 1900, + "id": 4574, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1887, + "id": 4560, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1876, - "src": "1061:6:2", + "referencedDeclaration": 4549, + "src": "1152:6:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } }, @@ -2505,12 +2972,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1890, + "id": 4563, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6498, - "src": "1100:7:2", + "referencedDeclaration": 9059, + "src": "1191:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2518,12 +2985,12 @@ }, { "argumentTypes": null, - "id": 1891, + "id": 4564, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1857, - "src": "1121:12:2", + "referencedDeclaration": 4530, + "src": "1212:12:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2531,12 +2998,12 @@ }, { "argumentTypes": null, - "id": 1892, + "id": 4565, "name": "wTokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1859, - "src": "1147:13:2", + "referencedDeclaration": 4532, + "src": "1238:13:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2544,12 +3011,12 @@ }, { "argumentTypes": null, - "id": 1893, + "id": 4566, "name": "price", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1861, - "src": "1174:5:2", + "referencedDeclaration": 4534, + "src": "1265:5:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2557,12 +3024,12 @@ }, { "argumentTypes": null, - "id": 1894, + "id": 4567, "name": "serviceWallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1863, - "src": "1193:13:2", + "referencedDeclaration": 4536, + "src": "1284:13:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2570,12 +3037,12 @@ }, { "argumentTypes": null, - "id": 1895, + "id": 4568, "name": "swap", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "1220:4:2", + "referencedDeclaration": 4544, + "src": "1311:4:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2583,12 +3050,12 @@ }, { "argumentTypes": null, - "id": 1896, + "id": 4569, "name": "serviceFee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1865, - "src": "1238:10:2", + "referencedDeclaration": 4538, + "src": "1329:10:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2596,12 +3063,12 @@ }, { "argumentTypes": null, - "id": 1897, + "id": 4570, "name": "WTokenSaleFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1867, - "src": "1262:20:2", + "referencedDeclaration": 4540, + "src": "1353:20:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2609,16 +3076,29 @@ }, { "argumentTypes": null, - "id": 1898, + "id": 4571, "name": "fund", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1879, - "src": "1296:4:2", + "referencedDeclaration": 4552, + "src": "1387:4:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", + "typeIdentifier": "t_contract$_IW12Fund_$1241", "typeString": "contract IW12Fund" } + }, + { + "argumentTypes": null, + "id": 4572, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4481, + "src": "1405:5:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } } ], "expression": { @@ -2656,35 +3136,39 @@ "typeString": "uint256" }, { - "typeIdentifier": "t_contract$_IW12Fund_$4484", + "typeIdentifier": "t_contract$_IW12Fund_$1241", "typeString": "contract IW12Fund" + }, + { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" } ], - "id": 1889, + "id": 4562, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "NewExpression", - "src": "1070:16:2", + "src": "1161:16:9", "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_$4484_$returns$_t_contract$_W12Crowdsale_$1809_$", - "typeString": "function (uint256,address,address,uint256,address,address,uint256,uint256,contract IW12Fund) returns (contract W12Crowdsale)" + "typeIdentifier": "t_function_creation_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_uint256_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_contract$_IW12Fund_$1241_$_t_contract$_IRates_$7015_$returns$_t_contract$_W12Crowdsale_$3168_$", + "typeString": "function (uint256,address,address,uint256,address,address,uint256,uint256,contract IW12Fund,contract IRates) returns (contract W12Crowdsale)" }, "typeName": { "contractScope": null, - "id": 1888, + "id": 4561, "name": "W12Crowdsale", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1809, - "src": "1074:12:2", + "referencedDeclaration": 3168, + "src": "1165:12:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_W12Crowdsale_$1809", + "typeIdentifier": "t_contract$_W12Crowdsale_$3168", "typeString": "contract W12Crowdsale" } } }, - "id": 1899, + "id": 4573, "isConstant": false, "isLValue": false, "isPure": false, @@ -2692,21 +3176,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1070:240:2", + "src": "1161:259:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_W12Crowdsale_$1809", + "typeIdentifier": "t_contract$_W12Crowdsale_$3168", "typeString": "contract W12Crowdsale" } }, - "src": "1061:249:2", + "src": "1152:268:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } }, - "id": 1901, + "id": 4575, "nodeType": "ExpressionStatement", - "src": "1061:249:2" + "src": "1152:268:9" }, { "expression": { @@ -2714,12 +3198,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1905, + "id": 4579, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1873, - "src": "1346:5:2", + "referencedDeclaration": 4546, + "src": "1456:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2735,32 +3219,32 @@ ], "expression": { "argumentTypes": null, - "id": 1902, + "id": 4576, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1876, - "src": "1321:6:2", + "referencedDeclaration": 4549, + "src": "1431:6:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } }, - "id": 1904, + "id": 4578, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transferOwnership", "nodeType": "MemberAccess", - "referencedDeclaration": 4425, - "src": "1321:24:2", + "referencedDeclaration": 1203, + "src": "1431:24:9", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", "typeString": "function (address) external" } }, - "id": 1906, + "id": 4580, "isConstant": false, "isLValue": false, "isPure": false, @@ -2768,15 +3252,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1321:31:2", + "src": "1431:31:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1907, + "id": 4581, "nodeType": "ExpressionStatement", - "src": "1321:31:2" + "src": "1431:31:9" }, { "expression": { @@ -2784,14 +3268,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1911, + "id": 4585, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1876, - "src": "1381:6:2", + "referencedDeclaration": 4549, + "src": "1491:6:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } } @@ -2799,38 +3283,38 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } ], "expression": { "argumentTypes": null, - "id": 1908, + "id": 4582, "name": "fund", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1879, - "src": "1363:4:2", + "referencedDeclaration": 4552, + "src": "1473:4:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", + "typeIdentifier": "t_contract$_IW12Fund_$1241", "typeString": "contract IW12Fund" } }, - "id": 1910, + "id": 4584, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "setCrowdsale", "nodeType": "MemberAccess", - "referencedDeclaration": 4461, - "src": "1363:17:2", + "referencedDeclaration": 1212, + "src": "1473:17:9", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_contract$_IW12Crowdsale_$4426_$returns$__$", + "typeIdentifier": "t_function_external_nonpayable$_t_contract$_IW12Crowdsale_$1204_$returns$__$", "typeString": "function (contract IW12Crowdsale) external" } }, - "id": 1912, + "id": 4586, "isConstant": false, "isLValue": false, "isPure": false, @@ -2838,15 +3322,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1363:25:2", + "src": "1473:25:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1913, + "id": 4587, "nodeType": "ExpressionStatement", - "src": "1363:25:2" + "src": "1473:25:9" }, { "expression": { @@ -2854,12 +3338,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1917, + "id": 4591, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1873, - "src": "1421:5:2", + "referencedDeclaration": 4546, + "src": "1531:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2875,32 +3359,32 @@ ], "expression": { "argumentTypes": null, - "id": 1914, + "id": 4588, "name": "fund", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1879, - "src": "1398:4:2", + "referencedDeclaration": 4552, + "src": "1508:4:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", + "typeIdentifier": "t_contract$_IW12Fund_$1241", "typeString": "contract IW12Fund" } }, - "id": 1916, + "id": 4590, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transferOwnership", "nodeType": "MemberAccess", - "referencedDeclaration": 4476, - "src": "1398:22:2", + "referencedDeclaration": 1227, + "src": "1508:22:9", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", "typeString": "function (address) external" } }, - "id": 1918, + "id": 4592, "isConstant": false, "isLValue": false, "isPure": false, @@ -2908,15 +3392,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1398:29:2", + "src": "1508:29:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1919, + "id": 4593, "nodeType": "ExpressionStatement", - "src": "1398:29:2" + "src": "1508:29:9" }, { "eventCall": { @@ -2924,12 +3408,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1921, + "id": 4595, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1873, - "src": "1460:5:2", + "referencedDeclaration": 4546, + "src": "1570:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2937,12 +3421,12 @@ }, { "argumentTypes": null, - "id": 1922, + "id": 4596, "name": "wTokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1859, - "src": "1467:13:2", + "referencedDeclaration": 4532, + "src": "1577:13:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2953,14 +3437,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1924, + "id": 4598, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1876, - "src": "1490:6:2", + "referencedDeclaration": 4549, + "src": "1600:6:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } } @@ -2968,24 +3452,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } ], - "id": 1923, + "id": 4597, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1482:7:2", + "src": "1592:7:9", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1925, + "id": 4599, "isConstant": false, "isLValue": false, "isPure": false, @@ -2993,7 +3477,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1482:15:2", + "src": "1592:15:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3001,14 +3485,14 @@ }, { "argumentTypes": null, - "id": 1926, + "id": 4600, "name": "fund", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1879, - "src": "1499:4:2", + "referencedDeclaration": 4552, + "src": "1609:4:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", + "typeIdentifier": "t_contract$_IW12Fund_$1241", "typeString": "contract IW12Fund" } } @@ -3028,22 +3512,22 @@ "typeString": "address" }, { - "typeIdentifier": "t_contract$_IW12Fund_$4484", + "typeIdentifier": "t_contract$_IW12Fund_$1241", "typeString": "contract IW12Fund" } ], - "id": 1920, + "id": 4594, "name": "CrowdsaleCreated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1831, - "src": "1443:16:2", + "referencedDeclaration": 4491, + "src": "1553:16:9", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address,address,address)" } }, - "id": 1927, + "id": 4601, "isConstant": false, "isLValue": false, "isPure": false, @@ -3051,20 +3535,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1443:61:2", + "src": "1553:61:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1928, + "id": 4602, "nodeType": "EmitStatement", - "src": "1438:66:2" + "src": "1548:66:9" } ] }, "documentation": null, - "id": 1930, + "id": 4604, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -3072,16 +3556,16 @@ "name": "createCrowdsale", "nodeType": "FunctionDefinition", "parameters": { - "id": 1874, + "id": 4547, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1857, + "id": 4530, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 1930, - "src": "664:20:2", + "scope": 4604, + "src": "755:20:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3089,10 +3573,10 @@ "typeString": "address" }, "typeName": { - "id": 1856, + "id": 4529, "name": "address", "nodeType": "ElementaryTypeName", - "src": "664:7:2", + "src": "755:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3103,11 +3587,11 @@ }, { "constant": false, - "id": 1859, + "id": 4532, "name": "wTokenAddress", "nodeType": "VariableDeclaration", - "scope": 1930, - "src": "694:21:2", + "scope": 4604, + "src": "785:21:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3115,10 +3599,10 @@ "typeString": "address" }, "typeName": { - "id": 1858, + "id": 4531, "name": "address", "nodeType": "ElementaryTypeName", - "src": "694:7:2", + "src": "785:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3129,11 +3613,11 @@ }, { "constant": false, - "id": 1861, + "id": 4534, "name": "price", "nodeType": "VariableDeclaration", - "scope": 1930, - "src": "725:10:2", + "scope": 4604, + "src": "816:10:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3141,10 +3625,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1860, + "id": 4533, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "725:4:2", + "src": "816:4:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3155,11 +3639,11 @@ }, { "constant": false, - "id": 1863, + "id": 4536, "name": "serviceWallet", "nodeType": "VariableDeclaration", - "scope": 1930, - "src": "745:21:2", + "scope": 4604, + "src": "836:21:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3167,10 +3651,10 @@ "typeString": "address" }, "typeName": { - "id": 1862, + "id": 4535, "name": "address", "nodeType": "ElementaryTypeName", - "src": "745:7:2", + "src": "836:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3181,11 +3665,11 @@ }, { "constant": false, - "id": 1865, + "id": 4538, "name": "serviceFee", "nodeType": "VariableDeclaration", - "scope": 1930, - "src": "776:15:2", + "scope": 4604, + "src": "867:15:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3193,10 +3677,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1864, + "id": 4537, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "776:4:2", + "src": "867:4:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3207,11 +3691,11 @@ }, { "constant": false, - "id": 1867, + "id": 4540, "name": "WTokenSaleFeePercent", "nodeType": "VariableDeclaration", - "scope": 1930, - "src": "801:25:2", + "scope": 4604, + "src": "892:25:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3219,10 +3703,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1866, + "id": 4539, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "801:4:2", + "src": "892:4:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3233,11 +3717,11 @@ }, { "constant": false, - "id": 1869, + "id": 4542, "name": "trancheFeePercent", "nodeType": "VariableDeclaration", - "scope": 1930, - "src": "836:22:2", + "scope": 4604, + "src": "927:22:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3245,10 +3729,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1868, + "id": 4541, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "836:4:2", + "src": "927:4:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3259,11 +3743,11 @@ }, { "constant": false, - "id": 1871, + "id": 4544, "name": "swap", "nodeType": "VariableDeclaration", - "scope": 1930, - "src": "868:12:2", + "scope": 4604, + "src": "959:12:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3271,10 +3755,10 @@ "typeString": "address" }, "typeName": { - "id": 1870, + "id": 4543, "name": "address", "nodeType": "ElementaryTypeName", - "src": "868:7:2", + "src": "959:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3285,11 +3769,11 @@ }, { "constant": false, - "id": 1873, + "id": 4546, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 1930, - "src": "890:13:2", + "scope": 4604, + "src": "981:13:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3297,10 +3781,10 @@ "typeString": "address" }, "typeName": { - "id": 1872, + "id": 4545, "name": "address", "nodeType": "ElementaryTypeName", - "src": "890:7:2", + "src": "981:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3310,35 +3794,35 @@ "visibility": "internal" } ], - "src": "654:255:2" + "src": "745:255:9" }, "payable": false, "returnParameters": { - "id": 1877, + "id": 4550, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1876, + "id": 4549, "name": "result", "nodeType": "VariableDeclaration", - "scope": 1930, - "src": "936:20:2", + "scope": 4604, + "src": "1027:20:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" }, "typeName": { "contractScope": null, - "id": 1875, + "id": 4548, "name": "IW12Crowdsale", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4426, - "src": "936:13:2", + "referencedDeclaration": 1204, + "src": "1027:13:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } }, @@ -3346,20 +3830,20 @@ "visibility": "internal" } ], - "src": "935:22:2" + "src": "1026:22:9" }, - "scope": 1931, - "src": "630:881:2", + "scope": 4605, + "src": "721:900:9", "stateMutability": "nonpayable", - "superFunction": 4452, + "superFunction": 4450, "visibility": "external" } ], - "scope": 1932, - "src": "187:1326:2" + "scope": 4606, + "src": "202:1421:9" } ], - "src": "0:1514:2" + "src": "0:1624:9" }, "compiler": { "name": "solc", @@ -3369,12 +3853,13 @@ "4": { "events": {}, "links": { - "Percent": "0xd98ecddead560f1327823ce8c7580729845ccb7f" + "Percent": "0xd6429c58c604e696d68544add46d2c7bcdfdcae4", + "Utils": "0xff9744d4a6369c1c737a10ab912fd1b7d22018f9" }, - "address": "0x3e0f3e2a848aa2c78d43bfc83809684155a71db3", - "transactionHash": "0x4cfa6ed5b5a6d9ab63b2757bf6fd4b207701ec50acce246615e95b552a542d3e" + "address": "0x1af5e4791c17a6475576274ac45930100fbbf5d2", + "transactionHash": "0xf4831e2ef72122dc437f8feeaa1850e4551c465d2e842f4f0a27943763738082" } }, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-02T12:05:06.477Z" + "updatedAt": "2018-10-22T08:01:07.093Z" } \ No newline at end of file diff --git a/build/contracts/W12CrowdsaleFundStub.json b/build/contracts/W12CrowdsaleFundStub.json new file mode 100644 index 00000000..17d0dda6 --- /dev/null +++ b/build/contracts/W12CrowdsaleFundStub.json @@ -0,0 +1,3062 @@ +{ + "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": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "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" + } + ], + "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", + "sourcePath": "/home/circleci/code/contracts/mocks/crowdsale/W12CrowdsaleFundStub.sol", + "ast": { + "absolutePath": "/home/circleci/code/contracts/mocks/crowdsale/W12CrowdsaleFundStub.sol", + "exportedSymbols": { + "W12CrowdsaleFundStub": [ + 6178 + ] + }, + "id": 6179, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 6062, + "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": 6063, + "nodeType": "ImportDirective", + "scope": 6179, + "sourceUnit": 9766, + "src": "26:63:17", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/rates/IRates.sol", + "file": "../../rates/IRates.sol", + "id": 6064, + "nodeType": "ImportDirective", + "scope": 6179, + "sourceUnit": 7016, + "src": "90:32:17", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/crowdsale/W12Fund.sol", + "file": "../../crowdsale/W12Fund.sol", + "id": 6065, + "nodeType": "ImportDirective", + "scope": 6179, + "sourceUnit": 4425, + "src": "123:37:17", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/token/IWToken.sol", + "file": "../../token/IWToken.sol", + "id": 6066, + "nodeType": "ImportDirective", + "scope": 6179, + "sourceUnit": 7631, + "src": "161:33:17", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 6067, + "name": "IW12Fund", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1241, + "src": "230:8:17", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1241", + "typeString": "contract IW12Fund" + } + }, + "id": 6068, + "nodeType": "InheritanceSpecifier", + "src": "230:8:17" + } + ], + "contractDependencies": [ + 1241 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 6178, + "linearizedBaseContracts": [ + 6178, + 1241 + ], + "name": "W12CrowdsaleFundStub", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 6073, + "nodeType": "Block", + "src": "303:2:17", + "statements": [] + }, + "documentation": null, + "id": 6074, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "setCrowdsale", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6071, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6070, + "name": "_crowdsale", + "nodeType": "VariableDeclaration", + "scope": 6074, + "src": "268:24:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", + "typeString": "contract IW12Crowdsale" + }, + "typeName": { + "contractScope": null, + "id": 6069, + "name": "IW12Crowdsale", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1204, + "src": "268:13:17", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", + "typeString": "contract IW12Crowdsale" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "267:26:17" + }, + "payable": false, + "returnParameters": { + "id": 6072, + "nodeType": "ParameterList", + "parameters": [], + "src": "303:0:17" + }, + "scope": 6178, + "src": "246:59:17", + "stateMutability": "nonpayable", + "superFunction": 1212, + "visibility": "external" + }, + { + "body": { + "id": 6079, + "nodeType": "Block", + "src": "370:2:17", + "statements": [] + }, + "documentation": null, + "id": 6080, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "setServiceWallet", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6077, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6076, + "name": "_serviceWallet", + "nodeType": "VariableDeclaration", + "scope": 6080, + "src": "337:22:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6075, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "337:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "336:24:17" + }, + "payable": false, + "returnParameters": { + "id": 6078, + "nodeType": "ParameterList", + "parameters": [], + "src": "370:0:17" + }, + "scope": 6178, + "src": "311:61:17", + "stateMutability": "nonpayable", + "superFunction": 1217, + "visibility": "external" + }, + { + "body": { + "id": 6085, + "nodeType": "Block", + "src": "419:2:17", + "statements": [] + }, + "documentation": null, + "id": 6086, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "setSwap", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6083, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6082, + "name": "_swap", + "nodeType": "VariableDeclaration", + "scope": 6086, + "src": "395:13:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6081, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "395:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "394:15:17" + }, + "payable": false, + "returnParameters": { + "id": 6084, + "nodeType": "ParameterList", + "parameters": [], + "src": "419:0:17" + }, + "scope": 6178, + "src": "378:43:17", + "stateMutability": "nonpayable", + "superFunction": 1222, + "visibility": "external" + }, + { + "body": { + "id": 6091, + "nodeType": "Block", + "src": "481:2:17", + "statements": [] + }, + "documentation": null, + "id": 6092, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferOwnership", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6089, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6088, + "name": "newOwner", + "nodeType": "VariableDeclaration", + "scope": 6092, + "src": "454:16:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6087, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "454:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "453:18:17" + }, + "payable": false, + "returnParameters": { + "id": 6090, + "nodeType": "ParameterList", + "parameters": [], + "src": "481:0:17" + }, + "scope": 6178, + "src": "427:56:17", + "stateMutability": "nonpayable", + "superFunction": 1227, + "visibility": "external" + }, + { + "canonicalName": "W12CrowdsaleFundStub.RecordPurchaseCallResult", + "id": 6105, + "members": [ + { + "constant": false, + "id": 6094, + "name": "investor", + "nodeType": "VariableDeclaration", + "scope": 6105, + "src": "531:16:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6093, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "531:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6096, + "name": "tokenAmount", + "nodeType": "VariableDeclaration", + "scope": 6105, + "src": "557:16:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6095, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "557:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6098, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 6105, + "src": "583:14:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6097, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "583:7:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6100, + "name": "cost", + "nodeType": "VariableDeclaration", + "scope": 6105, + "src": "607:9:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6099, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "607:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6102, + "name": "costUSD", + "nodeType": "VariableDeclaration", + "scope": 6105, + "src": "626:12:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6101, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "626:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6104, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 6105, + "src": "648:11:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6103, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "648:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "RecordPurchaseCallResult", + "nodeType": "StructDefinition", + "scope": 6178, + "src": "489:177:17", + "visibility": "public" + }, + { + "constant": false, + "id": 6107, + "name": "__recordPurchaseCallResult", + "nodeType": "VariableDeclaration", + "scope": 6178, + "src": "672:51:17", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$6105_storage", + "typeString": "struct W12CrowdsaleFundStub.RecordPurchaseCallResult" + }, + "typeName": { + "contractScope": null, + "id": 6106, + "name": "RecordPurchaseCallResult", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 6105, + "src": "672:24:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$6105_storage_ptr", + "typeString": "struct W12CrowdsaleFundStub.RecordPurchaseCallResult" + } + }, + "value": null, + "visibility": "internal" + }, + { + "body": { + "id": 6136, + "nodeType": "Block", + "src": "833:322:17", + "statements": [ + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6122, + "name": "__recordPurchaseCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6107, + "src": "864:26:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$6105_storage", + "typeString": "struct W12CrowdsaleFundStub.RecordPurchaseCallResult storage ref" + } + }, + "id": 6123, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "investor", + "nodeType": "MemberAccess", + "referencedDeclaration": 6094, + "src": "864:35:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6124, + "name": "__recordPurchaseCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6107, + "src": "913:26:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$6105_storage", + "typeString": "struct W12CrowdsaleFundStub.RecordPurchaseCallResult storage ref" + } + }, + "id": 6125, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "tokenAmount", + "nodeType": "MemberAccess", + "referencedDeclaration": 6096, + "src": "913:38:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6126, + "name": "__recordPurchaseCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6107, + "src": "965:26:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$6105_storage", + "typeString": "struct W12CrowdsaleFundStub.RecordPurchaseCallResult storage ref" + } + }, + "id": 6127, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "symbol", + "nodeType": "MemberAccess", + "referencedDeclaration": 6098, + "src": "965:33:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6128, + "name": "__recordPurchaseCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6107, + "src": "1012:26:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$6105_storage", + "typeString": "struct W12CrowdsaleFundStub.RecordPurchaseCallResult storage ref" + } + }, + "id": 6129, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "cost", + "nodeType": "MemberAccess", + "referencedDeclaration": 6100, + "src": "1012:31:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6130, + "name": "__recordPurchaseCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6107, + "src": "1057:26:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$6105_storage", + "typeString": "struct W12CrowdsaleFundStub.RecordPurchaseCallResult storage ref" + } + }, + "id": 6131, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "costUSD", + "nodeType": "MemberAccess", + "referencedDeclaration": 6102, + "src": "1057:34:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6132, + "name": "__recordPurchaseCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6107, + "src": "1105:26:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$6105_storage", + "typeString": "struct W12CrowdsaleFundStub.RecordPurchaseCallResult storage ref" + } + }, + "id": 6133, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 6104, + "src": "1105:33:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 6134, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "850:298:17", + "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": 6121, + "id": 6135, + "nodeType": "Return", + "src": "843:305:17" + } + ] + }, + "documentation": null, + "id": 6137, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "_getRecordPurchaseCallResult", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6108, + "nodeType": "ParameterList", + "parameters": [], + "src": "766:2:17" + }, + "payable": false, + "returnParameters": { + "id": 6121, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6110, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 6137, + "src": "791:7:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6109, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "791:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6112, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 6137, + "src": "800:4:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6111, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "800:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6114, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 6137, + "src": "806:7:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6113, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "806:7:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6116, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 6137, + "src": "815:4:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6115, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "815:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6118, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 6137, + "src": "821:4:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6117, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "821:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6120, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 6137, + "src": "827:4:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6119, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "827:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "790:42:17" + }, + "scope": 6178, + "src": "729:426:17", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 6162, + "nodeType": "Block", + "src": "1325:265:17", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6160, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6150, + "name": "__recordPurchaseCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6107, + "src": "1335:26:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$6105_storage", + "typeString": "struct W12CrowdsaleFundStub.RecordPurchaseCallResult storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6152, + "name": "investor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6139, + "src": "1413:8:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6153, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6141, + "src": "1448:11:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6154, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6143, + "src": "1481:6:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 6155, + "name": "cost", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6145, + "src": "1507:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6156, + "name": "costUSD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6147, + "src": "1534:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6157, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10042, + "src": "1563:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6158, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1563:9:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": null, + "id": 6151, + "name": "RecordPurchaseCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6105, + "src": "1364:24:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_RecordPurchaseCallResult_$6105_storage_ptr_$", + "typeString": "type(struct W12CrowdsaleFundStub.RecordPurchaseCallResult storage pointer)" + } + }, + "id": 6159, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "investor", + "tokenAmount", + "symbol", + "cost", + "costUSD", + "_value" + ], + "nodeType": "FunctionCall", + "src": "1364:219:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$6105_memory", + "typeString": "struct W12CrowdsaleFundStub.RecordPurchaseCallResult memory" + } + }, + "src": "1335:248:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$6105_storage", + "typeString": "struct W12CrowdsaleFundStub.RecordPurchaseCallResult storage ref" + } + }, + "id": 6161, + "nodeType": "ExpressionStatement", + "src": "1335:248:17" + } + ] + }, + "documentation": null, + "id": 6163, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "recordPurchase", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6148, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6139, + "name": "investor", + "nodeType": "VariableDeclaration", + "scope": 6163, + "src": "1194:16:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6138, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1194:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6141, + "name": "tokenAmount", + "nodeType": "VariableDeclaration", + "scope": 6163, + "src": "1220:16:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6140, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1220:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6143, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 6163, + "src": "1246:14:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6142, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1246:7:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6145, + "name": "cost", + "nodeType": "VariableDeclaration", + "scope": 6163, + "src": "1270:9:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6144, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1270:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6147, + "name": "costUSD", + "nodeType": "VariableDeclaration", + "scope": 6163, + "src": "1289:12:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6146, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1289:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1184:123:17" + }, + "payable": true, + "returnParameters": { + "id": 6149, + "nodeType": "ParameterList", + "parameters": [], + "src": "1325:0:17" + }, + "scope": 6178, + "src": "1161:429:17", + "stateMutability": "payable", + "superFunction": 1240, + "visibility": "external" + }, + { + "body": { + "id": 6176, + "nodeType": "Block", + "src": "1636:58:17", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6171, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10127, + "src": "1673:4:17", + "typeDescriptions": { + "typeIdentifier": "t_contract$_W12CrowdsaleFundStub_$6178", + "typeString": "contract W12CrowdsaleFundStub" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_W12CrowdsaleFundStub_$6178", + "typeString": "contract W12CrowdsaleFundStub" + } + ], + "id": 6170, + "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": 6172, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1665:13:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 6173, + "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": 6168, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6165, + "src": "1653:2:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 6169, + "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": 6174, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1653:34:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "functionReturnParameters": 6167, + "id": 6175, + "nodeType": "Return", + "src": "1646:41:17" + } + ] + }, + "documentation": null, + "id": 6177, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "_outEther", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6166, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6165, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 6177, + "src": "1615:10:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6164, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1615:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1614:12:17" + }, + "payable": false, + "returnParameters": { + "id": 6167, + "nodeType": "ParameterList", + "parameters": [], + "src": "1636:0:17" + }, + "scope": 6178, + "src": "1596:98:17", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 6179, + "src": "197:1499:17" + } + ], + "src": "0:1697:17" + }, + "legacyAST": { + "absolutePath": "/home/circleci/code/contracts/mocks/crowdsale/W12CrowdsaleFundStub.sol", + "exportedSymbols": { + "W12CrowdsaleFundStub": [ + 6178 + ] + }, + "id": 6179, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 6062, + "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": 6063, + "nodeType": "ImportDirective", + "scope": 6179, + "sourceUnit": 9766, + "src": "26:63:17", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/rates/IRates.sol", + "file": "../../rates/IRates.sol", + "id": 6064, + "nodeType": "ImportDirective", + "scope": 6179, + "sourceUnit": 7016, + "src": "90:32:17", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/crowdsale/W12Fund.sol", + "file": "../../crowdsale/W12Fund.sol", + "id": 6065, + "nodeType": "ImportDirective", + "scope": 6179, + "sourceUnit": 4425, + "src": "123:37:17", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/token/IWToken.sol", + "file": "../../token/IWToken.sol", + "id": 6066, + "nodeType": "ImportDirective", + "scope": 6179, + "sourceUnit": 7631, + "src": "161:33:17", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 6067, + "name": "IW12Fund", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1241, + "src": "230:8:17", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Fund_$1241", + "typeString": "contract IW12Fund" + } + }, + "id": 6068, + "nodeType": "InheritanceSpecifier", + "src": "230:8:17" + } + ], + "contractDependencies": [ + 1241 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 6178, + "linearizedBaseContracts": [ + 6178, + 1241 + ], + "name": "W12CrowdsaleFundStub", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 6073, + "nodeType": "Block", + "src": "303:2:17", + "statements": [] + }, + "documentation": null, + "id": 6074, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "setCrowdsale", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6071, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6070, + "name": "_crowdsale", + "nodeType": "VariableDeclaration", + "scope": 6074, + "src": "268:24:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", + "typeString": "contract IW12Crowdsale" + }, + "typeName": { + "contractScope": null, + "id": 6069, + "name": "IW12Crowdsale", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1204, + "src": "268:13:17", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", + "typeString": "contract IW12Crowdsale" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "267:26:17" + }, + "payable": false, + "returnParameters": { + "id": 6072, + "nodeType": "ParameterList", + "parameters": [], + "src": "303:0:17" + }, + "scope": 6178, + "src": "246:59:17", + "stateMutability": "nonpayable", + "superFunction": 1212, + "visibility": "external" + }, + { + "body": { + "id": 6079, + "nodeType": "Block", + "src": "370:2:17", + "statements": [] + }, + "documentation": null, + "id": 6080, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "setServiceWallet", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6077, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6076, + "name": "_serviceWallet", + "nodeType": "VariableDeclaration", + "scope": 6080, + "src": "337:22:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6075, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "337:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "336:24:17" + }, + "payable": false, + "returnParameters": { + "id": 6078, + "nodeType": "ParameterList", + "parameters": [], + "src": "370:0:17" + }, + "scope": 6178, + "src": "311:61:17", + "stateMutability": "nonpayable", + "superFunction": 1217, + "visibility": "external" + }, + { + "body": { + "id": 6085, + "nodeType": "Block", + "src": "419:2:17", + "statements": [] + }, + "documentation": null, + "id": 6086, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "setSwap", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6083, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6082, + "name": "_swap", + "nodeType": "VariableDeclaration", + "scope": 6086, + "src": "395:13:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6081, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "395:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "394:15:17" + }, + "payable": false, + "returnParameters": { + "id": 6084, + "nodeType": "ParameterList", + "parameters": [], + "src": "419:0:17" + }, + "scope": 6178, + "src": "378:43:17", + "stateMutability": "nonpayable", + "superFunction": 1222, + "visibility": "external" + }, + { + "body": { + "id": 6091, + "nodeType": "Block", + "src": "481:2:17", + "statements": [] + }, + "documentation": null, + "id": 6092, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferOwnership", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6089, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6088, + "name": "newOwner", + "nodeType": "VariableDeclaration", + "scope": 6092, + "src": "454:16:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6087, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "454:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "453:18:17" + }, + "payable": false, + "returnParameters": { + "id": 6090, + "nodeType": "ParameterList", + "parameters": [], + "src": "481:0:17" + }, + "scope": 6178, + "src": "427:56:17", + "stateMutability": "nonpayable", + "superFunction": 1227, + "visibility": "external" + }, + { + "canonicalName": "W12CrowdsaleFundStub.RecordPurchaseCallResult", + "id": 6105, + "members": [ + { + "constant": false, + "id": 6094, + "name": "investor", + "nodeType": "VariableDeclaration", + "scope": 6105, + "src": "531:16:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6093, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "531:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6096, + "name": "tokenAmount", + "nodeType": "VariableDeclaration", + "scope": 6105, + "src": "557:16:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6095, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "557:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6098, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 6105, + "src": "583:14:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6097, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "583:7:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6100, + "name": "cost", + "nodeType": "VariableDeclaration", + "scope": 6105, + "src": "607:9:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6099, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "607:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6102, + "name": "costUSD", + "nodeType": "VariableDeclaration", + "scope": 6105, + "src": "626:12:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6101, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "626:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6104, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 6105, + "src": "648:11:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6103, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "648:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "RecordPurchaseCallResult", + "nodeType": "StructDefinition", + "scope": 6178, + "src": "489:177:17", + "visibility": "public" + }, + { + "constant": false, + "id": 6107, + "name": "__recordPurchaseCallResult", + "nodeType": "VariableDeclaration", + "scope": 6178, + "src": "672:51:17", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$6105_storage", + "typeString": "struct W12CrowdsaleFundStub.RecordPurchaseCallResult" + }, + "typeName": { + "contractScope": null, + "id": 6106, + "name": "RecordPurchaseCallResult", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 6105, + "src": "672:24:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$6105_storage_ptr", + "typeString": "struct W12CrowdsaleFundStub.RecordPurchaseCallResult" + } + }, + "value": null, + "visibility": "internal" + }, + { + "body": { + "id": 6136, + "nodeType": "Block", + "src": "833:322:17", + "statements": [ + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6122, + "name": "__recordPurchaseCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6107, + "src": "864:26:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$6105_storage", + "typeString": "struct W12CrowdsaleFundStub.RecordPurchaseCallResult storage ref" + } + }, + "id": 6123, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "investor", + "nodeType": "MemberAccess", + "referencedDeclaration": 6094, + "src": "864:35:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6124, + "name": "__recordPurchaseCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6107, + "src": "913:26:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$6105_storage", + "typeString": "struct W12CrowdsaleFundStub.RecordPurchaseCallResult storage ref" + } + }, + "id": 6125, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "tokenAmount", + "nodeType": "MemberAccess", + "referencedDeclaration": 6096, + "src": "913:38:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6126, + "name": "__recordPurchaseCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6107, + "src": "965:26:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$6105_storage", + "typeString": "struct W12CrowdsaleFundStub.RecordPurchaseCallResult storage ref" + } + }, + "id": 6127, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "symbol", + "nodeType": "MemberAccess", + "referencedDeclaration": 6098, + "src": "965:33:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6128, + "name": "__recordPurchaseCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6107, + "src": "1012:26:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$6105_storage", + "typeString": "struct W12CrowdsaleFundStub.RecordPurchaseCallResult storage ref" + } + }, + "id": 6129, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "cost", + "nodeType": "MemberAccess", + "referencedDeclaration": 6100, + "src": "1012:31:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6130, + "name": "__recordPurchaseCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6107, + "src": "1057:26:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$6105_storage", + "typeString": "struct W12CrowdsaleFundStub.RecordPurchaseCallResult storage ref" + } + }, + "id": 6131, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "costUSD", + "nodeType": "MemberAccess", + "referencedDeclaration": 6102, + "src": "1057:34:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6132, + "name": "__recordPurchaseCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6107, + "src": "1105:26:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$6105_storage", + "typeString": "struct W12CrowdsaleFundStub.RecordPurchaseCallResult storage ref" + } + }, + "id": 6133, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 6104, + "src": "1105:33:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 6134, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "850:298:17", + "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": 6121, + "id": 6135, + "nodeType": "Return", + "src": "843:305:17" + } + ] + }, + "documentation": null, + "id": 6137, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "_getRecordPurchaseCallResult", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6108, + "nodeType": "ParameterList", + "parameters": [], + "src": "766:2:17" + }, + "payable": false, + "returnParameters": { + "id": 6121, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6110, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 6137, + "src": "791:7:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6109, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "791:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6112, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 6137, + "src": "800:4:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6111, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "800:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6114, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 6137, + "src": "806:7:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6113, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "806:7:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6116, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 6137, + "src": "815:4:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6115, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "815:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6118, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 6137, + "src": "821:4:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6117, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "821:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6120, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 6137, + "src": "827:4:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6119, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "827:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "790:42:17" + }, + "scope": 6178, + "src": "729:426:17", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 6162, + "nodeType": "Block", + "src": "1325:265:17", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6160, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6150, + "name": "__recordPurchaseCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6107, + "src": "1335:26:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$6105_storage", + "typeString": "struct W12CrowdsaleFundStub.RecordPurchaseCallResult storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6152, + "name": "investor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6139, + "src": "1413:8:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6153, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6141, + "src": "1448:11:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6154, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6143, + "src": "1481:6:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 6155, + "name": "cost", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6145, + "src": "1507:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6156, + "name": "costUSD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6147, + "src": "1534:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6157, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10042, + "src": "1563:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6158, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1563:9:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": null, + "id": 6151, + "name": "RecordPurchaseCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6105, + "src": "1364:24:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_RecordPurchaseCallResult_$6105_storage_ptr_$", + "typeString": "type(struct W12CrowdsaleFundStub.RecordPurchaseCallResult storage pointer)" + } + }, + "id": 6159, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "investor", + "tokenAmount", + "symbol", + "cost", + "costUSD", + "_value" + ], + "nodeType": "FunctionCall", + "src": "1364:219:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$6105_memory", + "typeString": "struct W12CrowdsaleFundStub.RecordPurchaseCallResult memory" + } + }, + "src": "1335:248:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RecordPurchaseCallResult_$6105_storage", + "typeString": "struct W12CrowdsaleFundStub.RecordPurchaseCallResult storage ref" + } + }, + "id": 6161, + "nodeType": "ExpressionStatement", + "src": "1335:248:17" + } + ] + }, + "documentation": null, + "id": 6163, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "recordPurchase", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6148, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6139, + "name": "investor", + "nodeType": "VariableDeclaration", + "scope": 6163, + "src": "1194:16:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6138, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1194:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6141, + "name": "tokenAmount", + "nodeType": "VariableDeclaration", + "scope": 6163, + "src": "1220:16:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6140, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1220:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6143, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 6163, + "src": "1246:14:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6142, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1246:7:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6145, + "name": "cost", + "nodeType": "VariableDeclaration", + "scope": 6163, + "src": "1270:9:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6144, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1270:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6147, + "name": "costUSD", + "nodeType": "VariableDeclaration", + "scope": 6163, + "src": "1289:12:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6146, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1289:4:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1184:123:17" + }, + "payable": true, + "returnParameters": { + "id": 6149, + "nodeType": "ParameterList", + "parameters": [], + "src": "1325:0:17" + }, + "scope": 6178, + "src": "1161:429:17", + "stateMutability": "payable", + "superFunction": 1240, + "visibility": "external" + }, + { + "body": { + "id": 6176, + "nodeType": "Block", + "src": "1636:58:17", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6171, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10127, + "src": "1673:4:17", + "typeDescriptions": { + "typeIdentifier": "t_contract$_W12CrowdsaleFundStub_$6178", + "typeString": "contract W12CrowdsaleFundStub" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_W12CrowdsaleFundStub_$6178", + "typeString": "contract W12CrowdsaleFundStub" + } + ], + "id": 6170, + "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": 6172, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1665:13:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 6173, + "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": 6168, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6165, + "src": "1653:2:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 6169, + "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": 6174, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1653:34:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "functionReturnParameters": 6167, + "id": 6175, + "nodeType": "Return", + "src": "1646:41:17" + } + ] + }, + "documentation": null, + "id": 6177, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "_outEther", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6166, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6165, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 6177, + "src": "1615:10:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6164, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1615:7:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1614:12:17" + }, + "payable": false, + "returnParameters": { + "id": 6167, + "nodeType": "ParameterList", + "parameters": [], + "src": "1636:0:17" + }, + "scope": 6178, + "src": "1596:98:17", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 6179, + "src": "197:1499:17" + } + ], + "src": "0:1697:17" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.1", + "updatedAt": "2018-10-22T07:56:01.512Z" +} \ No newline at end of file diff --git a/build/contracts/W12CrowdsaleStub.json b/build/contracts/W12CrowdsaleStub.json index 6a08019c..16c6c5fa 100644 --- a/build/contracts/W12CrowdsaleStub.json +++ b/build/contracts/W12CrowdsaleStub.json @@ -1,6 +1,43 @@ { "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": [], @@ -33,36 +70,6 @@ "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": "setup", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, { "constant": true, "inputs": [ @@ -211,6 +218,20 @@ "stateMutability": "view", "type": "function" }, + { + "constant": true, + "inputs": [], + "name": "rates", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, { "constant": true, "inputs": [], @@ -225,6 +246,20 @@ "stateMutability": "view", "type": "function" }, + { + "constant": true, + "inputs": [], + "name": "getPaymentMethodsList", + "outputs": [ + { + "name": "", + "type": "bytes32[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, { "constant": true, "inputs": [], @@ -335,6 +370,29 @@ "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": [], @@ -419,13 +477,61 @@ "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": false, - "inputs": [], - "name": "buyTokens", + "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": true, - "stateMutability": "payable", + "payable": false, + "stateMutability": "nonpayable", "type": "function" }, { @@ -582,17 +688,16 @@ { "name": "_fund", "type": "address" + }, + { + "name": "_rates", + "type": "address" } ], "payable": false, "stateMutability": "nonpayable", "type": "constructor" }, - { - "payable": true, - "stateMutability": "payable", - "type": "fallback" - }, { "anonymous": false, "inputs": [ @@ -603,12 +708,12 @@ }, { "indexed": false, - "name": "amountPaid", + "name": "tokensBought", "type": "uint256" }, { "indexed": false, - "name": "tokensBought", + "name": "cost", "type": "uint256" }, { @@ -713,6 +818,20 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "constant": false, + "inputs": [ + { + "name": "to", + "type": "address" + } + ], + "name": "_outEther", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, { "constant": false, "inputs": [ @@ -728,24 +847,24 @@ "type": "function" } ], - "bytecode": "0x608060405260016002553480156200001657600080fd5b5060405161012080620033a183398101604090815281516020830151918301516060840151608085015160a086015160c087015160e088015161010090980151600087905560018054600160a060020a03191633179055959794959394929391929091888888888888888888600160a060020a03881615156200009857600080fd5b600160a060020a0387161515620000ae57600080fd5b620000c78364010000000062002996620001f182021704565b8015620000ec57506064620000ea846401000000006200300f6200022e82021704565b105b1515620000f857600080fd5b620001118264010000000062002996620001f182021704565b8015620001365750606462000134836401000000006200300f6200022e82021704565b105b15156200014257600080fd5b600160a060020a03811615156200015857600080fd5b600160a060020a03841615156200016e57600080fd5b62000183868664010000000062000280810204565b60038054600160a060020a0319908116600160a060020a03998a16179091556004805482169989169990991790985560069290925560098054881693871693909317909255600791909155600a805490951693169290921790925550620003259a5050505050505050505050565b600062000206640100000000620002cb810204565b821015801562000228575062000224640100000000620002d0810204565b8211155b92915050565b60006200024482640100000000620001f1810204565b15156200025057600080fd5b6200022862000267640100000000620002ed810204565b8390600a0a64010000000062002981620002f282021704565b600082116200028e57600080fd5b600160a060020a0381161515620002a457600080fd5b60059190915560088054600160a060020a031916600160a060020a03909216919091179055565b600090565b6000620002e564010000000062000308810204565b600a0a905090565b600290565b600081838115156200030057fe5b049392505050565b60006200031d640100000000620002ed810204565b600201905090565b61306c80620003356000396000f3006080604052600436106101875763ffffffff60e060020a60003504166313096a41811461019157806314f66d34146101c257806317410a07146101f05780631aecc19f14610240578063208853c9146102785780632442e1cb146102a25780632e325020146103d85780632fbe5990146104c9578063313602d4146104de5780633baba4d7146104f35780634090cb641461050857806354fd4d501461051d5780635641f3c314610532578063564566a814610547578063715018a61461055c578063792c02ea146105715780638119c06514610586578063845ddcb21461059b5780638abdf5aa146105e45780638da5cb5b146105f95780638edd6eb61461060e578063a035b1fe14610623578063a4fd6f5614610638578063b13564881461064d578063b60d42881461067b578063ca7348a314610690578063d0febe4c14610187578063d6d65f3d146106a8578063daa4cf88146106bd578063e89e4ed6146106d2578063e93b0540146106ea578063f2fde38b14610702578063fc0c546a14610723575b61018f610738565b005b34801561019d57600080fd5b506101a6610bf5565b60408051600160a060020a039092168252519081900360200190f35b3480156101ce57600080fd5b506101d7610c04565b6040805192835290151560208301528051918290030190f35b3480156101fc57600080fd5b5061018f6024600480358281019290820135918135808301929082013591604435808301929082013591606435808301929082013591608435918201910135610c37565b34801561024c57600080fd5b50610264600160a060020a0360043516602435610e3e565b604080519115158252519081900360200190f35b34801561028457600080fd5b50610290600435610ee5565b60408051918252519081900360200190f35b3480156102ae57600080fd5b506102ba600435610f93565b604051808763ffffffff1663ffffffff1681526020018681526020018563ffffffff1663ffffffff1681526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019080838360005b8381101561033757818101518382015260200161031f565b50505050905090810190601f1680156103645780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b8381101561039757818101518382015260200161037f565b50505050905090810190601f1680156103c45780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b3480156103e457600080fd5b506103f06004356111c0565b604051808763ffffffff1663ffffffff1681526020018663ffffffff1663ffffffff1681526020018581526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015610470578181015183820152602001610458565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156104af578181015183820152602001610497565b505050509050019850505050505050505060405180910390f35b3480156104d557600080fd5b50610290611366565b3480156104ea57600080fd5b5061018f61136c565b3480156104ff57600080fd5b5061029061151b565b34801561051457600080fd5b506101a6611522565b34801561052957600080fd5b50610290611531565b34801561053e57600080fd5b506101a6611537565b34801561055357600080fd5b50610264611546565b34801561056857600080fd5b5061018f61155c565b34801561057d57600080fd5b506102906115ca565b34801561059257600080fd5b506101a66115d0565b3480156105a757600080fd5b506105b36004356115df565b6040805163ffffffff9586168152938516602085015283810192909252909216606082015290519081900360800190f35b3480156105f057600080fd5b50610290611625565b34801561060557600080fd5b506101a661162b565b34801561061a57600080fd5b506101a661163a565b34801561062f57600080fd5b50610290611649565b34801561064457600080fd5b5061026461164f565b34801561065957600080fd5b50610662611697565b6040805163ffffffff9092168252519081900360200190f35b34801561068757600080fd5b506101a66116de565b34801561069c57600080fd5b5061018f6004356116ed565b3480156106b457600080fd5b506101d76116f2565b3480156106c957600080fd5b506101d761176d565b3480156106de57600080fd5b506102ba6004356117f0565b3480156106f657600080fd5b5061018f60043561195e565b34801561070e57600080fd5b5061018f600160a060020a03600435166119cc565b34801561072f57600080fd5b506101a66119ec565b600080600080600080600080600160025414151561075557600080fd5b60028055610761611546565b15156107ce57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f53616c65206973206e6f74207374617274656420796574000000000000000000604482015290519081900360640190fd5b600034116107db57600080fd5b6107e361176d565b509750600b888154811015156107f557fe5b9060005260206000209060050201600101549650600b8881548110151561081857fe5b600091825260209091206002600590920201015463ffffffff16955061083d34610ee5565b945061084a3488876119fb565b50935093509350600060075411156109d05760075461087090859063ffffffff611de516565b60048054600954600854604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a03938416958101959095529082166024850152604484018590525193945016916323b872dd916064808201926020929091908290030181600087803b1580156108f057600080fd5b505af1158015610904573d6000803e3d6000fd5b505050506040513d602081101561091a57600080fd5b5051151561092757600080fd5b600354600954604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152602481018590529051919092169163a9059cbb9160448083019260209291908290030181600087803b15801561099957600080fd5b505af11580156109ad573d6000803e3d6000fd5b505050506040513d60208110156109c357600080fd5b505115156109d057600080fd5b600354604080517f9d2e47770000000000000000000000000000000000000000000000000000000081523360048201526024810187905263ffffffff891660448201529051600160a060020a0390921691639d2e4777916064808201926020929091908290030181600087803b158015610a4957600080fd5b505af1158015610a5d573d6000803e3d6000fd5b505050506040513d6020811015610a7357600080fd5b50511515610a8057600080fd5b6000821115610ab857604051339083156108fc029084906000818181858888f19350505050158015610ab6573d6000803e3d6000fd5b505b60006006541115610b1457600854600654600160a060020a03909116906108fc90610aea90869063ffffffff611de516565b6040518115909202916000818181858888f19350505050158015610b12573d6000803e3d6000fd5b505b600a54604080517f958799cb000000000000000000000000000000000000000000000000000000008152336004820152602481018790529051600160a060020a039092169163958799cb91620186a09130319160448082019260009290919082900301818589803b158015610b8857600080fd5b5088f1158015610b9c573d6000803e3d6000fd5b505060408051888152602081018a905280820188905290513395507f347f5f0051b895093800553e6e78ef332849e2552639a4f5ffe66535788ae07894509081900360600192509050a250506001600255505050505050565b600454600160a060020a031681565b600c5460009081901580610c1d5750610c1b61164f565b155b15610c2757610c33565b5050600c546000190160015b9091565b600154600160a060020a03163314610c4e57600080fd5b600b5460001015610c8b5742600b6000815481101515610c6a57fe5b600091825260209091206005909102015463ffffffff1611610c8b57600080fd5b881515610c9757600080fd5b60ff891115610ca557600080fd5b60ff851115610cb357600080fd5b600283048514610cc257600080fd5b60028104851115610cd257600080fd5b610d6b8a8a808060200260200160405190810160405280939291908181526020016000905b82821015610d33576040805160c08181019092529080840287019060069083908390808284375050509183525050600190910190602001610cf7565b505050505089898080602002602001604051908101604052809392919081815260200183836020028082843750611e1d945050505050565b610e328686808060200260200160405190810160405280939291908181526020016000905b82821015610dcc576040805160808181019092529080840287019060049083908390808284375050509183525050600190910190602001610d90565b50505050508585808060200260200160405190810160405280939291908181526020018383602002808284375050604080516020601f8b018190048102820181019092528981529450899350889250829150840183828082843750612326945050505050565b50505050505050505050565b600354604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152602482018590529151600093929092169163a9059cbb9160448082019260209290919082900301818787803b158015610eb057600080fd5b505af1158015610ec4573d6000803e3d6000fd5b505050506040513d6020811015610eda57600080fd5b505190505b92915050565b6000806000806000610ef561176d565b93509350821515610f095760009450610f8a565b600b805485908110610f1757fe5b90600052602060002090600502019150600090505b6003820154811015610f8a5760038201805482908110610f4857fe5b906000526020600020015486101515610f7d5760048201805482908110610f6b57fe5b90600052602060002001549450610f82565b610f8a565b600101610f2c565b50505050919050565b600080600080606080600c87815481101515610fab57fe5b6000918252602090912060059091020154600c805463ffffffff9092169189908110610fd357fe5b906000526020600020906005020160010154600c89815481101515610ff457fe5b6000918252602090912060026005909202010154600c805463ffffffff909216918b90811061101f57fe5b906000526020600020906005020160020160049054906101000a900463ffffffff16600c8b81548110151561105057fe5b9060005260206000209060050201600301600c8c81548110151561107057fe5b9060005260206000209060050201600401818054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111165780601f106110eb57610100808354040283529160200191611116565b820191906000526020600020905b8154815290600101906020018083116110f957829003601f168201915b5050845460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152959750869450925084019050828280156111a45780601f10611179576101008083540402835291602001916111a4565b820191906000526020600020905b81548152906001019060200180831161118757829003601f168201915b5050505050905095509550955095509550955091939550919395565b600080600080606080600b878154811015156111d857fe5b6000918252602090912060059091020154600b805463ffffffff909216918990811061120057fe5b906000526020600020906005020160000160049054906101000a900463ffffffff16600b8981548110151561123157fe5b906000526020600020906005020160010154600b8a81548110151561125257fe5b6000918252602090912060026005909202010154600b805463ffffffff909216918c90811061127d57fe5b9060005260206000209060050201600301600b8c81548110151561129d57fe5b9060005260206000209060050201600401818054806020026020016040519081016040528092919081815260200182805480156112f957602002820191906000526020600020905b8154815260200190600101908083116112e5575b50505050509150808054806020026020016040519081016040528092919081815260200182805480156111a457602002820191906000526020600020905b815481526020019060010190808311611337575050505050905095509550955095509550955091939550919395565b60075481565b600154600090600160a060020a0316331461138657600080fd5b61138e61164f565b151561139957600080fd5b600354604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b1580156113ff57600080fd5b505af1158015611413573d6000803e3d6000fd5b505050506040513d602081101561142957600080fd5b5051600354600154604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a03928316600482015260248101859052905193945091169163a9059cbb916044808201926020929091908290030181600087803b15801561149f57600080fd5b505af11580156114b3573d6000803e3d6000fd5b505050506040513d60208110156114c957600080fd5b505115156114d657600080fd5b600154604080518381529051600160a060020a03909216917f26ffb867a6b19bc0240d4e732ed6cfb0f0b6d93143a99cfb24ba5873308861f89181900360200190a250565b600c545b90565b600354600160a060020a031690565b60005481565b600854600160a060020a031681565b60008061155161176d565b9150508091505b5090565b600154600160a060020a0316331461157357600080fd5b600154604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26001805473ffffffffffffffffffffffffffffffffffffffff19169055565b600b5490565b600954600160a060020a031681565b600b8054829081106115ed57fe5b600091825260209091206005909102018054600182015460029092015463ffffffff8083169450640100000000909204821692911684565b60065481565b600154600160a060020a031681565b600a54600160a060020a031690565b60055481565b600b5460009015806116925750600b8054429190600019810190811061167157fe5b6000918252602090912060059091020154640100000000900463ffffffff16105b905090565b600b5460009081106116a857600080fd5b600b805460001981019081106116ba57fe5b6000918252602090912060059091020154640100000000900463ffffffff16919050565b600a54600160a060020a031681565b600755565b600c546000908190158061170b575061170961164f565b155b1561171557610c33565b5060015b600c54600019018210801561175d5750600c80548390811061173757fe5b6000918252602090912060059091020160020154640100000000900463ffffffff164210155b15610c3357600190910190611719565b60008080805b600b548210156117e257600b80548390811061178b57fe5b6000918252602090912060059091020180549091504263ffffffff909116118015906117c6575080544264010000000090910463ffffffff16115b156117d757816001935093506117ea565b600190910190611773565b600093508392505b50509091565b600c8054829081106117fe57fe5b60009182526020918290206005919091020180546001808301546002808501546003860180546040805161010097831615979097026000190190911693909304601f810189900489028601890190935282855263ffffffff95861698509296858216966401000000009092049095169490939291908301828280156118c45780601f10611899576101008083540402835291602001916118c4565b820191906000526020600020905b8154815290600101906020018083116118a757829003601f168201915b5050505060048301805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529495949350908301828280156119545780601f1061192957610100808354040283529160200191611954565b820191906000526020600020905b81548152906001019060200180831161193757829003601f168201915b5050505050905086565b600154600160a060020a0316331461197557600080fd5b600b54600010156119b25742600b600081548110151561199157fe5b600091825260209091206005909102015463ffffffff16116119b257600080fd5b6008546119c9908290600160a060020a0316612884565b50565b600154600160a060020a031633146119e357600080fd5b6119c9816128da565b600354600160a060020a031681565b600354604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290516000928692849283928392600160a060020a03909116916370a082319160248082019260209290919082900301818787803b158015611a6b57600080fd5b505af1158015611a7f573d6000803e3d6000fd5b505050506040513d6020811015611a9557600080fd5b5051600354604080517f313ce5670000000000000000000000000000000000000000000000000000000081529051929350600160a060020a039091169163313ce567916004808201926020929091908290030181600087803b158015611afa57600080fd5b505af1158015611b0e573d6000803e3d6000fd5b505050506040513d6020811015611b2457600080fd5b505160ff16600a0a811015611b3857600080fd5b60008711611b4857600554611bd0565b611bd08773__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015611b9357600080fd5b505af4158015611ba7573d6000803e3d6000fd5b505050506040513d6020811015611bbd57600080fd5b505160055491900363ffffffff611de516565b9150611db273__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015611c1c57600080fd5b505af4158015611c30573d6000803e3d6000fd5b505050506040513d6020811015611c4657600080fd5b5051600354604080517f313ce5670000000000000000000000000000000000000000000000000000000081529051611da69287928492600160a060020a039092169163313ce567916004808201926020929091908290030181600087803b158015611cb057600080fd5b505af1158015611cc4573d6000803e3d6000fd5b505050506040513d6020811015611cda57600080fd5b5051604080517fd49d5181000000000000000000000000000000000000000000000000000000008152905160ff909216600a0a91611d9a918e9173__Percent_______________________________9163d49d5181916004808301926020929190829003018186803b158015611d4f57600080fd5b505af4158015611d63573d6000803e3d6000fd5b505050506040513d6020811015611d7957600080fd5b8101908080519060200190929190505050018f61295890919063ffffffff16565b9063ffffffff61295816565b9063ffffffff61298116565b945084811015611ddb57611dd085611da68a8463ffffffff61295816565b935083880392508094505b5093509350935093565b6000611df082612996565b1515611dfb57600080fd5b611e16611e066129bb565b611da6858563ffffffff61295816565b9392505050565b600c54600090811015611e7a57825183906000198101908110611e3c57fe5b6020908102919091018101510151600c80546000908110611e5957fe5b600091825260209091206005909102015463ffffffff1611611e7a57600080fd5b611e86600b6000612deb565b5060005b82518160ff1610156122f857825163ffffffff90849060ff8416908110611ead57fe5b6020908102919091010151511115611ec457600080fd5b825163ffffffff90849060ff8416908110611edb57fe5b60209081029190910181015101511115611ef457600080fd5b825163ffffffff90849060ff8416908110611f0b57fe5b6020908102919091010151606001511115611f2557600080fd5b825160ff908490838316908110611f3857fe5b6020908102919091010151608001511115611f5257600080fd5b825160ff908490838316908110611f6557fe5b602090810291909101015160a001511115611f7f57600080fd5b42838260ff16815181101515611f9157fe5b60209081029190910101515111611fa757600080fd5b828160ff16815181101515611fb857fe5b60209081029190910181015101518351849060ff8416908110611fd757fe5b60209081029190910101515110611fed57600080fd5b60008160ff16111561204457828160ff1681518110151561200a57fe5b6020908102919091010151518351849060ff60001985011690811061202b57fe5b6020908102919091018101510151111561204457600080fd5b61206f838260ff1681518110151561205857fe5b6020908102909101015160025b6020020151612996565b151561207a57600080fd5b73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b1580156120c157600080fd5b505af41580156120d5573d6000803e3d6000fd5b505050506040513d60208110156120eb57600080fd5b50518351849060ff84169081106120fe57fe5b6020908102919091010151604001511061211757600080fd5b600b60c060405190810160405280858460ff1681518110151561213657fe5b6020908102919091018101515163ffffffff1682528651910190869060ff861690811061215f57fe5b602090810290910101516001602002015163ffffffff168152602001858460ff1681518110151561218c57fe5b60209081029091010151600260200201518152602001858460ff168151811015156121b357fe5b6020908102919091018101516060015163ffffffff16825260408051600080825281840183528484019190915281518181529283018252920191509052815460018082018085556000948552602094859020845160059094020180548587015163ffffffff1991821663ffffffff9687161767ffffffff00000000191664010000000091871691909102178255604086015193820193909355606085015160028201805490941694169390931790915560808301518051919461227e92600385019290910190612e0c565b5060a0820151805161229a916004840191602090910190612e0c565b505050506122f06001600b8054905003848360ff168151811015156122bb57fe5b6020908102919091010151608001518551869060ff86169081106122db57fe5b602090810291909101015160a00151856129cd565b600101611e8a565b6040517f743961f4e677d1146fbf85d75565b1c5474fd083eb166f8b9595cf5d01a4d6e690600090a1505050565b6000806000806060806000600b8054905011156123935788600081518110151561234c57fe5b602090810291909101015151600b8054600019810190811061236a57fe5b6000918252602090912060059091020154640100000000900463ffffffff161061239357600080fd5b61239f600c6000612e53565b600095506000945060009350600092505b88518360ff1610156127d257885163ffffffff908a9060ff86169081106123d357fe5b60209081029190910101515111156123ea57600080fd5b885163ffffffff908a9060ff861690811061240157fe5b6020908102919091018101510151111561241a57600080fd5b885163ffffffff908a9060ff861690811061243157fe5b602090810291909101015160400151111561244b57600080fd5b42898460ff1681518110151561245d57fe5b6020908102919091010151511161247357600080fd5b888360ff1681518110151561248457fe5b60209081029190910101515189518a9060ff86169081106124a157fe5b6020908102919091018101510151116124b957600080fd5b888360ff168151811015156124ca57fe5b602090810291909101810151015189518a9060ff86169081106124e957fe5b6020908102919091010151604001511161250257600080fd5b60008360ff16111561255957888360ff1681518110151561251f57fe5b60209081029190910101515189518a9060ff60001987011690811061254057fe5b6020908102919091010151604001511061255957600080fd5b61257e898460ff1681518110151561256d57fe5b602090810290910101516003612065565b151561258957600080fd5b6125bb86898781518110151561259b57fe5b9060200190602002015163ffffffff1689612d419092919063ffffffff16565b91506125ed88868151811015156125ce57fe5b9060200190602002015163ffffffff1687612dc290919063ffffffff16565b955061260486898760010181518110151561259b57fe5b905061261a88866001018151811015156125ce57fe5b955061262d85600263ffffffff612dc216565b9450612659898460ff1681518110151561264357fe5b6020908102919091010151606001518590612dc2565b9350600c60c0604051908101604052808b8660ff1681518110151561267a57fe5b6020908102919091018101515163ffffffff1682528c519101908c9060ff88169081106126a357fe5b602090810290910101516003602002015181526020018b8660ff168151811015156126ca57fe5b602090810290910101516001602002015163ffffffff1681526020018b8660ff168151811015156126f757fe5b6020908102909101015160026020908102919091015163ffffffff90811683528282018790526040928301869052845460018181018088556000978852968490208651600590930201805492841663ffffffff19938416178155868501519181019190915593850151600285018054606088015185166401000000000267ffffffff00000000199390951693169290921716919091179055608083015180516127a69260038501920190612e74565b5060a082015180516127c2916004840191602090910190612e74565b5050600190940193506123b09050565b73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b15801561281957600080fd5b505af415801561282d573d6000803e3d6000fd5b505050506040513d602081101561284357600080fd5b5051841461285057600080fd5b6040517f56d9a2e016027a3725bf162ef2779c8b28d4dbec97c679cfba02dbb31a34c7ca90600090a1505050505050505050565b6000821161289157600080fd5b600160a060020a03811615156128a657600080fd5b6005919091556008805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600160a060020a03811615156128ef57600080fd5b600154604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600082151561296957506000610edf565b5081810281838281151561297957fe5b0414610edf57fe5b6000818381151561298e57fe5b049392505050565b60006129a0612dcf565b8210158015610edf57506129b26129bb565b82111592915050565b60006129c5612dd4565b600a0a905090565b606080600060ff86161580156129e4575060ff8516155b15612a7857604080516000815260208101909152600b805460ff8a16908110612a0957fe5b90600052602060002090600502016003019080519060200190612a2d929190612e0c565b50604080516000815260208101909152600b805460ff8a16908110612a4e57fe5b90600052602060002090600502016004019080519060200190612a72929190612e0c565b50612d38565b835160ff86161115612a8957600080fd5b60ff80861690871610612a9b57600080fd5b6001861615612aa957600080fd5b6001851615612ab757600080fd5b600260ff878703160460ff16604051908082528060200260200182016040528015612aec578160200160208202803883390190505b509250600260ff878703160460ff16604051908082528060200260200182016040528015612b24578160200160208202803883390190505b509150600090505b8460ff168660ff161015612cc757612b60848760010160ff16815181101515612b5157fe5b90602001906020020151612996565b1515612b6b57600080fd5b73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015612bb257600080fd5b505af4158015612bc6573d6000803e3d6000fd5b505050506040513d6020811015612bdc57600080fd5b50518451859060ff60018a0116908110612bf257fe5b6020908102909101015110612c0657600080fd5b6000811115612c4f57838660ff16815181101515612c2057fe5b906020019060200201518360018303815181101515612c3b57fe5b6020908102909101015110612c4f57600080fd5b838660ff16815181101515612c6057fe5b906020019060200201518382815181101515612c7857fe5b602090810290910101528351849060ff6001890116908110612c9657fe5b906020019060200201518282815181101515612cae57fe5b6020908102909101015260029590950194600101612b2c565b82600b8860ff16815481101515612cda57fe5b90600052602060002090600502016003019080519060200190612cfe929190612e0c565b5081600b8860ff16815481101515612d1257fe5b90600052602060002090600502016004019080519060200190612d36929190612e0c565b505b50505050505050565b606080828401855110151515612d5657600080fd5b82158015612d6f57604051915060208201604052612db9565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015612da8578051835260209283019201612d90565b5050858452601f01601f1916604052505b50949350505050565b81810182811015610edf57fe5b600090565b6000612dde612de6565b600201905090565b600290565b50805460008255600502906000526020600020908101906119c99190612ee1565b828054828255906000526020600020908101928215612e47579160200282015b82811115612e47578251825591602001919060010190612e2c565b50611558929150612f3a565b50805460008255600502906000526020600020908101906119c99190612f54565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612eb557805160ff1916838001178555612e47565b82800160010185558215612e475791820182811115612e47578251825591602001919060010190612e2c565b61151f91905b8082111561155857805467ffffffffffffffff1916815560006001820181905560028201805463ffffffff19169055612f236003830182612fad565b612f31600483016000612fad565b50600501612ee7565b61151f91905b808211156115585760008155600101612f40565b61151f91905b8082111561155857805463ffffffff1916815560006001820181905560028201805467ffffffffffffffff19169055612f966003830182612fcb565b612fa4600483016000612fcb565b50600501612f5a565b50805460008255906000526020600020908101906119c99190612f3a565b50805460018160011615610100020316600290046000825580601f10612ff157506119c9565b601f0160209004906000526020600020908101906119c99190612f3a565b600061301a82612996565b151561302557600080fd5b610edf613030612de6565b8390600a0a63ffffffff612981165600a165627a7a7230582055ccb04d8c0bdbd9cbddb5cb81f8ddd4bde8aef7a55c312a7f2771e8d9a17a660029", - "deployedBytecode": "0x6080604052600436106101875763ffffffff60e060020a60003504166313096a41811461019157806314f66d34146101c257806317410a07146101f05780631aecc19f14610240578063208853c9146102785780632442e1cb146102a25780632e325020146103d85780632fbe5990146104c9578063313602d4146104de5780633baba4d7146104f35780634090cb641461050857806354fd4d501461051d5780635641f3c314610532578063564566a814610547578063715018a61461055c578063792c02ea146105715780638119c06514610586578063845ddcb21461059b5780638abdf5aa146105e45780638da5cb5b146105f95780638edd6eb61461060e578063a035b1fe14610623578063a4fd6f5614610638578063b13564881461064d578063b60d42881461067b578063ca7348a314610690578063d0febe4c14610187578063d6d65f3d146106a8578063daa4cf88146106bd578063e89e4ed6146106d2578063e93b0540146106ea578063f2fde38b14610702578063fc0c546a14610723575b61018f610738565b005b34801561019d57600080fd5b506101a6610bf5565b60408051600160a060020a039092168252519081900360200190f35b3480156101ce57600080fd5b506101d7610c04565b6040805192835290151560208301528051918290030190f35b3480156101fc57600080fd5b5061018f6024600480358281019290820135918135808301929082013591604435808301929082013591606435808301929082013591608435918201910135610c37565b34801561024c57600080fd5b50610264600160a060020a0360043516602435610e3e565b604080519115158252519081900360200190f35b34801561028457600080fd5b50610290600435610ee5565b60408051918252519081900360200190f35b3480156102ae57600080fd5b506102ba600435610f93565b604051808763ffffffff1663ffffffff1681526020018681526020018563ffffffff1663ffffffff1681526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019080838360005b8381101561033757818101518382015260200161031f565b50505050905090810190601f1680156103645780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b8381101561039757818101518382015260200161037f565b50505050905090810190601f1680156103c45780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b3480156103e457600080fd5b506103f06004356111c0565b604051808763ffffffff1663ffffffff1681526020018663ffffffff1663ffffffff1681526020018581526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015610470578181015183820152602001610458565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156104af578181015183820152602001610497565b505050509050019850505050505050505060405180910390f35b3480156104d557600080fd5b50610290611366565b3480156104ea57600080fd5b5061018f61136c565b3480156104ff57600080fd5b5061029061151b565b34801561051457600080fd5b506101a6611522565b34801561052957600080fd5b50610290611531565b34801561053e57600080fd5b506101a6611537565b34801561055357600080fd5b50610264611546565b34801561056857600080fd5b5061018f61155c565b34801561057d57600080fd5b506102906115ca565b34801561059257600080fd5b506101a66115d0565b3480156105a757600080fd5b506105b36004356115df565b6040805163ffffffff9586168152938516602085015283810192909252909216606082015290519081900360800190f35b3480156105f057600080fd5b50610290611625565b34801561060557600080fd5b506101a661162b565b34801561061a57600080fd5b506101a661163a565b34801561062f57600080fd5b50610290611649565b34801561064457600080fd5b5061026461164f565b34801561065957600080fd5b50610662611697565b6040805163ffffffff9092168252519081900360200190f35b34801561068757600080fd5b506101a66116de565b34801561069c57600080fd5b5061018f6004356116ed565b3480156106b457600080fd5b506101d76116f2565b3480156106c957600080fd5b506101d761176d565b3480156106de57600080fd5b506102ba6004356117f0565b3480156106f657600080fd5b5061018f60043561195e565b34801561070e57600080fd5b5061018f600160a060020a03600435166119cc565b34801561072f57600080fd5b506101a66119ec565b600080600080600080600080600160025414151561075557600080fd5b60028055610761611546565b15156107ce57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f53616c65206973206e6f74207374617274656420796574000000000000000000604482015290519081900360640190fd5b600034116107db57600080fd5b6107e361176d565b509750600b888154811015156107f557fe5b9060005260206000209060050201600101549650600b8881548110151561081857fe5b600091825260209091206002600590920201015463ffffffff16955061083d34610ee5565b945061084a3488876119fb565b50935093509350600060075411156109d05760075461087090859063ffffffff611de516565b60048054600954600854604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a03938416958101959095529082166024850152604484018590525193945016916323b872dd916064808201926020929091908290030181600087803b1580156108f057600080fd5b505af1158015610904573d6000803e3d6000fd5b505050506040513d602081101561091a57600080fd5b5051151561092757600080fd5b600354600954604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152602481018590529051919092169163a9059cbb9160448083019260209291908290030181600087803b15801561099957600080fd5b505af11580156109ad573d6000803e3d6000fd5b505050506040513d60208110156109c357600080fd5b505115156109d057600080fd5b600354604080517f9d2e47770000000000000000000000000000000000000000000000000000000081523360048201526024810187905263ffffffff891660448201529051600160a060020a0390921691639d2e4777916064808201926020929091908290030181600087803b158015610a4957600080fd5b505af1158015610a5d573d6000803e3d6000fd5b505050506040513d6020811015610a7357600080fd5b50511515610a8057600080fd5b6000821115610ab857604051339083156108fc029084906000818181858888f19350505050158015610ab6573d6000803e3d6000fd5b505b60006006541115610b1457600854600654600160a060020a03909116906108fc90610aea90869063ffffffff611de516565b6040518115909202916000818181858888f19350505050158015610b12573d6000803e3d6000fd5b505b600a54604080517f958799cb000000000000000000000000000000000000000000000000000000008152336004820152602481018790529051600160a060020a039092169163958799cb91620186a09130319160448082019260009290919082900301818589803b158015610b8857600080fd5b5088f1158015610b9c573d6000803e3d6000fd5b505060408051888152602081018a905280820188905290513395507f347f5f0051b895093800553e6e78ef332849e2552639a4f5ffe66535788ae07894509081900360600192509050a250506001600255505050505050565b600454600160a060020a031681565b600c5460009081901580610c1d5750610c1b61164f565b155b15610c2757610c33565b5050600c546000190160015b9091565b600154600160a060020a03163314610c4e57600080fd5b600b5460001015610c8b5742600b6000815481101515610c6a57fe5b600091825260209091206005909102015463ffffffff1611610c8b57600080fd5b881515610c9757600080fd5b60ff891115610ca557600080fd5b60ff851115610cb357600080fd5b600283048514610cc257600080fd5b60028104851115610cd257600080fd5b610d6b8a8a808060200260200160405190810160405280939291908181526020016000905b82821015610d33576040805160c08181019092529080840287019060069083908390808284375050509183525050600190910190602001610cf7565b505050505089898080602002602001604051908101604052809392919081815260200183836020028082843750611e1d945050505050565b610e328686808060200260200160405190810160405280939291908181526020016000905b82821015610dcc576040805160808181019092529080840287019060049083908390808284375050509183525050600190910190602001610d90565b50505050508585808060200260200160405190810160405280939291908181526020018383602002808284375050604080516020601f8b018190048102820181019092528981529450899350889250829150840183828082843750612326945050505050565b50505050505050505050565b600354604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152602482018590529151600093929092169163a9059cbb9160448082019260209290919082900301818787803b158015610eb057600080fd5b505af1158015610ec4573d6000803e3d6000fd5b505050506040513d6020811015610eda57600080fd5b505190505b92915050565b6000806000806000610ef561176d565b93509350821515610f095760009450610f8a565b600b805485908110610f1757fe5b90600052602060002090600502019150600090505b6003820154811015610f8a5760038201805482908110610f4857fe5b906000526020600020015486101515610f7d5760048201805482908110610f6b57fe5b90600052602060002001549450610f82565b610f8a565b600101610f2c565b50505050919050565b600080600080606080600c87815481101515610fab57fe5b6000918252602090912060059091020154600c805463ffffffff9092169189908110610fd357fe5b906000526020600020906005020160010154600c89815481101515610ff457fe5b6000918252602090912060026005909202010154600c805463ffffffff909216918b90811061101f57fe5b906000526020600020906005020160020160049054906101000a900463ffffffff16600c8b81548110151561105057fe5b9060005260206000209060050201600301600c8c81548110151561107057fe5b9060005260206000209060050201600401818054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111165780601f106110eb57610100808354040283529160200191611116565b820191906000526020600020905b8154815290600101906020018083116110f957829003601f168201915b5050845460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152959750869450925084019050828280156111a45780601f10611179576101008083540402835291602001916111a4565b820191906000526020600020905b81548152906001019060200180831161118757829003601f168201915b5050505050905095509550955095509550955091939550919395565b600080600080606080600b878154811015156111d857fe5b6000918252602090912060059091020154600b805463ffffffff909216918990811061120057fe5b906000526020600020906005020160000160049054906101000a900463ffffffff16600b8981548110151561123157fe5b906000526020600020906005020160010154600b8a81548110151561125257fe5b6000918252602090912060026005909202010154600b805463ffffffff909216918c90811061127d57fe5b9060005260206000209060050201600301600b8c81548110151561129d57fe5b9060005260206000209060050201600401818054806020026020016040519081016040528092919081815260200182805480156112f957602002820191906000526020600020905b8154815260200190600101908083116112e5575b50505050509150808054806020026020016040519081016040528092919081815260200182805480156111a457602002820191906000526020600020905b815481526020019060010190808311611337575050505050905095509550955095509550955091939550919395565b60075481565b600154600090600160a060020a0316331461138657600080fd5b61138e61164f565b151561139957600080fd5b600354604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b1580156113ff57600080fd5b505af1158015611413573d6000803e3d6000fd5b505050506040513d602081101561142957600080fd5b5051600354600154604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a03928316600482015260248101859052905193945091169163a9059cbb916044808201926020929091908290030181600087803b15801561149f57600080fd5b505af11580156114b3573d6000803e3d6000fd5b505050506040513d60208110156114c957600080fd5b505115156114d657600080fd5b600154604080518381529051600160a060020a03909216917f26ffb867a6b19bc0240d4e732ed6cfb0f0b6d93143a99cfb24ba5873308861f89181900360200190a250565b600c545b90565b600354600160a060020a031690565b60005481565b600854600160a060020a031681565b60008061155161176d565b9150508091505b5090565b600154600160a060020a0316331461157357600080fd5b600154604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26001805473ffffffffffffffffffffffffffffffffffffffff19169055565b600b5490565b600954600160a060020a031681565b600b8054829081106115ed57fe5b600091825260209091206005909102018054600182015460029092015463ffffffff8083169450640100000000909204821692911684565b60065481565b600154600160a060020a031681565b600a54600160a060020a031690565b60055481565b600b5460009015806116925750600b8054429190600019810190811061167157fe5b6000918252602090912060059091020154640100000000900463ffffffff16105b905090565b600b5460009081106116a857600080fd5b600b805460001981019081106116ba57fe5b6000918252602090912060059091020154640100000000900463ffffffff16919050565b600a54600160a060020a031681565b600755565b600c546000908190158061170b575061170961164f565b155b1561171557610c33565b5060015b600c54600019018210801561175d5750600c80548390811061173757fe5b6000918252602090912060059091020160020154640100000000900463ffffffff164210155b15610c3357600190910190611719565b60008080805b600b548210156117e257600b80548390811061178b57fe5b6000918252602090912060059091020180549091504263ffffffff909116118015906117c6575080544264010000000090910463ffffffff16115b156117d757816001935093506117ea565b600190910190611773565b600093508392505b50509091565b600c8054829081106117fe57fe5b60009182526020918290206005919091020180546001808301546002808501546003860180546040805161010097831615979097026000190190911693909304601f810189900489028601890190935282855263ffffffff95861698509296858216966401000000009092049095169490939291908301828280156118c45780601f10611899576101008083540402835291602001916118c4565b820191906000526020600020905b8154815290600101906020018083116118a757829003601f168201915b5050505060048301805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529495949350908301828280156119545780601f1061192957610100808354040283529160200191611954565b820191906000526020600020905b81548152906001019060200180831161193757829003601f168201915b5050505050905086565b600154600160a060020a0316331461197557600080fd5b600b54600010156119b25742600b600081548110151561199157fe5b600091825260209091206005909102015463ffffffff16116119b257600080fd5b6008546119c9908290600160a060020a0316612884565b50565b600154600160a060020a031633146119e357600080fd5b6119c9816128da565b600354600160a060020a031681565b600354604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290516000928692849283928392600160a060020a03909116916370a082319160248082019260209290919082900301818787803b158015611a6b57600080fd5b505af1158015611a7f573d6000803e3d6000fd5b505050506040513d6020811015611a9557600080fd5b5051600354604080517f313ce5670000000000000000000000000000000000000000000000000000000081529051929350600160a060020a039091169163313ce567916004808201926020929091908290030181600087803b158015611afa57600080fd5b505af1158015611b0e573d6000803e3d6000fd5b505050506040513d6020811015611b2457600080fd5b505160ff16600a0a811015611b3857600080fd5b60008711611b4857600554611bd0565b611bd08773__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015611b9357600080fd5b505af4158015611ba7573d6000803e3d6000fd5b505050506040513d6020811015611bbd57600080fd5b505160055491900363ffffffff611de516565b9150611db273__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015611c1c57600080fd5b505af4158015611c30573d6000803e3d6000fd5b505050506040513d6020811015611c4657600080fd5b5051600354604080517f313ce5670000000000000000000000000000000000000000000000000000000081529051611da69287928492600160a060020a039092169163313ce567916004808201926020929091908290030181600087803b158015611cb057600080fd5b505af1158015611cc4573d6000803e3d6000fd5b505050506040513d6020811015611cda57600080fd5b5051604080517fd49d5181000000000000000000000000000000000000000000000000000000008152905160ff909216600a0a91611d9a918e9173__Percent_______________________________9163d49d5181916004808301926020929190829003018186803b158015611d4f57600080fd5b505af4158015611d63573d6000803e3d6000fd5b505050506040513d6020811015611d7957600080fd5b8101908080519060200190929190505050018f61295890919063ffffffff16565b9063ffffffff61295816565b9063ffffffff61298116565b945084811015611ddb57611dd085611da68a8463ffffffff61295816565b935083880392508094505b5093509350935093565b6000611df082612996565b1515611dfb57600080fd5b611e16611e066129bb565b611da6858563ffffffff61295816565b9392505050565b600c54600090811015611e7a57825183906000198101908110611e3c57fe5b6020908102919091018101510151600c80546000908110611e5957fe5b600091825260209091206005909102015463ffffffff1611611e7a57600080fd5b611e86600b6000612deb565b5060005b82518160ff1610156122f857825163ffffffff90849060ff8416908110611ead57fe5b6020908102919091010151511115611ec457600080fd5b825163ffffffff90849060ff8416908110611edb57fe5b60209081029190910181015101511115611ef457600080fd5b825163ffffffff90849060ff8416908110611f0b57fe5b6020908102919091010151606001511115611f2557600080fd5b825160ff908490838316908110611f3857fe5b6020908102919091010151608001511115611f5257600080fd5b825160ff908490838316908110611f6557fe5b602090810291909101015160a001511115611f7f57600080fd5b42838260ff16815181101515611f9157fe5b60209081029190910101515111611fa757600080fd5b828160ff16815181101515611fb857fe5b60209081029190910181015101518351849060ff8416908110611fd757fe5b60209081029190910101515110611fed57600080fd5b60008160ff16111561204457828160ff1681518110151561200a57fe5b6020908102919091010151518351849060ff60001985011690811061202b57fe5b6020908102919091018101510151111561204457600080fd5b61206f838260ff1681518110151561205857fe5b6020908102909101015160025b6020020151612996565b151561207a57600080fd5b73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b1580156120c157600080fd5b505af41580156120d5573d6000803e3d6000fd5b505050506040513d60208110156120eb57600080fd5b50518351849060ff84169081106120fe57fe5b6020908102919091010151604001511061211757600080fd5b600b60c060405190810160405280858460ff1681518110151561213657fe5b6020908102919091018101515163ffffffff1682528651910190869060ff861690811061215f57fe5b602090810290910101516001602002015163ffffffff168152602001858460ff1681518110151561218c57fe5b60209081029091010151600260200201518152602001858460ff168151811015156121b357fe5b6020908102919091018101516060015163ffffffff16825260408051600080825281840183528484019190915281518181529283018252920191509052815460018082018085556000948552602094859020845160059094020180548587015163ffffffff1991821663ffffffff9687161767ffffffff00000000191664010000000091871691909102178255604086015193820193909355606085015160028201805490941694169390931790915560808301518051919461227e92600385019290910190612e0c565b5060a0820151805161229a916004840191602090910190612e0c565b505050506122f06001600b8054905003848360ff168151811015156122bb57fe5b6020908102919091010151608001518551869060ff86169081106122db57fe5b602090810291909101015160a00151856129cd565b600101611e8a565b6040517f743961f4e677d1146fbf85d75565b1c5474fd083eb166f8b9595cf5d01a4d6e690600090a1505050565b6000806000806060806000600b8054905011156123935788600081518110151561234c57fe5b602090810291909101015151600b8054600019810190811061236a57fe5b6000918252602090912060059091020154640100000000900463ffffffff161061239357600080fd5b61239f600c6000612e53565b600095506000945060009350600092505b88518360ff1610156127d257885163ffffffff908a9060ff86169081106123d357fe5b60209081029190910101515111156123ea57600080fd5b885163ffffffff908a9060ff861690811061240157fe5b6020908102919091018101510151111561241a57600080fd5b885163ffffffff908a9060ff861690811061243157fe5b602090810291909101015160400151111561244b57600080fd5b42898460ff1681518110151561245d57fe5b6020908102919091010151511161247357600080fd5b888360ff1681518110151561248457fe5b60209081029190910101515189518a9060ff86169081106124a157fe5b6020908102919091018101510151116124b957600080fd5b888360ff168151811015156124ca57fe5b602090810291909101810151015189518a9060ff86169081106124e957fe5b6020908102919091010151604001511161250257600080fd5b60008360ff16111561255957888360ff1681518110151561251f57fe5b60209081029190910101515189518a9060ff60001987011690811061254057fe5b6020908102919091010151604001511061255957600080fd5b61257e898460ff1681518110151561256d57fe5b602090810290910101516003612065565b151561258957600080fd5b6125bb86898781518110151561259b57fe5b9060200190602002015163ffffffff1689612d419092919063ffffffff16565b91506125ed88868151811015156125ce57fe5b9060200190602002015163ffffffff1687612dc290919063ffffffff16565b955061260486898760010181518110151561259b57fe5b905061261a88866001018151811015156125ce57fe5b955061262d85600263ffffffff612dc216565b9450612659898460ff1681518110151561264357fe5b6020908102919091010151606001518590612dc2565b9350600c60c0604051908101604052808b8660ff1681518110151561267a57fe5b6020908102919091018101515163ffffffff1682528c519101908c9060ff88169081106126a357fe5b602090810290910101516003602002015181526020018b8660ff168151811015156126ca57fe5b602090810290910101516001602002015163ffffffff1681526020018b8660ff168151811015156126f757fe5b6020908102909101015160026020908102919091015163ffffffff90811683528282018790526040928301869052845460018181018088556000978852968490208651600590930201805492841663ffffffff19938416178155868501519181019190915593850151600285018054606088015185166401000000000267ffffffff00000000199390951693169290921716919091179055608083015180516127a69260038501920190612e74565b5060a082015180516127c2916004840191602090910190612e74565b5050600190940193506123b09050565b73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b15801561281957600080fd5b505af415801561282d573d6000803e3d6000fd5b505050506040513d602081101561284357600080fd5b5051841461285057600080fd5b6040517f56d9a2e016027a3725bf162ef2779c8b28d4dbec97c679cfba02dbb31a34c7ca90600090a1505050505050505050565b6000821161289157600080fd5b600160a060020a03811615156128a657600080fd5b6005919091556008805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600160a060020a03811615156128ef57600080fd5b600154604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600082151561296957506000610edf565b5081810281838281151561297957fe5b0414610edf57fe5b6000818381151561298e57fe5b049392505050565b60006129a0612dcf565b8210158015610edf57506129b26129bb565b82111592915050565b60006129c5612dd4565b600a0a905090565b606080600060ff86161580156129e4575060ff8516155b15612a7857604080516000815260208101909152600b805460ff8a16908110612a0957fe5b90600052602060002090600502016003019080519060200190612a2d929190612e0c565b50604080516000815260208101909152600b805460ff8a16908110612a4e57fe5b90600052602060002090600502016004019080519060200190612a72929190612e0c565b50612d38565b835160ff86161115612a8957600080fd5b60ff80861690871610612a9b57600080fd5b6001861615612aa957600080fd5b6001851615612ab757600080fd5b600260ff878703160460ff16604051908082528060200260200182016040528015612aec578160200160208202803883390190505b509250600260ff878703160460ff16604051908082528060200260200182016040528015612b24578160200160208202803883390190505b509150600090505b8460ff168660ff161015612cc757612b60848760010160ff16815181101515612b5157fe5b90602001906020020151612996565b1515612b6b57600080fd5b73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015612bb257600080fd5b505af4158015612bc6573d6000803e3d6000fd5b505050506040513d6020811015612bdc57600080fd5b50518451859060ff60018a0116908110612bf257fe5b6020908102909101015110612c0657600080fd5b6000811115612c4f57838660ff16815181101515612c2057fe5b906020019060200201518360018303815181101515612c3b57fe5b6020908102909101015110612c4f57600080fd5b838660ff16815181101515612c6057fe5b906020019060200201518382815181101515612c7857fe5b602090810290910101528351849060ff6001890116908110612c9657fe5b906020019060200201518282815181101515612cae57fe5b6020908102909101015260029590950194600101612b2c565b82600b8860ff16815481101515612cda57fe5b90600052602060002090600502016003019080519060200190612cfe929190612e0c565b5081600b8860ff16815481101515612d1257fe5b90600052602060002090600502016004019080519060200190612d36929190612e0c565b505b50505050505050565b606080828401855110151515612d5657600080fd5b82158015612d6f57604051915060208201604052612db9565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015612da8578051835260209283019201612d90565b5050858452601f01601f1916604052505b50949350505050565b81810182811015610edf57fe5b600090565b6000612dde612de6565b600201905090565b600290565b50805460008255600502906000526020600020908101906119c99190612ee1565b828054828255906000526020600020908101928215612e47579160200282015b82811115612e47578251825591602001919060010190612e2c565b50611558929150612f3a565b50805460008255600502906000526020600020908101906119c99190612f54565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612eb557805160ff1916838001178555612e47565b82800160010185558215612e475791820182811115612e47578251825591602001919060010190612e2c565b61151f91905b8082111561155857805467ffffffffffffffff1916815560006001820181905560028201805463ffffffff19169055612f236003830182612fad565b612f31600483016000612fad565b50600501612ee7565b61151f91905b808211156115585760008155600101612f40565b61151f91905b8082111561155857805463ffffffff1916815560006001820181905560028201805467ffffffffffffffff19169055612f966003830182612fcb565b612fa4600483016000612fcb565b50600501612f5a565b50805460008255906000526020600020908101906119c99190612f3a565b50805460018160011615610100020316600290046000825580601f10612ff157506119c9565b601f0160209004906000526020600020908101906119c99190612f3a565b600061301a82612996565b151561302557600080fd5b610edf613030612de6565b8390600a0a63ffffffff612981165600a165627a7a7230582055ccb04d8c0bdbd9cbddb5cb81f8ddd4bde8aef7a55c312a7f2771e8d9a17a660029", - "sourceMap": "57:818:3:-;;;487:1:28;657:51;;105:520:3;8:9:-1;5:2;;;30:1;27;20:12;5:2;105:520:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;123:7:26;:18;;;567:5:31;:18;;-1:-1:-1;;;;;;567:18:31;575:10;567:18;;;105:520:3;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1922:26:1;;;;1914:35;;;;;;-1:-1:-1;;;;;1967:20:1;;;;1959:29;;;;;;2006:23;:11;:21;;;;;;:23;:::i;:::-;:58;;;;-1:-1:-1;2061:3:1;2033:25;:11;:23;;;;;;:25;:::i;:::-;:31;2006:58;1998:67;;;;;;;;2083:33;:21;:31;;;;;;:33;:::i;:::-;:78;;;;-1:-1:-1;2158:3:1;2120:35;:21;:33;;;;;;:35;:::i;:::-;:41;2083:78;2075:87;;;;;;;;-1:-1:-1;;;;;2180:19:1;;;;2172:28;;;;;;-1:-1:-1;;;;;2218:19:1;;;;2210:28;;;;;;2249:39;2265:6;2273:14;2249:15;;;;:39;:::i;:::-;2299:5;:22;;-1:-1:-1;;;;;;2299:22:1;;;-1:-1:-1;;;;;2299:22:1;;;;;;;2331:11;:33;;;;;;;;;;;;;;2374:10;:24;;;;2408:4;:12;;;;;;;;;;;;;;2430:20;:44;;;;2484:4;:12;;;;;;;;;;;;;;-1:-1:-1;57:818:3;;-1:-1:-1;;;;;;;;;;;57:818:3;554:107:14;605:4;634:5;:3;;;;:5;:::i;:::-;628:2;:11;;:26;;;;-1:-1:-1;649:5:14;:3;;;;:5;:::i;:::-;643:2;:11;;628:26;621:33;554:107;-1:-1:-1;;554:107:14:o;806:139::-;859:4;883:13;893:2;883:9;;;;:13;:::i;:::-;875:22;;;;;;;;915:23;928:9;:7;;;;:9;:::i;:::-;915:2;;922;:15;915:6;;;;;;:23;:::i;4265:219:1:-;4363:1;4354:10;;4346:19;;;;;;-1:-1:-1;;;;;4383:28:1;;;;4375:37;;;;;;4423:5;:14;;;;4447:13;:30;;-1:-1:-1;;;;;;4447:30:1;-1:-1:-1;;;;;4447:30:1;;;;;;;;;4265:219::o;275:55:14:-;311:4;275:55;:::o;335:65::-;371:4;392:5;:3;;;;:5;:::i;:::-;386:2;:11;379:18;;335:65;:::o;139:59::-;194:1;139:59;:::o;665:283:30:-;725:7;941:2;936;:7;;;;;;;;;665:283;-1:-1:-1;;;665:283:30:o;203:67:14:-;239:4;258:9;:7;;;;:9;:::i;:::-;254:1;:13;247:20;;203:67;:::o;57:818:3:-;;;;;;;", - "deployedSourceMap": "57:818:3:-;;;;;;;;;-1:-1:-1;;;57:818:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14783:11:1;:9;:11::i;:::-;57:818:3;1080:24:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1080:24:1;;;;;;;;-1:-1:-1;;;;;1080:24:1;;;;;;;;;;;;;;4054:205;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4054:205:1;;;;;;;;;;;;;;;;;;;;;;;;;;;4691:1031;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4691:1031:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;631:119:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;631:119:3;-1:-1:-1;;;;;631:119:3;;;;;;;;;;;;;;;;;;;;;;;;;13431:452:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13431:452:1;;;;;;;;;;;;;;;;;;;;;2709:388;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2709:388: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;2709:388:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2709:388: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;2709:388:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3103:359;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3103:359: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;3103:359: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;3103:359:1;;;;;;;;;;;;;;;;;;;;;;;1161:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1161:32:1;;;;14226:240;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14226:240:1;;;;2605:98;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2605:98:1;;;;13260:80;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13260:80:1;;;;53:19:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;53:19:26;;;;1199:28:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1199:28:1;;;;14609:130;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14609:130:1;;;;1001:111:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1001:111:31;;;;2509:90:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2509:90:1;;;;1233:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1233:19:1;;;;1285:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1285:21:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1133:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1133:22:1;;;;238:20:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:31;;;;13346:79:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13346:79:1;;;;1110:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1110:17:1;;;;14472:131;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14472:131:1;;;;3468:147;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3468:147:1;;;;;;;;;;;;;;;;;;;;;;;1258:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1258:20:1;;;;756:117:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;756:117:3;;;;;3701:347:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3701:347:1;;;;13889:331;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13889:331:1;;;;1312:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1312:29:1;;;;;4490:126;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4490:126:1;;;;;1274:103:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1274:103:31;-1:-1:-1;;;;;1274:103:31;;;;;1055:19:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1055:19:1;;;;11363:1091;11475:10;11524:13;11572:14;11620:16;11680;11698:12;11712:11;11832:14;487:1:28;1128:14;;:39;1120:48;;;;;;;;584:1;1174:40;;14998:14:1;:12;:14::i;:::-;14990:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11461:1;11449:9;:13;11441:22;;;;;;11491;:20;:22::i;:::-;11474:39;;;11540:6;11547:5;11540:13;;;;;;;;;;;;;;;;;;;;:22;;;11524:38;;11589:6;11596:5;11589:13;;;;;;;;;;;;;;;;;;:21;:13;;;;;:21;;;;;-1:-1:-1;11639:29:1;11658:9;11639:18;:29::i;:::-;11620:48;;11729;11744:9;11755:8;11765:11;11729:14;:48::i;:::-;11679:98;;;;;;;11815:1;11792:20;;:24;11788:247;;;11869:20;;11849:41;;:11;;:41;:19;:41;:::i;:::-;11913:11;;;11938:4;;11944:13;;11913:56;;;;;;-1:-1:-1;;;;;11938:4:1;;;11913:56;;;;;;;11944:13;;;11913:56;;;;;;;;;;;11832:58;;-1:-1:-1;11913:11:1;;:24;;:56;;;;;;;;;;;;;;;:11;;:56;;;5:2:-1;;;;30:1;27;20:12;5:2;11913:56:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11913:56:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11913:56:1;11905:65;;;;;;;;11992:5;;12007:4;;11992:31;;;;;;-1:-1:-1;;;;;12007:4:1;;;11992:31;;;;;;;;;;;;:5;;;;;:14;;:31;;;;;;;;;;;;;;:5;;:31;;;5:2:-1;;;;30:1;27;20:12;5:2;11992:31:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11992:31:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11992:31:1;11984:40;;;;;;;;12053:5;;:55;;;;;;12075:10;12053:55;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12053:5:1;;;;:21;;:55;;;;;;;;;;;;;;;:5;;:55;;;5:2:-1;;;;30:1;27;20:12;5:2;12053:55:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12053:55:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12053:55:1;12045:64;;;;;;;;12133:1;12124:6;:10;12120:68;;;12150:27;;:10;;:27;;;;;12170:6;;12150:27;;;;12170:6;12150:10;:27;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12150:27:1;12120:68;12214:1;12201:10;;:14;12198:82;;;12229:13;;12268:10;;-1:-1:-1;;;;;12229:13:1;;;;:51;;12252:27;;:7;;:27;:15;:27;:::i;:::-;12229:51;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12229:51:1;12198:82;12291:4;;:85;;;;;;12352:10;12291:85;;;;;;;;;;;;-1:-1:-1;;;;;12291:4:1;;;;:19;;12344:6;;12325:4;12317:21;;12291:85;;;;;:4;;:85;;;;;;;;12317:21;12291:4;:85;;;5:2:-1;;;;30:1;27;20:12;5:2;12291:85:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;12392:55:1;;;;;;;;;;;;;;;;;;;;12406:10;;-1:-1:-1;12392:55:1;;-1:-1:-1;12392:55:1;;;;;;;-1:-1:-1;12392:55:1;-1:-1:-1;12392:55:1;-1:-1:-1;;487:1:28;1227:14;:38;-1:-1:-1;;;;;;11363:1091:1:o;1080:24::-;;;-1:-1:-1;;;;;1080:24:1;;:::o;4054:205::-;4146:10;:17;4108:10;;;;4146:22;;:36;;;4173:9;:7;:9::i;:::-;4172:10;4146:36;4142:49;;;4184:7;;4142:49;-1:-1:-1;;4231:10:1;:17;-1:-1:-1;;4231:21:1;4209:4;4054:205;;;:::o;4691:1031::-;719:5:31;;-1:-1:-1;;;;;719:5:31;705:10;:19;697:28;;;;;;14848:6:1;:13;14864:1;-1:-1:-1;14844:82:1;;;14911:3;14889:6;14896:1;14889:9;;;;;;;;;;;;;;;;;;;;;;;:19;;;:25;14881:34;;;;;;5049:30;;;5041:39;;;;;;5098;;;;5090:48;;;;;;5210:43;;;;5202:52;;;;;;5352:1;5305:37;:48;5272:81;;5264:90;;;;;;5446:1;5405:31;:42;5372:75;;;5364:84;;;;;;5459:89;5483:18;;5459:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5459:89:1;;;-1:-1:-1;;5459:89:1;;;;;;;;;;;;;;;5515:23;;5459:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5459:10:1;;-1:-1:-1;;;;;5459:89:1:i;:::-;5559:156;5587:22;;5559:156;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5559:156:1;;;-1:-1:-1;;5559:156:1;;;;;;;;;;;;;;;5623:37;;5559:156;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5559:156:1;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5674:31:1;;-1:-1:-1;5674:31:1;;-1:-1:-1;5674:31:1;;-1:-1:-1;5559:156:1;;5674:31;;;;5559:156;;-1:-1:-1;5559:14:1;;-1:-1:-1;;;;;5559:156:1:i;:::-;4691:1031;;;;;;;;;;:::o;631:119:3:-;717:5;;:26;;;;;;-1:-1:-1;;;;;717:26:3;;;;;;;;;;;;;;;694:4;;717:5;;;;;:14;;:26;;;;;;;;;;;;;;;694:4;717:5;:26;;;5:2:-1;;;;30:1;27;20:12;5:2;717:26:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;717:26:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;717:26:3;;-1:-1:-1;631:119:3;;;;;:::o;13431:452:1:-;13491:10;13514;13526;13604:19;13654:6;13540:22;:20;:22::i;:::-;13513:49;;;;13578:5;13577:6;13573:20;;;13592:1;13585:8;;;;13573:20;13626:6;:13;;13633:5;;13626:13;;;;;;;;;;;;;;;;13604:35;;13663:1;13654:10;;13650:227;13670:22;;;:29;13666:33;;13650:227;;;13733:22;;;:25;;13756:1;;13733:25;;;;;;;;;;;;;;13724:5;:34;;13720:147;;;13786:19;;;:22;;13806:1;;13786:22;;;;;;;;;;;;;;13778:30;;13720:147;;;13847:5;;13720:147;13701:3;;13650:227;;;13431:452;;;;;;;:::o;2709:388::-;2764:6;2772:4;2778:6;2786;2794:5;2801;2839:10;2850:5;2839:17;;;;;;;;;;;;;;;;;;;;;;;:25;2878:10;:17;;2839:25;;;;;2889:5;;2878:17;;;;;;;;;;;;;;;;:32;;;2924:10;2935:5;2924:17;;;;;;;;;;;;;;;;;;:29;:17;;;;;:29;;2967:10;:17;;2924:29;;;;;2978:5;;2967:17;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;3015:10;3026:5;3015:17;;;;;;;;;;;;;;;;;;;;:22;;3051:10;3062:5;3051:17;;;;;;;;;;;;;;;;;;;;:29;;2818:272;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2818:272:1;;;;;;;;;;;;;-1:-1:-1;;2818:272:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2818:272:1;;-1:-1:-1;2818:272:1;-1:-1:-1;2818:272:1;;;-1:-1:-1;2818:272:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2709:388;;;;;;;:::o;3103:359::-;3154:6;3162;3170:4;3176:6;3184;3192;3231;3238:5;3231:13;;;;;;;;;;;;;;;;;;;;;;;:23;3268:6;:13;;3231:23;;;;;3275:5;;3268:13;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;3303:6;3310:5;3303:13;;;;;;;;;;;;;;;;;;;;:22;;;3339:6;3346:5;3339:13;;;;;;;;;;;;;;;;;;:21;:13;;;;;:21;;3374:6;:13;;3339:21;;;;;3381:5;;3374:13;;;;;;;;;;;;;;;;:30;;3418:6;3425:5;3418:13;;;;;;;;;;;;;;;;;;;;:27;;3210:245;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3103:359;;;;;;;:::o;1161:32::-;;;;:::o;14226:240::-;719:5:31;;14316:11:1;;-1:-1:-1;;;;;719:5:31;705:10;:19;697:28;;;;;;14295:9:1;:7;:9::i;:::-;14287:18;;;;;;;;14330:5;;:30;;;;;;14354:4;14330:30;;;;;;-1:-1:-1;;;;;14330:5:1;;;;:15;;:30;;;;;;;;;;;;;;;:5;;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;14330:30:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14330:30:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14330:30:1;14379:5;;;14394;14379:29;;;;;;-1:-1:-1;;;;;14394:5:1;;;14379:29;;;;;;;;;;;;14330:30;;-1:-1:-1;14379:5:1;;;:14;;:29;;;;;14330:30;;14379:29;;;;;;;;:5;;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;14379:29:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14379:29:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14379:29:1;14371:38;;;;;;;;14445:5;;14425:34;;;;;;;;-1:-1:-1;;;;;14445:5:1;;;;14425:34;;;;;;;;;14226:240;:::o;2605:98::-;2679:10;:17;2605:98;;:::o;13260:80::-;13328:5;;-1:-1:-1;;;;;13328:5:1;13260:80;:::o;53:19:26:-;;;;:::o;1199:28:1:-;;;-1:-1:-1;;;;;1199:28:1;;:::o;14609:130::-;14654:4;14673:10;14687:22;:20;:22::i;:::-;14670:39;;;14727:5;14720:12;;14609:130;;;:::o;1001:111:31:-;719:5;;-1:-1:-1;;;;;719:5:31;705:10;:19;697:28;;;;;;1077:5;;1058:25;;-1:-1:-1;;;;;1077:5:31;;;;1058:25;;1077:5;;1058:25;1089:5;:18;;-1:-1:-1;;1089:18:31;;;1001:111::o;2509:90:1:-;2579:6;:13;2509:90;:::o;1233:19::-;;;-1:-1:-1;;;;;1233:19:1;;:::o;1285:21::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1285:21:1;;;;;;;;;;:::o;1133:22::-;;;;:::o;238:20:31:-;;;-1:-1:-1;;;;;238:20:31;;:::o;13346:79:1:-;13414:4;;-1:-1:-1;;;;;13414:4:1;13346:79;:::o;1110:17::-;;;;:::o;14472:131::-;14535:6;:13;14512:4;;14535:18;;:61;;-1:-1:-1;14557:6:1;14564:13;;14593:3;;14557:6;-1:-1:-1;;14564:17:1;;;14557:25;;;;;;;;;;;;;;;;;;;:33;;;;;;:39;14535:61;14528:68;;14472:131;:::o;3468:147::-;3539:6;:13;3513:6;;3539:17;-1:-1:-1;3531:26:1;;;;;;3575:6;3582:13;;-1:-1:-1;;3582:17:1;;;3575:25;;;;;;;;;;;;;;;;;;;:33;;;;;;;3468:147;-1:-1:-1;3468:147:1:o;1258:20::-;;;-1:-1:-1;;;;;1258:20:1;;:::o;756:117:3:-;822:20;:44;756:117::o;3701:347:1:-;3795:10;:17;3758:10;;;;3795:22;;:36;;;3822:9;:7;:9::i;:::-;3821:10;3795:36;3792:48;;;3833:7;;3792:48;-1:-1:-1;3858:4:1;3928:114;3942:10;:17;-1:-1:-1;;3942:21:1;3934:29;;:74;;;;-1:-1:-1;3974:10:1;:17;;3985:5;;3974:17;;;;;;;;;;;;;;;;;;;:34;;;;;;;;3967:3;:41;;3934:74;3928:114;;;4024:7;;;;;3928:114;;13889:331;13942:10;;;;13976:210;13996:6;:13;13992:17;;13976:210;;;14052:6;:9;;14059:1;;14052:9;;;;;;;;;;;;;;;;;;;14080:15;;14052:9;;-1:-1:-1;14099:3:1;14080:15;;;;:22;;;;:45;;-1:-1:-1;14106:13:1;;14122:3;14106:13;;;;;;:19;14080:45;14076:100;;;14153:1;14156:4;14145:16;;;;;;14076:100;14011:3;;;;;13976:210;;;14204:1;;-1:-1:-1;14204:1:1;;-1:-1:-1;13889:331:1;;;;;:::o;1312:29::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1312:29:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1312:29:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;1312:29:1;;;;;;;;;;;;;;;;-1:-1:-1;;1312:29:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1312:29:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4490:126::-;719:5:31;;-1:-1:-1;;;;;719:5:31;705:10;:19;697:28;;;;;;14848:6:1;:13;14864:1;-1:-1:-1;14844:82:1;;;14911:3;14889:6;14896:1;14889:9;;;;;;;;;;;;;;;;;;;;;;;:19;;;:25;14881:34;;;;;;4595:13;;4571:38;;4587:6;;-1:-1:-1;;;;;4595:13:1;4571:15;:38::i;:::-;4490:126;:::o;1274:103:31:-;719:5;;-1:-1:-1;;;;;719:5:31;705:10;:19;697:28;;;;;;1343:29;1362:9;1343:18;:29::i;1055:19:1:-;;;-1:-1:-1;;;;;1055:19:1;;:::o;12460:794::-;12671:5;;:30;;;;;;12695:4;12671:30;;;;;;12559:11;;12641:4;;12559:11;;;;;;-1:-1:-1;;;;;12671:5:1;;;;:15;;:30;;;;;;;;;;;;;;;12559:11;12671:5;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;12671:30:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12671:30:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12671:30:1;12742:5;;:16;;;;;;;;12671:30;;-1:-1:-1;;;;;;12742:5:1;;;;:14;;:16;;;;;12671:30;;12742:16;;;;;;;;:5;;:16;;;5:2:-1;;;;30:1;27;20:12;5:2;12742:16:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12742:16:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12742:16:1;12737:22;;12731:2;:28;12720:39;;;12712:48;;;;;;12796:1;12785:8;:12;:86;;12866:5;;12785:86;;;12812:39;12842:8;12826:7;:11;:13;;;;;-1:-1:-1;;;12826:13:1;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12826:13:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12826:13:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12826:13:1;12812:5;;;12826:24;;12812:39;:13;:39;:::i;:::-;12771:100;;12891:159;13036:7;:11;:13;;;;;-1:-1:-1;;;13036:13:1;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13036:13:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13036:13:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13036:13:1;12970:5;;:16;;;;;;;;12891:127;;13006:11;;12891:127;;-1:-1:-1;;;;;12970:5:1;;;;:14;;:16;;;;;13036:13;;12970:16;;;;;;;;:5;;:16;;;5:2:-1;;;;30:1;27;20:12;5:2;12970:16:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12970:16:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12970:16:1;12913:13;;;;;;;;12965:22;;;;12959:2;:28;;12891:50;;12929:11;;12913:7;;:11;;:13;;;;;12970:16;;12913:13;;;;;;;:7;:13;;;5:2:-1;;;;30:1;27;20:12;5:2;12913:13:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12913:13:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12913:13:1;;;;;;;;;;;;;;;;:27;12891:4;:21;;:50;;;;:::i;:::-;:67;:97;:67;:97;:::i;:::-;:114;:127;:114;:127;:::i;:159::-;12882:168;;13075:6;13065:7;:16;13061:187;;;13107:63;13163:6;13107:34;:4;13133:7;13107:34;:25;:34;:::i;:63::-;13097:73;;13200:7;13193:4;:14;13184:23;;13230:7;13221:16;;13061:187;12460:794;;;;;;;;:::o;406:142:14:-;464:4;488:13;498:2;488:9;:13::i;:::-;480:22;;;;;;;;520:21;535:5;:3;:5::i;:::-;520:10;:2;527;520:10;:6;:10;:::i;:21::-;513:28;406:142;-1:-1:-1;;;406:142:14:o;6123:1641:1:-;6212:10;:17;6454:7;;6212:21;-1:-1:-1;6208:207:1;;;6378:17;;6367:10;;-1:-1:-1;;6378:21:1;;;6367:33;;;;;;;;;;;;;;;;;:36;;6343:10;:13;;6354:1;;6343:13;;;;;;;;;;;;;;;;;;;:21;;;:60;6335:69;;;;;;6425:13;6432:6;;6425:13;:::i;:::-;-1:-1:-1;6464:1:1;6449:1278;6471:10;:17;6467:1;:21;;;6449:1278;;;6547:13;;:30;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;:30;;6539:39;;;;;;6600:13;;:30;;:10;;:13;;;;;;;;;;;;;;;;;;;;;:16;;:30;;6592:39;;;;;;6653:13;;:30;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;;;:30;;6645:39;;;;;;6706:13;;:29;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;;;:29;;6698:38;;;;;;6758:13;;:29;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;;;:29;;6750:38;;;;;;6857:3;6838:10;6849:1;6838:13;;;;;;;;;;;;;;;;;;;;;;:16;:22;6830:31;;;;;;6902:10;6913:1;6902:13;;;;;;;;;;;;;;;;;;;;;;;:16;;6883:13;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;:35;6875:44;;;;;;6942:1;6938;:5;;;6934:93;;;6995:10;7006:1;6995:13;;;;;;;;;;;;;;;;;;;;;;:16;6971:17;;:10;;:17;-1:-1:-1;;6982:5:1;;6971:17;;;;;;;;;;;;;;;;;;;:20;;:40;;6963:49;;;;;;7079:28;:10;7090:1;7079:13;;;;;;;;;;;;;;;;;;;;;7093:1;7079:16;;;;;:26;:28::i;:::-;7071:37;;;;;;;;7149:7;:11;:13;;;;;-1:-1:-1;;;7149:13:1;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7149:13:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7149:13:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7149:13:1;7130;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;;;:32;7122:41;;;;;;7178:6;7190:315;;;;;;;;;7232:10;7243:1;7232:13;;;;;;;;;;;;;;;;;;;;;;;:16;7190:315;;;;7283:13;;7190:315;;;7283:10;;:13;;;;;;;;;;;;;;;;;;;7297:1;7283:16;;;;7190:315;;;;;;7328:10;7339:1;7328:13;;;;;;;;;;;;;;;;;;;;;7342:1;7328:16;;;;7190:315;;;;7378:10;7389:1;7378:13;;;;;;;;;;;;;;;;;;;;;;;:16;;;7190:315;;;;7431:13;;;7442:1;7431:13;;;;;;;;7190:315;;;;;;;7477:13;;;;;;;;;;7190:315;;;-1:-1:-1;7190:315:1;;27:10:-1;;39:1;23:18;;;45:23;;;-1:-1;7178:328:1;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7178:328:1;;;;;;;;-1:-1:-1;;7178:328:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:18:-1;;7178:328:1;;;;;;;;;;;:::i;:::-;-1:-1:-1;7178:328:1;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;7521:195;7585:1;7569:6;:13;;;;:17;7611:10;7622:1;7611:13;;;;;;;;;;;;;;;;;;;;;;:16;;;7652:13;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;;;7687:15;7521:24;:195::i;:::-;6490:3;;6449:1278;;;7742:15;;;;;;;6123:1641;;;:::o;9555:1802::-;9855:11;9880:6;9900:18;9938:7;10569:17;10694:24;9728:1;9712:6;:13;;;;:17;9708:109;;;9789:10;9800:1;9789:13;;;;;;;;;;;;;;;;;;;;:16;9753:6;9760:13;;-1:-1:-1;;9760:17:1;;;9753:25;;;;;;;;;;;;;;;;;;;:33;;;;;;:52;9745:61;;;;;;9827:17;9834:10;;9827:17;:::i;:::-;9869:1;9855:15;;9889:1;9880:10;;9921:1;9900:22;;9948:1;9938:11;;9933:1333;9955:10;:17;9951:1;:21;;;9933:1333;;;10031:13;;:31;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;:31;;10023:40;;;;;;10085:13;;:31;;:10;;:13;;;;;;;;;;;;;;;;;;;;;:16;;:31;;10077:40;;;;;;10139:13;;:31;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;;;:31;;10131:40;;;;;;10240:3;10221:10;10232:1;10221:13;;;;;;;;;;;;;;;;;;;;;;:16;:22;10213:31;;;;;;10285:10;10296:1;10285:13;;;;;;;;;;;;;;;;;;;;;;:16;10266:13;;:10;;:13;;;;;;;;;;;;;;;;;;;;;:16;;:35;10258:44;;;;;;10343:10;10354:1;10343:13;;;;;;;;;;;;;;;;;;;;;;;:16;;10324:13;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;;;:35;10316:44;;;;;;10383:1;10379;:5;;;10375:92;;;10435:10;10446:1;10435:13;;;;;;;;;;;;;;;;;;;;;;:16;10412:17;;:10;;:17;-1:-1:-1;;10423:5:1;;10412:17;;;;;;;;;;;;;;;;;;:20;;;:39;10404:48;;;;;;10525:28;:10;10536:1;10525:13;;;;;;;;;;;;;;;;;;;;;10539:1;10525:16;;:28;10517:37;;;;;;;;10589:46;10616:6;10624:7;10632:1;10624:10;;;;;;;;;;;;;;;;;;10589:46;;:20;:26;;:46;;;;;:::i;:::-;10569:66;;10658:22;10669:7;10677:1;10669:10;;;;;;;;;;;;;;;;;;10658:22;;:6;:10;;:22;;;;:::i;:::-;10649:31;;10721:50;10748:6;10756:7;10764:1;10768;10764:5;10756:14;;;;;;;;;10721:50;10694:77;;10794:26;10805:7;10813:1;10817;10813:5;10805:14;;;;;;;;;10794:26;10785:35;-1:-1:-1;10838:8:1;:1;10844;10838:8;:5;:8;:::i;:::-;10834:12;;10877:35;10895:10;10906:1;10895:13;;;;;;;;;;;;;;;;;;;;;;:16;;;10877:13;;:17;:35::i;:::-;10861:51;;10927:10;10943:311;;;;;;;;;10987:10;10998:1;10987:13;;;;;;;;;;;;;;;;;;;;;;;:16;10943:311;;;;11038:13;;10943:311;;;11038:10;;:13;;;;;;;;;;;;;;;;;;;11052:1;11038:16;;;;10943:311;;;;11092:10;11103:1;11092:13;;;;;;;;;;;;;;;;;;;;;11106:1;11092:16;;;;10943:311;;;;;;11152:10;11163:1;11152:13;;;;;;;;;;;;;;;;;;;;;11166:1;11152:16;;;;;;;;;10943:311;;;;;;;;;;;;;;;;;;;27:10:-1;;39:1;23:18;;;45:23;;;-1:-1;10927:328:1;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10927:328:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10927:328:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;10927:328:1;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;9974:3:1;;;;;-1:-1:-1;9933:1333:1;;-1:-1:-1;9933:1333:1;;11301:7;:11;:13;;;;;-1:-1:-1;;;11301:13:1;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11301:13:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11301:13:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11301:13:1;11284:30;;11276:39;;;;;;11331:19;;;;;;;9555:1802;;;;;;;;;:::o;4265:219::-;4363:1;4354:10;;4346:19;;;;;;-1:-1:-1;;;;;4383:28:1;;;;4375:37;;;;;;4423:5;:14;;;;4447:13;:30;;-1:-1:-1;;4447:30:1;-1:-1:-1;;;;;4447:30:1;;;;;;;;;4265:219::o;1512:171:31:-;-1:-1:-1;;;;;1582:23:31;;;;1574:32;;;;;;1638:5;;1617:38;;-1:-1:-1;;;;;1617:38:31;;;;1638:5;;1617:38;;1638:5;;1617:38;1661:5;:17;;-1:-1:-1;;1661:17:31;-1:-1:-1;;;;;1661:17:31;;;;;;;;;;1512:171::o;203:380:30:-;263:9;489:7;;485:36;;;-1:-1:-1;513:1:30;506:8;;485:36;-1:-1:-1;531:7:30;;;536:2;531;:7;551:6;;;;;;;;:12;544:20;;;665:283;725:7;941:2;936;:7;;;;;;;;;665:283;-1:-1:-1;;;665:283:30:o;554:107:14:-;605:4;634:5;:3;:5::i;:::-;628:2;:11;;:26;;;;;649:5;:3;:5::i;:::-;643:2;:11;;621:33;554:107;-1:-1:-1;;554:107:14:o;335:65::-;371:4;392:5;:3;:5::i;:::-;386:2;:11;379:18;;335:65;:::o;7936:1196:1:-;8395:24;;8524:6;8059:10;;;;:22;;;;-1:-1:-1;8073:8:1;;;;8059:22;8055:187;;;8135:13;;;8146:1;8135:13;;;;;;;;8097:6;:18;;;;;;;;;;;;;;;;;;;;;;:35;;:51;;;;;;;;;;;;:::i;:::-;-1:-1:-1;8197:13:1;;;8208:1;8197:13;;;;;;;;8162:6;:18;;;;;;;;;;;;;;;;;;;;;;:32;;:48;;;;;;;;;;;;:::i;:::-;;8225:7;;8055:187;8267:22;;8260:29;;;;;8252:38;;;;;;8308:11;;;;;;;;8300:20;;;;;;8338:9;;;:14;8330:23;;;;;;8371:7;;;:12;8363:21;;;;;;8449:1;8433:17;8434:11;;;8433:17;;8422:29;;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;8422:29:1;-1:-1:-1;8395:56:1;-1:-1:-1;8512:1:1;8496:17;8497:11;;;8496:17;;8485:29;;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;8485:29:1;;8461:53;;8533:1;8524:10;;8545:470;8560:3;8552:11;;:5;:11;;;8545:470;;;8614:38;:15;8630:5;8638:1;8630:9;8614:26;;;;;;;;;;;;;;;;;;;;:36;:38::i;:::-;8606:47;;;;;;;;8704:7;:11;:13;;;;;-1:-1:-1;;;8704:13:1;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8704:13:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8704:13:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8704:13:1;8675:26;;:15;;:26;8699:1;8691:9;;8675:26;;;;;;;;;;;;;;;;;:42;8667:51;;;;;;8771:1;8767;:5;8763:95;;;8820:15;8836:5;8820:22;;;;;;;;;;;;;;;;;;;;8800:10;8815:1;8811;:5;8800:17;;;;;;;;;;;;;;;;;;;:42;8792:51;;;;;;8888:15;8904:5;8888:22;;;;;;;;;;;;;;;;;;;;8872:10;8883:1;8872:13;;;;;;;;;;;;;;;;;;:38;8937:26;;:15;;:26;8961:1;8953:9;;8937:26;;;;;;;;;;;;;;;;8924:7;8932:1;8924:10;;;;;;;;;;;;;;;;;;:39;9003:1;8994:10;;;;;8977:3;;8545:470;;;9063:10;9025:6;9032:10;9025:18;;;;;;;;;;;;;;;;;;;;;;:35;;:48;;;;;;;;;;;;:::i;:::-;;9118:7;9083:6;9090:10;9083:18;;;;;;;;;;;;;;;;;;;;;;:32;;:42;;;;;;;;;;;;:::i;:::-;;7936:1196;;;;;;;;:::o;9374:2465:36:-;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:36;;;11565:2;11548:11;-1:-1:-1;;11544:25:36;11538:4;11531:39;-1:-1:-1;9582:2214:36;-1:-1:-1;11823:9:36;9374:2465;-1:-1:-1;;;;9374:2465:36:o;1238:128:30:-;1319:7;;;1339;;;;1332:15;;;275:55:14;311:4;275:55;:::o;203:67::-;239:4;258:9;:7;:9::i;:::-;254:1;:13;247:20;;203:67;:::o;139:59::-;194:1;139:59;:::o;57:818:3:-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;57:818:3;;;-1:-1:-1;57:818:3;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;57:818:3;;;;;;;;;;;;;;;-1:-1:-1;;57:818:3;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;57:818:3;;;;;;;;;;;;;;;-1:-1:-1;;57:818:3;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;806:139:14:-;859:4;883:13;893:2;883:9;:13::i;:::-;875:22;;;;;;;;915:23;928:9;:7;:9::i;:::-;915:2;;922;:15;915:23;:6;:23;:::i", - "source": "pragma solidity ^0.4.24;\n\nimport \"./W12Crowdsale.sol\";\n\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 )\n W12Crowdsale(\n version,\n _originToken,\n _token,\n _price,\n _serviceWallet,\n _swap,\n _serviceFee,\n _WTokenSaleFeePercent,\n _fund\n ) public\n {}\n\n function _outTokens(address to, uint amount) external returns (bool) {\n return token.transfer(to, amount);\n }\n\n function _setState(uint _WTokenSaleFeePercent) external {\n WTokenSaleFeePercent = _WTokenSaleFeePercent;\n }\n}\n", - "sourcePath": "/home/circleci/code/contracts/W12CrowdsaleStub.sol", + "bytecode": "0x608060405260016002553480156200001657600080fd5b50604051610140806200496383398101604090815281516020830151918301516060840151608085015160a086015160c087015160e088015161010089015161012090990151600088905560018054600160a060020a0319163317905596989596949593949293919290919089898989898989898989600160a060020a0389161515620000a257600080fd5b600160a060020a0388161515620000b857600080fd5b620000d18464010000000062003d6d6200021f82021704565b8015620000f657506064620000f485640100000000620045a36200025c82021704565b105b15156200010257600080fd5b6200011b8364010000000062003d6d6200021f82021704565b801562000140575060646200013e84640100000000620045a36200025c82021704565b105b15156200014c57600080fd5b600160a060020a03821615156200016257600080fd5b600160a060020a03851615156200017857600080fd5b600160a060020a03811615156200018e57600080fd5b620001a38787640100000000620002ae810204565b60038054600160a060020a0319908116600160a060020a039a8b16179091556004805482169a8a169a909a17909955600893909355600b8054891694881694909417909355600955600580548716928616929092179091556006805490951693169290921790925550620003539b505050505050505050505050565b600062000234640100000000620002f9810204565b821015801562000256575062000252640100000000620002fe810204565b8211155b92915050565b600062000272826401000000006200021f810204565b15156200027e57600080fd5b62000256620002956401000000006200031b810204565b8390600a0a640100000000620041bb6200032082021704565b60008211620002bc57600080fd5b600160a060020a0381161515620002d257600080fd5b600791909155600a8054600160a060020a031916600160a060020a03909216919091179055565b600090565b60006200031364010000000062000336810204565b600a0a905090565b600290565b600081838115156200032e57fe5b049392505050565b60006200034b6401000000006200031b810204565b600201905090565b61460080620003636000396000f3006080604052600436106101c95763ffffffff60e060020a60003504166307f5d63381146101ce57806311eb8c9f146101de57806313096a411461020a57806314f66d341461023b5780631aecc19f14610269578063208853c91461028d5780632442e1cb146102b75780632e325020146103ed5780632fbe5990146104de578063313602d4146104f35780633baba4d7146105085780634090cb641461051d57806343f48fbd1461053257806354fd4d5014610547578063550fd7421461055c5780635641f3c3146105c1578063564566a8146105d65780635773caaf146105eb578063715018a61461060c578063792c02ea146106215780638119c06514610636578063845ddcb21461064b5780638abdf5aa146106945780638aea2af8146106a95780638da5cb5b146106fc5780638edd6eb614610711578063a035b1fe14610726578063a4fd6f561461073b578063b135648814610750578063b60d42881461077e578063ca7348a314610793578063d250185c146107ab578063d5b22623146107dd578063d6d65f3d14610839578063daa4cf881461084e578063e89e4ed614610863578063e93b05401461087b578063f2fde38b14610893578063fc0c546a146108b4575b600080fd5b6101dc6004356024356108c9565b005b3480156101ea57600080fd5b506101f6600435610ad0565b604080519115158252519081900360200190f35b34801561021657600080fd5b5061021f610ae9565b60408051600160a060020a039092168252519081900360200190f35b34801561024757600080fd5b50610250610af8565b6040805192835290151560208301528051918290030190f35b34801561027557600080fd5b506101f6600160a060020a0360043516602435610b2b565b34801561029957600080fd5b506102a5600435610bd0565b60408051918252519081900360200190f35b3480156102c357600080fd5b506102cf600435610cc6565b604051808763ffffffff1663ffffffff1681526020018681526020018563ffffffff1663ffffffff1681526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019080838360005b8381101561034c578181015183820152602001610334565b50505050905090810190601f1680156103795780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156103ac578181015183820152602001610394565b50505050905090810190601f1680156103d95780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b3480156103f957600080fd5b50610405600435610ef3565b604051808763ffffffff1663ffffffff1681526020018663ffffffff1663ffffffff1681526020018581526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561048557818101518382015260200161046d565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156104c45781810151838201526020016104ac565b505050509050019850505050505050505060405180910390f35b3480156104ea57600080fd5b506102a5611099565b3480156104ff57600080fd5b506101dc61109f565b34801561051457600080fd5b506102a561124e565b34801561052957600080fd5b5061021f611255565b34801561053e57600080fd5b5061021f611264565b34801561055357600080fd5b506102a5611273565b34801561056857600080fd5b50610571611279565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156105ad578181015183820152602001610595565b505050509050019250505060405180910390f35b3480156105cd57600080fd5b5061021f61128a565b3480156105e257600080fd5b506101f6611299565b3480156105f757600080fd5b506101dc600160a060020a03600435166112af565b34801561061857600080fd5b506101dc6112ea565b34801561062d57600080fd5b506102a5611358565b34801561064257600080fd5b5061021f61135e565b34801561065757600080fd5b5061066360043561136d565b6040805163ffffffff9586168152938516602085015283810192909252909216606082015290519081900360800190f35b3480156106a057600080fd5b506102a56113b3565b3480156106b557600080fd5b506106c46004356024356113b9565b604051808260a080838360005b838110156106e95781810151838201526020016106d1565b5050505090500191505060405180910390f35b34801561070857600080fd5b5061021f611878565b34801561071d57600080fd5b5061021f611887565b34801561073257600080fd5b506102a5611896565b34801561074757600080fd5b506101f661189c565b34801561075c57600080fd5b506107656118e3565b6040805163ffffffff9092168252519081900360200190f35b34801561078a57600080fd5b5061021f61192a565b34801561079f57600080fd5b506101dc600435611939565b3480156107b757600080fd5b506107c660043560243561193e565b6040805182518152908190839080838360206106d1565b3480156107e957600080fd5b506101dc602460048035828101929082013591813580830192908201359160443580830192908201359160643580830192908201359160843580830192908201359160a43591820191013561195d565b34801561084557600080fd5b50610250611c62565b34801561085a57600080fd5b50610250611cdd565b34801561086f57600080fd5b506102cf600435611d60565b34801561088757600080fd5b506101dc600435611ece565b34801561089f57600080fd5b506101dc600160a060020a0360043516611f39565b3480156108c057600080fd5b5061021f611f59565b60006108d3614308565b6108db614327565b6002546001146108ea57600080fd5b600280556108f6611299565b151561096357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f53616c65206973206e6f74207374617274656420796574000000000000000000604482015290519081900360640190fd5b8461096c611f68565b14610a01576006546040805160e460020a630b12e441028152600481018890529051600092600160a060020a03169163b12e441091602480830192602092919082900301818787803b1580156109c157600080fd5b505af11580156109d5573d6000803e3d6000fd5b505050506040513d60208110156109eb57600080fd5b5051600160a060020a03161415610a0157600080fd5b610a09611cdd565b509250610a1685856113b9565b80516020820151919350610a299161193e565b9050610a358186611f8c565b610a698282600e86815481101515610a4957fe5b600091825260209091206002600590920201015463ffffffff16886120d6565b610a74828287612215565b8151602080840151606080860151604080519586529385019290925283830191909152905133927f347f5f0051b895093800553e6e78ef332849e2552639a4f5ffe66535788ae07892908290030190a250506001600255505050565b6000610ae3600c8363ffffffff6124d316565b92915050565b600454600160a060020a031681565b600f5460009081901580610b115750610b0f61189c565b155b15610b1b57610b27565b5050600f546000190160015b9091565b600354604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152602482018590529151600093929092169163a9059cbb9160448082019260209290919082900301818787803b158015610b9d57600080fd5b505af1158015610bb1573d6000803e3d6000fd5b505050506040513d6020811015610bc757600080fd5b50519392505050565b600080600080610bde611cdd565b92509250811515610bee57610cbe565b600e805484908110610bfc57fe5b90600052602060002090600502019050610cbb8582600301805480602002602001604051908101604052809291908181526020018280548015610c5e57602002820191906000526020600020905b815481526020019060010190808311610c4a575b505050505083600401805480602002602001604051908101604052809291908181526020018280548015610cb157602002820191906000526020600020905b815481526020019060010190808311610c9d575b50505050506124ec565b93505b505050919050565b600080600080606080600f87815481101515610cde57fe5b6000918252602090912060059091020154600f805463ffffffff9092169189908110610d0657fe5b906000526020600020906005020160010154600f89815481101515610d2757fe5b6000918252602090912060026005909202010154600f805463ffffffff909216918b908110610d5257fe5b906000526020600020906005020160020160049054906101000a900463ffffffff16600f8b815481101515610d8357fe5b9060005260206000209060050201600301600f8c815481101515610da357fe5b9060005260206000209060050201600401818054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e495780601f10610e1e57610100808354040283529160200191610e49565b820191906000526020600020905b815481529060010190602001808311610e2c57829003601f168201915b5050845460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815295975086945092508401905082828015610ed75780601f10610eac57610100808354040283529160200191610ed7565b820191906000526020600020905b815481529060010190602001808311610eba57829003601f168201915b5050505050905095509550955095509550955091939550919395565b600080600080606080600e87815481101515610f0b57fe5b6000918252602090912060059091020154600e805463ffffffff9092169189908110610f3357fe5b906000526020600020906005020160000160049054906101000a900463ffffffff16600e89815481101515610f6457fe5b906000526020600020906005020160010154600e8a815481101515610f8557fe5b6000918252602090912060026005909202010154600e805463ffffffff909216918c908110610fb057fe5b9060005260206000209060050201600301600e8c815481101515610fd057fe5b90600052602060002090600502016004018180548060200260200160405190810160405280929190818152602001828054801561102c57602002820191906000526020600020905b815481526020019060010190808311611018575b5050505050915080805480602002602001604051908101604052809291908181526020018280548015610ed757602002820191906000526020600020905b81548152602001906001019080831161106a575050505050905095509550955095509550955091939550919395565b60095481565b600154600090600160a060020a031633146110b957600080fd5b6110c161189c565b15156110cc57600080fd5b600354604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b15801561113257600080fd5b505af1158015611146573d6000803e3d6000fd5b505050506040513d602081101561115c57600080fd5b5051600354600154604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a03928316600482015260248101859052905193945091169163a9059cbb916044808201926020929091908290030181600087803b1580156111d257600080fd5b505af11580156111e6573d6000803e3d6000fd5b505050506040513d60208110156111fc57600080fd5b5051151561120957600080fd5b600154604080518381529051600160a060020a03909216917f26ffb867a6b19bc0240d4e732ed6cfb0f0b6d93143a99cfb24ba5873308861f89181900360200190a250565b600f545b90565b600354600160a060020a031690565b600654600160a060020a031681565b60005481565b6060611285600c61254b565b905090565b600a54600160a060020a031681565b6000806112a4611cdd565b9150508091505b5090565b604051600160a060020a03821690303180156108fc02916000818181858888f193505050501580156112e5573d6000803e3d6000fd5b505b50565b600154600160a060020a0316331461130157600080fd5b600154604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26001805473ffffffffffffffffffffffffffffffffffffffff19169055565b600e5490565b600b54600160a060020a031681565b600e80548290811061137b57fe5b600091825260209091206005909102018054600182015460029092015463ffffffff8083169450640100000000909204821692911684565b60085481565b6113c1614308565b6000806113cc611cdd565b915091508015156113dc57611870565b846113e5611f68565b1461147a576006546040805160e460020a630b12e441028152600481018890529051600092600160a060020a03169163b12e441091602480830192602092919082900301818787803b15801561143a57600080fd5b505af115801561144e573d6000803e3d6000fd5b505050506040513d602081101561146457600080fd5b5051600160a060020a0316141561147a57611870565b61186d8585600e8581548110151561148e57fe5b906000526020600020906005020160010154600e868154811015156114af57fe5b906000526020600020906005020160030180548060200260200160405190810160405280929190818152602001828054801561150a57602002820191906000526020600020905b8154815260200190600101908083116114f6575b5050505050600e8781548110151561151e57fe5b906000526020600020906005020160040180548060200260200160405190810160405280929190818152602001828054801561157957602002820191906000526020600020905b815481526020019060010190808311611565575b5050505050600660009054906101000a9004600160a060020a0316600160a060020a0316638eaa6ac08c6040518263ffffffff1660e060020a028152600401808260001916600019168152602001915050602060405180830381600087803b1580156115e457600080fd5b505af11580156115f8573d6000803e3d6000fd5b505050506040513d602081101561160e57600080fd5b5051600754600354604080517f313ce5670000000000000000000000000000000000000000000000000000000081529051600160a060020a039092169163313ce567916004808201926020929091908290030181600087803b15801561167357600080fd5b505af1158015611687573d6000803e3d6000fd5b505050506040513d602081101561169d57600080fd5b505160ff168d6116ab611f68565b146117d357600660009054906101000a9004600160a060020a0316600160a060020a031663b12e44108f6040518263ffffffff1660e060020a028152600401808260001916600019168152602001915050602060405180830381600087803b15801561171657600080fd5b505af115801561172a573d6000803e3d6000fd5b505050506040513d602081101561174057600080fd5b5051604080517f313ce5670000000000000000000000000000000000000000000000000000000081529051600160a060020a039092169163313ce567916004808201926020929091908290030181600087803b15801561179f57600080fd5b505af11580156117b3573d6000803e3d6000fd5b505050506040513d60208110156117c957600080fd5b505160ff166117d6565b60125b600354604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b15801561183c57600080fd5b505af1158015611850573d6000803e3d6000fd5b505050506040513d602081101561186657600080fd5b50516125a8565b92505b505092915050565b600154600160a060020a031681565b600554600160a060020a031690565b60075481565b600e5460009015806112855750600e805442919060001981019081106118be57fe5b6000918252602090912060059091020154640100000000900463ffffffff1610919050565b600e5460009081106118f457600080fd5b600e8054600019810190811061190657fe5b6000918252602090912060059091020154640100000000900463ffffffff16919050565b600554600160a060020a031681565b600955565b611946614327565b61195683836008546009546129e3565b9392505050565b600154600090600160a060020a0316331461197757600080fd5b600e54600010156119b45742600e600081548110151561199357fe5b600091825260209091206005909102015463ffffffff16116119b457600080fd5b8b15156119c057600080fd5b60ff8c11156119ce57600080fd5b60ff8811156119dc57600080fd5b6002860488146119eb57600080fd5b600284048811156119fb57600080fd5b811515611a0757600080fd5b5060005b81811015611ab357600654600160a060020a0316637d20abf8848484818110611a3057fe5b6040805160e060020a63ffffffff87160281526020928302949094013560048501525160248085019492935090918290030181600087803b158015611a7457600080fd5b505af1158015611a88573d6000803e3d6000fd5b505050506040513d6020811015611a9e57600080fd5b50511515611aab57600080fd5b600101611a0b565b611b4c8d8d808060200260200160405190810160405280939291908181526020016000905b82821015611b14576040805160c08181019092529080840287019060069083908390808284375050509183525050600190910190602001611ad8565b50505050508c8c8080602002602001604051908101604052809392919081815260200183836020028082843750612a2e945050505050565b611c138989808060200260200160405190810160405280939291908181526020016000905b82821015611bad576040805160808181019092529080840287019060049083908390808284375050509183525050600190910190602001611b71565b50505050508888808060200260200160405190810160405280939291908181526020018383602002808284375050604080516020601f8e018190048102820181019092528c815294508c93508b9250829150840183828082843750612f37945050505050565b611c5383838080602002602001604051908101604052809392919081815260200183836020028082843750600c9594505063ffffffff6134951692505050565b50505050505050505050505050565b600f5460009081901580611c7b5750611c7961189c565b155b15611c8557610b27565b5060015b600f546000190182108015611ccd5750600f805483908110611ca757fe5b6000918252602090912060059091020160020154640100000000900463ffffffff164210155b15610b2757600190910190611c89565b60008080805b600e54821015611d5257600e805483908110611cfb57fe5b6000918252602090912060059091020180549091504263ffffffff90911611801590611d36575080544264010000000090910463ffffffff16115b15611d475781600193509350611d5a565b600190910190611ce3565b600093508392505b50509091565b600f805482908110611d6e57fe5b60009182526020918290206005919091020180546001808301546002808501546003860180546040805161010097831615979097026000190190911693909304601f810189900489028601890190935282855263ffffffff9586169850929685821696640100000000909204909516949093929190830182828015611e345780601f10611e0957610100808354040283529160200191611e34565b820191906000526020600020905b815481529060010190602001808311611e1757829003601f168201915b5050505060048301805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152949594935090830182828015611ec45780601f10611e9957610100808354040283529160200191611ec4565b820191906000526020600020905b815481529060010190602001808311611ea757829003601f168201915b5050505050905086565b600154600160a060020a03163314611ee557600080fd5b600e5460001015611f225742600e6000815481101515611f0157fe5b600091825260209091206005909102015463ffffffff1611611f2257600080fd5b600a546112e7908290600160a060020a0316613566565b600154600160a060020a03163314611f5057600080fd5b6112e7816135bc565b600354600160a060020a031681565b7f455448000000000000000000000000000000000000000000000000000000000090565b600654604080517fcfec719f0000000000000000000000000000000000000000000000000000000081526004810184905290516112e59285928592600160a060020a039092169163cfec719f916024808201926020929091908290030181600087803b158015611ffb57600080fd5b505af115801561200f573d6000803e3d6000fd5b505050506040513d602081101561202557600080fd5b50516120325760006120b0565b6006546040805160e460020a630b12e441028152600481018790529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b15801561208357600080fd5b505af1158015612097573d6000803e3d6000fd5b505050506040513d60208110156120ad57600080fd5b50515b600354600454600b54600a54600160a060020a039384169392831692918216911661363a565b600654604080517fcfec719f00000000000000000000000000000000000000000000000000000000815260048101849052905161220f928792879287928792600160a060020a039091169163cfec719f916024808201926020929091908290030181600087803b15801561214957600080fd5b505af115801561215d573d6000803e3d6000fd5b505050506040513d602081101561217357600080fd5b50516121805760006121fe565b6006546040805160e460020a630b12e441028152600481018990529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b1580156121d157600080fd5b505af11580156121e5573d6000803e3d6000fd5b505050506040513d60208110156121fb57600080fd5b50515b600354600160a060020a03166139c9565b50505050565b61221d611f68565b8114156122f157600554600160a060020a031663d0baf2f561225584600160200201518660015b60200201519063ffffffff613cb916565b85516020860151339190869061226d908a6001612244565b89600260200201516040805160e060020a63ffffffff8a16028152600160a060020a03909616600487015260248601949094526044850192909252606484015260848301525160a480830192600092919082900301818588803b1580156122d357600080fd5b505af11580156122e7573d6000803e3d6000fd5b50505050506124ce565b6006546040805160e460020a630b12e441028152600481018490529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b15801561234257600080fd5b505af1158015612356573d6000803e3d6000fd5b505050506040513d602081101561236c57600080fd5b5051600554600160a060020a039182169163a9059cbb91166123988560015b6020020151876001612244565b6040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b1580156123ea57600080fd5b505af11580156123fe573d6000803e3d6000fd5b505050506040513d602081101561241457600080fd5b5051151561242157600080fd5b600554600160a060020a031663d0baf2f53385600060200201518461244f8760016020020151896001612244565b88600260200201516040805160e060020a63ffffffff8916028152600160a060020a03909616600487015260248601949094526044850192909252606484015260848301525160a480830192600092919082900301818387803b1580156124b557600080fd5b505af11580156124c9573d6000803e3d6000fd5b505050505b505050565b6000908152600191909101602052604090205460ff1690565b6000805b835181101561254357838181518110151561250757fe5b60209081029091010151851061253657828181518110151561252557fe5b90602001906020020151915061253b565b612543565b6001016124f0565b509392505050565b60608160000180548060200260200160405190810160405280929190818152602001828054801561259c57602002820191906000526020600020905b81548152600190910190602001808311612587575b50505050509050919050565b6125b0614308565b60006125c18c8c8989878a8a613ccb565b15156125cc57600080fd5b73__Utils_________________________________6376ba78988c868a6040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b15801561262e57600080fd5b505af4158015612642573d6000803e3d6000fd5b505050506040513d602081101561265857600080fd5b50516040830181905286111561266d57600080fd5b604082015161267d908a8a6124ec565b905060008a1161268d5785612713565b6127138a73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b1580156126d857600080fd5b505af41580156126ec573d6000803e3d6000fd5b505050506040513d602081101561270257600080fd5b50518891900363ffffffff613d2316565b82600460200201818152505073__Utils_________________________________63a5a55fcf6127ca6127bf8473__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b15801561278757600080fd5b505af415801561279b573d6000803e3d6000fd5b505050506040513d60208110156127b157600080fd5b50519063ffffffff613d4c16565b604086015190613d59565b8785600460200201516040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b15801561281857600080fd5b505af415801561282c573d6000803e3d6000fd5b505050506040513d602081101561284257600080fd5b5051808352831015612901576080820151604080517f76ba7898000000000000000000000000000000000000000000000000000000008152600481018690526024810188905260448101929092525173__Utils_________________________________916376ba7898916064808301926020929190829003018186803b1580156128cc57600080fd5b505af41580156128e0573d6000803e3d6000fd5b505050506040513d60208110156128f657600080fd5b505160408301528282525b73__Utils_________________________________63a5a55fcf8360026020020151868a6040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b15801561296a57600080fd5b505af415801561297e573d6000803e3d6000fd5b505050506040513d602081101561299457600080fd5b50516020830181905215806129a857508151155b156129bf5760008083526020830181905260408301525b60208201516129cf908c90613cb9565b6060830152509a9950505050505050505050565b6129eb614327565b6000831115612a0757612a04858463ffffffff613d5916565b81525b6000821115612a2657612a20848363ffffffff613d5916565b60208201525b949350505050565b600f54600090811015612a8b57825183906000198101908110612a4d57fe5b6020908102919091018101510151600f80546000908110612a6a57fe5b600091825260209091206005909102015463ffffffff1611612a8b57600080fd5b612a97600e6000614342565b5060005b82518160ff161015612f0957825163ffffffff90849060ff8416908110612abe57fe5b6020908102919091010151511115612ad557600080fd5b825163ffffffff90849060ff8416908110612aec57fe5b60209081029190910181015101511115612b0557600080fd5b825163ffffffff90849060ff8416908110612b1c57fe5b6020908102919091010151606001511115612b3657600080fd5b825160ff908490838316908110612b4957fe5b6020908102919091010151608001511115612b6357600080fd5b825160ff908490838316908110612b7657fe5b602090810291909101015160a001511115612b9057600080fd5b42838260ff16815181101515612ba257fe5b60209081029190910101515111612bb857600080fd5b828160ff16815181101515612bc957fe5b60209081029190910181015101518351849060ff8416908110612be857fe5b60209081029190910101515110612bfe57600080fd5b60008160ff161115612c5557828160ff16815181101515612c1b57fe5b6020908102919091010151518351849060ff600019850116908110612c3c57fe5b60209081029190910181015101511115612c5557600080fd5b612c80838260ff16815181101515612c6957fe5b6020908102909101015160025b6020020151613d6d565b1515612c8b57600080fd5b73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015612cd257600080fd5b505af4158015612ce6573d6000803e3d6000fd5b505050506040513d6020811015612cfc57600080fd5b50518351849060ff8416908110612d0f57fe5b60209081029190910101516040015110612d2857600080fd5b600e60c060405190810160405280858460ff16815181101515612d4757fe5b6020908102919091018101515163ffffffff1682528651910190869060ff8616908110612d7057fe5b602090810290910101516001602002015163ffffffff168152602001858460ff16815181101515612d9d57fe5b60209081029091010151600260200201518152602001858460ff16815181101515612dc457fe5b6020908102919091018101516060015163ffffffff16825260408051600080825281840183528484019190915281518181529283018252920191509052815460018082018085556000948552602094859020845160059094020180548587015163ffffffff1991821663ffffffff9687161767ffffffff000000001916640100000000918716919091021782556040860151938201939093556060850151600282018054909416941693909317909155608083015180519194612e8f92600385019290910190614363565b5060a08201518051612eab916004840191602090910190614363565b50505050612f016001600e8054905003848360ff16815181101515612ecc57fe5b6020908102919091010151608001518551869060ff8616908110612eec57fe5b602090810291909101015160a0015185613d92565b600101612a9b565b6040517f743961f4e677d1146fbf85d75565b1c5474fd083eb166f8b9595cf5d01a4d6e690600090a1505050565b6000806000806060806000600e805490501115612fa457886000815181101515612f5d57fe5b602090810291909101015151600e80546000198101908110612f7b57fe5b6000918252602090912060059091020154640100000000900463ffffffff1610612fa457600080fd5b612fb0600f60006143aa565b600095506000945060009350600092505b88518360ff1610156133e357885163ffffffff908a9060ff8616908110612fe457fe5b6020908102919091010151511115612ffb57600080fd5b885163ffffffff908a9060ff861690811061301257fe5b6020908102919091018101510151111561302b57600080fd5b885163ffffffff908a9060ff861690811061304257fe5b602090810291909101015160400151111561305c57600080fd5b42898460ff1681518110151561306e57fe5b6020908102919091010151511161308457600080fd5b888360ff1681518110151561309557fe5b60209081029190910101515189518a9060ff86169081106130b257fe5b6020908102919091018101510151116130ca57600080fd5b888360ff168151811015156130db57fe5b602090810291909101810151015189518a9060ff86169081106130fa57fe5b6020908102919091010151604001511161311357600080fd5b60008360ff16111561316a57888360ff1681518110151561313057fe5b60209081029190910101515189518a9060ff60001987011690811061315157fe5b6020908102919091010151604001511061316a57600080fd5b61318f898460ff1681518110151561317e57fe5b602090810290910101516003612c76565b151561319a57600080fd5b6131cc8689878151811015156131ac57fe5b9060200190602002015163ffffffff16896140ff9092919063ffffffff16565b91506131fe88868151811015156131df57fe5b9060200190602002015163ffffffff1687613d4c90919063ffffffff16565b95506132158689876001018151811015156131ac57fe5b905061322b88866001018151811015156131df57fe5b955061323e85600263ffffffff613d4c16565b945061326a898460ff1681518110151561325457fe5b6020908102919091010151606001518590613d4c565b9350600f60c0604051908101604052808b8660ff1681518110151561328b57fe5b6020908102919091018101515163ffffffff1682528c519101908c9060ff88169081106132b457fe5b602090810290910101516003602002015181526020018b8660ff168151811015156132db57fe5b602090810290910101516001602002015163ffffffff1681526020018b8660ff1681518110151561330857fe5b6020908102909101015160026020908102919091015163ffffffff90811683528282018790526040928301869052845460018181018088556000978852968490208651600590930201805492841663ffffffff19938416178155868501519181019190915593850151600285018054606088015185166401000000000267ffffffff00000000199390951693169290921716919091179055608083015180516133b792600385019201906143cb565b5060a082015180516133d39160048401916020909101906143cb565b505060019094019350612fc19050565b73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b15801561342a57600080fd5b505af415801561343e573d6000803e3d6000fd5b505050506040513d602081101561345457600080fd5b5051841461346157600080fd5b6040517f56d9a2e016027a3725bf162ef2779c8b28d4dbec97c679cfba02dbb31a34c7ca90600090a1505050505050505050565b8154600090156134f8575060005b82548110156134f857600083600101600085600001848154811015156134c557fe5b60009182526020808320919091015483528201929092526040019020805460ff19169115159190911790556001016134a3565b815161350a9084906020850190614438565b508151156124ce575060005b81518110156124ce576001836001016000848481518110151561353557fe5b6020908102919091018101518252810191909152604001600020805460ff1916911515919091179055600101613516565b6000821161357357600080fd5b600160a060020a038116151561358857600080fd5b600791909155600a805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600160a060020a03811615156135d157600080fd5b600154604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a038316151561364f57600080fd5b600160a060020a038416151561366457600080fd5b600160a060020a038216151561367957600080fd5b600160a060020a038116151561368e57600080fd5b602087015160001080156136a957506136a5611f68565b8614155b156136c357600160a060020a03851615156136c357600080fd5b865160001015613821578651604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152848116602483015260448201939093529051918516916323b872dd916064808201926020929091908290030181600087803b15801561374457600080fd5b505af1158015613758573d6000803e3d6000fd5b505050506040513d602081101561376e57600080fd5b5051151561377b57600080fd5b8651604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152602482019390935290519186169163a9059cbb916044808201926020929091908290030181600087803b1580156137ea57600080fd5b505af11580156137fe573d6000803e3d6000fd5b505050506040513d602081101561381457600080fd5b5051151561382157600080fd5b6020870151600010156124c957613836611f68565b86141561387c576020870151604051600160a060020a0383169180156108fc02916000818181858888f19350505050158015613876573d6000803e3d6000fd5b506124c9565b602080880151604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290519192600160a060020a0389169263dd62ed3e9260448082019392918290030181600087803b1580156138e857600080fd5b505af11580156138fc573d6000803e3d6000fd5b505050506040513d602081101561391257600080fd5b5051101561391f57600080fd5b602080880151604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a03858116602483015260448201939093529051918816926323b872dd926064808401938290030181600087803b15801561399257600080fd5b505af11580156139a6573d6000803e3d6000fd5b505050506040513d60208110156139bc57600080fd5b505115156124c957600080fd5b600160a060020a03811615156139de57600080fd5b855115156139eb57600080fd5b602086015115156139fb57600080fd5b8451865111613a0957600080fd5b6020808601519087015111613a1d57600080fd5b613a25611f68565b831415613a3d576020860151341015613a3d57600080fd5b613a45611f68565b8314613bb857600160a060020a0382161515613a6057600080fd5b613a6b85600161238b565b604080517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523360048201523060248201529051600160a060020a0385169163dd62ed3e9160448083019260209291908290030181600087803b158015613ad257600080fd5b505af1158015613ae6573d6000803e3d6000fd5b505050506040513d6020811015613afc57600080fd5b50511015613b0957600080fd5b600160a060020a0382166323b872dd3330613b2d89600160200201518b6001612244565b6040805160e060020a63ffffffff8716028152600160a060020a0394851660048201529290931660248301526044820152905160648083019260209291908290030181600087803b158015613b8157600080fd5b505af1158015613b95573d6000803e3d6000fd5b505050506040513d6020811015613bab57600080fd5b50511515613bb857600080fd5b8551604080517f9d2e4777000000000000000000000000000000000000000000000000000000008152336004820152602481019290925263ffffffff8616604483015251600160a060020a03831691639d2e47779160648083019260209291908290030181600087803b158015613c2e57600080fd5b505af1158015613c42573d6000803e3d6000fd5b505050506040513d6020811015613c5857600080fd5b50511515613c6557600080fd5b606086015160001015613cb157613c7a611f68565b831415613cb1576060860151604051339180156108fc02916000818181858888f193505050501580156124c9573d6000803e3d6000fd5b505050505050565b600082821115613cc557fe5b50900390565b60008087118015613cdc5750600086115b8015613ce85750600085115b8015613cf7575082600a0a8410155b9050613d01611f68565b881415613d1857808015613d155750816012145b90505b979650505050505050565b6000611956613d30614180565b613d40858563ffffffff61419216565b9063ffffffff6141bb16565b81810182811015610ae357fe5b60006119568383613d68614180565b6141d0565b6000613d776142ec565b8210158015610ae35750613d89614180565b90911115919050565b606080600060ff8616158015613da9575060ff8516155b15613e3757604080516000815260208101909152600e805460ff8a16908110613dce57fe5b90600052602060002090600502016003019080519060200190613df2929190614363565b50604080516000815260208101909152600e805460ff8a16908110613e1357fe5b90600052602060002090600502016004019080519060200190613876929190614363565b835160ff86161115613e4857600080fd5b60ff80861690871610613e5a57600080fd5b6001861615613e6857600080fd5b6001851615613e7657600080fd5b600260ff878703160460ff16604051908082528060200260200182016040528015613eab578160200160208202803883390190505b509250600260ff878703160460ff16604051908082528060200260200182016040528015613ee3578160200160208202803883390190505b509150600090505b8460ff168660ff16101561408657613f1f848760010160ff16815181101515613f1057fe5b90602001906020020151613d6d565b1515613f2a57600080fd5b73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015613f7157600080fd5b505af4158015613f85573d6000803e3d6000fd5b505050506040513d6020811015613f9b57600080fd5b50518451859060ff60018a0116908110613fb157fe5b6020908102909101015110613fc557600080fd5b600081111561400e57838660ff16815181101515613fdf57fe5b906020019060200201518360018303815181101515613ffa57fe5b602090810290910101511061400e57600080fd5b838660ff1681518110151561401f57fe5b90602001906020020151838281518110151561403757fe5b602090810290910101528351849060ff600189011690811061405557fe5b90602001906020020151828281518110151561406d57fe5b6020908102909101015260029590950194600101613eeb565b82600e8860ff1681548110151561409957fe5b906000526020600020906005020160030190805190602001906140bd929190614363565b5081600e8860ff168154811015156140d157fe5b906000526020600020906005020160040190805190602001906140f5929190614363565b5050505050505050565b60608082840185511015151561411457600080fd5b8215801561412d57604051915060208201604052614177565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561416657805183526020928301920161414e565b5050858452601f01601f1916604052505b50949350505050565b600061418a6142f1565b600a0a905090565b60008215156141a357506000610ae3565b508181028183828115156141b357fe5b0414610ae357fe5b600081838115156141c857fe5b049392505050565b6000808080808515156141df57fe5b8715806141ea575086155b156141f4576142e1565b6142066000198863ffffffff6141bb16565b925082881161422a5761422386613d408a8a63ffffffff61419216565b94506142e1565b8588141561423a578694506142e1565b8587141561424a578794506142e1565b87156142cb5787831161425d578261425f565b875b9150614271828863ffffffff61419216565b9050614293614286828863ffffffff6141bb16565b869063ffffffff613d4c16565b94506142b286828115156142a357fe5b8691900663ffffffff613d4c16565b93506142c4888363ffffffff613cb916565b975061424a565b6142de614286858863ffffffff6141bb16565b94505b505050509392505050565b600090565b60006142fb614303565b600201905090565b600290565b60a0604051908101604052806005906020820280388339509192915050565b60408051808201825290600290829080388339509192915050565b50805460008255600502906000526020600020908101906112e79190614475565b82805482825590600052602060002090810192821561439e579160200282015b8281111561439e578251825591602001919060010190614383565b506112ab9291506144ce565b50805460008255600502906000526020600020908101906112e791906144e8565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061440c57805160ff191683800117855561439e565b8280016001018555821561439e579182018281111561439e578251825591602001919060010190614383565b82805482825590600052602060002090810192821561439e579160200282015b8281111561439e5782518255602090920191600190910190614458565b61125291905b808211156112ab57805467ffffffffffffffff1916815560006001820181905560028201805463ffffffff191690556144b76003830182614541565b6144c5600483016000614541565b5060050161447b565b61125291905b808211156112ab57600081556001016144d4565b61125291905b808211156112ab57805463ffffffff1916815560006001820181905560028201805467ffffffffffffffff1916905561452a600383018261455f565b61453860048301600061455f565b506005016144ee565b50805460008255906000526020600020908101906112e791906144ce565b50805460018160011615610100020316600290046000825580601f1061458557506112e7565b601f0160209004906000526020600020908101906112e791906144ce565b60006145ae82613d6d565b15156145b957600080fd5b610ae36145c4614303565b8390600a0a63ffffffff6141bb165600a165627a7a72305820dc6b5424e78cffe92da71089aab7b1a9f8683b59cf38c681b0caca8f6e38b8be0029", + "deployedBytecode": "0x6080604052600436106101c95763ffffffff60e060020a60003504166307f5d63381146101ce57806311eb8c9f146101de57806313096a411461020a57806314f66d341461023b5780631aecc19f14610269578063208853c91461028d5780632442e1cb146102b75780632e325020146103ed5780632fbe5990146104de578063313602d4146104f35780633baba4d7146105085780634090cb641461051d57806343f48fbd1461053257806354fd4d5014610547578063550fd7421461055c5780635641f3c3146105c1578063564566a8146105d65780635773caaf146105eb578063715018a61461060c578063792c02ea146106215780638119c06514610636578063845ddcb21461064b5780638abdf5aa146106945780638aea2af8146106a95780638da5cb5b146106fc5780638edd6eb614610711578063a035b1fe14610726578063a4fd6f561461073b578063b135648814610750578063b60d42881461077e578063ca7348a314610793578063d250185c146107ab578063d5b22623146107dd578063d6d65f3d14610839578063daa4cf881461084e578063e89e4ed614610863578063e93b05401461087b578063f2fde38b14610893578063fc0c546a146108b4575b600080fd5b6101dc6004356024356108c9565b005b3480156101ea57600080fd5b506101f6600435610ad0565b604080519115158252519081900360200190f35b34801561021657600080fd5b5061021f610ae9565b60408051600160a060020a039092168252519081900360200190f35b34801561024757600080fd5b50610250610af8565b6040805192835290151560208301528051918290030190f35b34801561027557600080fd5b506101f6600160a060020a0360043516602435610b2b565b34801561029957600080fd5b506102a5600435610bd0565b60408051918252519081900360200190f35b3480156102c357600080fd5b506102cf600435610cc6565b604051808763ffffffff1663ffffffff1681526020018681526020018563ffffffff1663ffffffff1681526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019080838360005b8381101561034c578181015183820152602001610334565b50505050905090810190601f1680156103795780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156103ac578181015183820152602001610394565b50505050905090810190601f1680156103d95780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b3480156103f957600080fd5b50610405600435610ef3565b604051808763ffffffff1663ffffffff1681526020018663ffffffff1663ffffffff1681526020018581526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561048557818101518382015260200161046d565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156104c45781810151838201526020016104ac565b505050509050019850505050505050505060405180910390f35b3480156104ea57600080fd5b506102a5611099565b3480156104ff57600080fd5b506101dc61109f565b34801561051457600080fd5b506102a561124e565b34801561052957600080fd5b5061021f611255565b34801561053e57600080fd5b5061021f611264565b34801561055357600080fd5b506102a5611273565b34801561056857600080fd5b50610571611279565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156105ad578181015183820152602001610595565b505050509050019250505060405180910390f35b3480156105cd57600080fd5b5061021f61128a565b3480156105e257600080fd5b506101f6611299565b3480156105f757600080fd5b506101dc600160a060020a03600435166112af565b34801561061857600080fd5b506101dc6112ea565b34801561062d57600080fd5b506102a5611358565b34801561064257600080fd5b5061021f61135e565b34801561065757600080fd5b5061066360043561136d565b6040805163ffffffff9586168152938516602085015283810192909252909216606082015290519081900360800190f35b3480156106a057600080fd5b506102a56113b3565b3480156106b557600080fd5b506106c46004356024356113b9565b604051808260a080838360005b838110156106e95781810151838201526020016106d1565b5050505090500191505060405180910390f35b34801561070857600080fd5b5061021f611878565b34801561071d57600080fd5b5061021f611887565b34801561073257600080fd5b506102a5611896565b34801561074757600080fd5b506101f661189c565b34801561075c57600080fd5b506107656118e3565b6040805163ffffffff9092168252519081900360200190f35b34801561078a57600080fd5b5061021f61192a565b34801561079f57600080fd5b506101dc600435611939565b3480156107b757600080fd5b506107c660043560243561193e565b6040805182518152908190839080838360206106d1565b3480156107e957600080fd5b506101dc602460048035828101929082013591813580830192908201359160443580830192908201359160643580830192908201359160843580830192908201359160a43591820191013561195d565b34801561084557600080fd5b50610250611c62565b34801561085a57600080fd5b50610250611cdd565b34801561086f57600080fd5b506102cf600435611d60565b34801561088757600080fd5b506101dc600435611ece565b34801561089f57600080fd5b506101dc600160a060020a0360043516611f39565b3480156108c057600080fd5b5061021f611f59565b60006108d3614308565b6108db614327565b6002546001146108ea57600080fd5b600280556108f6611299565b151561096357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f53616c65206973206e6f74207374617274656420796574000000000000000000604482015290519081900360640190fd5b8461096c611f68565b14610a01576006546040805160e460020a630b12e441028152600481018890529051600092600160a060020a03169163b12e441091602480830192602092919082900301818787803b1580156109c157600080fd5b505af11580156109d5573d6000803e3d6000fd5b505050506040513d60208110156109eb57600080fd5b5051600160a060020a03161415610a0157600080fd5b610a09611cdd565b509250610a1685856113b9565b80516020820151919350610a299161193e565b9050610a358186611f8c565b610a698282600e86815481101515610a4957fe5b600091825260209091206002600590920201015463ffffffff16886120d6565b610a74828287612215565b8151602080840151606080860151604080519586529385019290925283830191909152905133927f347f5f0051b895093800553e6e78ef332849e2552639a4f5ffe66535788ae07892908290030190a250506001600255505050565b6000610ae3600c8363ffffffff6124d316565b92915050565b600454600160a060020a031681565b600f5460009081901580610b115750610b0f61189c565b155b15610b1b57610b27565b5050600f546000190160015b9091565b600354604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152602482018590529151600093929092169163a9059cbb9160448082019260209290919082900301818787803b158015610b9d57600080fd5b505af1158015610bb1573d6000803e3d6000fd5b505050506040513d6020811015610bc757600080fd5b50519392505050565b600080600080610bde611cdd565b92509250811515610bee57610cbe565b600e805484908110610bfc57fe5b90600052602060002090600502019050610cbb8582600301805480602002602001604051908101604052809291908181526020018280548015610c5e57602002820191906000526020600020905b815481526020019060010190808311610c4a575b505050505083600401805480602002602001604051908101604052809291908181526020018280548015610cb157602002820191906000526020600020905b815481526020019060010190808311610c9d575b50505050506124ec565b93505b505050919050565b600080600080606080600f87815481101515610cde57fe5b6000918252602090912060059091020154600f805463ffffffff9092169189908110610d0657fe5b906000526020600020906005020160010154600f89815481101515610d2757fe5b6000918252602090912060026005909202010154600f805463ffffffff909216918b908110610d5257fe5b906000526020600020906005020160020160049054906101000a900463ffffffff16600f8b815481101515610d8357fe5b9060005260206000209060050201600301600f8c815481101515610da357fe5b9060005260206000209060050201600401818054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e495780601f10610e1e57610100808354040283529160200191610e49565b820191906000526020600020905b815481529060010190602001808311610e2c57829003601f168201915b5050845460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815295975086945092508401905082828015610ed75780601f10610eac57610100808354040283529160200191610ed7565b820191906000526020600020905b815481529060010190602001808311610eba57829003601f168201915b5050505050905095509550955095509550955091939550919395565b600080600080606080600e87815481101515610f0b57fe5b6000918252602090912060059091020154600e805463ffffffff9092169189908110610f3357fe5b906000526020600020906005020160000160049054906101000a900463ffffffff16600e89815481101515610f6457fe5b906000526020600020906005020160010154600e8a815481101515610f8557fe5b6000918252602090912060026005909202010154600e805463ffffffff909216918c908110610fb057fe5b9060005260206000209060050201600301600e8c815481101515610fd057fe5b90600052602060002090600502016004018180548060200260200160405190810160405280929190818152602001828054801561102c57602002820191906000526020600020905b815481526020019060010190808311611018575b5050505050915080805480602002602001604051908101604052809291908181526020018280548015610ed757602002820191906000526020600020905b81548152602001906001019080831161106a575050505050905095509550955095509550955091939550919395565b60095481565b600154600090600160a060020a031633146110b957600080fd5b6110c161189c565b15156110cc57600080fd5b600354604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b15801561113257600080fd5b505af1158015611146573d6000803e3d6000fd5b505050506040513d602081101561115c57600080fd5b5051600354600154604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a03928316600482015260248101859052905193945091169163a9059cbb916044808201926020929091908290030181600087803b1580156111d257600080fd5b505af11580156111e6573d6000803e3d6000fd5b505050506040513d60208110156111fc57600080fd5b5051151561120957600080fd5b600154604080518381529051600160a060020a03909216917f26ffb867a6b19bc0240d4e732ed6cfb0f0b6d93143a99cfb24ba5873308861f89181900360200190a250565b600f545b90565b600354600160a060020a031690565b600654600160a060020a031681565b60005481565b6060611285600c61254b565b905090565b600a54600160a060020a031681565b6000806112a4611cdd565b9150508091505b5090565b604051600160a060020a03821690303180156108fc02916000818181858888f193505050501580156112e5573d6000803e3d6000fd5b505b50565b600154600160a060020a0316331461130157600080fd5b600154604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26001805473ffffffffffffffffffffffffffffffffffffffff19169055565b600e5490565b600b54600160a060020a031681565b600e80548290811061137b57fe5b600091825260209091206005909102018054600182015460029092015463ffffffff8083169450640100000000909204821692911684565b60085481565b6113c1614308565b6000806113cc611cdd565b915091508015156113dc57611870565b846113e5611f68565b1461147a576006546040805160e460020a630b12e441028152600481018890529051600092600160a060020a03169163b12e441091602480830192602092919082900301818787803b15801561143a57600080fd5b505af115801561144e573d6000803e3d6000fd5b505050506040513d602081101561146457600080fd5b5051600160a060020a0316141561147a57611870565b61186d8585600e8581548110151561148e57fe5b906000526020600020906005020160010154600e868154811015156114af57fe5b906000526020600020906005020160030180548060200260200160405190810160405280929190818152602001828054801561150a57602002820191906000526020600020905b8154815260200190600101908083116114f6575b5050505050600e8781548110151561151e57fe5b906000526020600020906005020160040180548060200260200160405190810160405280929190818152602001828054801561157957602002820191906000526020600020905b815481526020019060010190808311611565575b5050505050600660009054906101000a9004600160a060020a0316600160a060020a0316638eaa6ac08c6040518263ffffffff1660e060020a028152600401808260001916600019168152602001915050602060405180830381600087803b1580156115e457600080fd5b505af11580156115f8573d6000803e3d6000fd5b505050506040513d602081101561160e57600080fd5b5051600754600354604080517f313ce5670000000000000000000000000000000000000000000000000000000081529051600160a060020a039092169163313ce567916004808201926020929091908290030181600087803b15801561167357600080fd5b505af1158015611687573d6000803e3d6000fd5b505050506040513d602081101561169d57600080fd5b505160ff168d6116ab611f68565b146117d357600660009054906101000a9004600160a060020a0316600160a060020a031663b12e44108f6040518263ffffffff1660e060020a028152600401808260001916600019168152602001915050602060405180830381600087803b15801561171657600080fd5b505af115801561172a573d6000803e3d6000fd5b505050506040513d602081101561174057600080fd5b5051604080517f313ce5670000000000000000000000000000000000000000000000000000000081529051600160a060020a039092169163313ce567916004808201926020929091908290030181600087803b15801561179f57600080fd5b505af11580156117b3573d6000803e3d6000fd5b505050506040513d60208110156117c957600080fd5b505160ff166117d6565b60125b600354604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b15801561183c57600080fd5b505af1158015611850573d6000803e3d6000fd5b505050506040513d602081101561186657600080fd5b50516125a8565b92505b505092915050565b600154600160a060020a031681565b600554600160a060020a031690565b60075481565b600e5460009015806112855750600e805442919060001981019081106118be57fe5b6000918252602090912060059091020154640100000000900463ffffffff1610919050565b600e5460009081106118f457600080fd5b600e8054600019810190811061190657fe5b6000918252602090912060059091020154640100000000900463ffffffff16919050565b600554600160a060020a031681565b600955565b611946614327565b61195683836008546009546129e3565b9392505050565b600154600090600160a060020a0316331461197757600080fd5b600e54600010156119b45742600e600081548110151561199357fe5b600091825260209091206005909102015463ffffffff16116119b457600080fd5b8b15156119c057600080fd5b60ff8c11156119ce57600080fd5b60ff8811156119dc57600080fd5b6002860488146119eb57600080fd5b600284048811156119fb57600080fd5b811515611a0757600080fd5b5060005b81811015611ab357600654600160a060020a0316637d20abf8848484818110611a3057fe5b6040805160e060020a63ffffffff87160281526020928302949094013560048501525160248085019492935090918290030181600087803b158015611a7457600080fd5b505af1158015611a88573d6000803e3d6000fd5b505050506040513d6020811015611a9e57600080fd5b50511515611aab57600080fd5b600101611a0b565b611b4c8d8d808060200260200160405190810160405280939291908181526020016000905b82821015611b14576040805160c08181019092529080840287019060069083908390808284375050509183525050600190910190602001611ad8565b50505050508c8c8080602002602001604051908101604052809392919081815260200183836020028082843750612a2e945050505050565b611c138989808060200260200160405190810160405280939291908181526020016000905b82821015611bad576040805160808181019092529080840287019060049083908390808284375050509183525050600190910190602001611b71565b50505050508888808060200260200160405190810160405280939291908181526020018383602002808284375050604080516020601f8e018190048102820181019092528c815294508c93508b9250829150840183828082843750612f37945050505050565b611c5383838080602002602001604051908101604052809392919081815260200183836020028082843750600c9594505063ffffffff6134951692505050565b50505050505050505050505050565b600f5460009081901580611c7b5750611c7961189c565b155b15611c8557610b27565b5060015b600f546000190182108015611ccd5750600f805483908110611ca757fe5b6000918252602090912060059091020160020154640100000000900463ffffffff164210155b15610b2757600190910190611c89565b60008080805b600e54821015611d5257600e805483908110611cfb57fe5b6000918252602090912060059091020180549091504263ffffffff90911611801590611d36575080544264010000000090910463ffffffff16115b15611d475781600193509350611d5a565b600190910190611ce3565b600093508392505b50509091565b600f805482908110611d6e57fe5b60009182526020918290206005919091020180546001808301546002808501546003860180546040805161010097831615979097026000190190911693909304601f810189900489028601890190935282855263ffffffff9586169850929685821696640100000000909204909516949093929190830182828015611e345780601f10611e0957610100808354040283529160200191611e34565b820191906000526020600020905b815481529060010190602001808311611e1757829003601f168201915b5050505060048301805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152949594935090830182828015611ec45780601f10611e9957610100808354040283529160200191611ec4565b820191906000526020600020905b815481529060010190602001808311611ea757829003601f168201915b5050505050905086565b600154600160a060020a03163314611ee557600080fd5b600e5460001015611f225742600e6000815481101515611f0157fe5b600091825260209091206005909102015463ffffffff1611611f2257600080fd5b600a546112e7908290600160a060020a0316613566565b600154600160a060020a03163314611f5057600080fd5b6112e7816135bc565b600354600160a060020a031681565b7f455448000000000000000000000000000000000000000000000000000000000090565b600654604080517fcfec719f0000000000000000000000000000000000000000000000000000000081526004810184905290516112e59285928592600160a060020a039092169163cfec719f916024808201926020929091908290030181600087803b158015611ffb57600080fd5b505af115801561200f573d6000803e3d6000fd5b505050506040513d602081101561202557600080fd5b50516120325760006120b0565b6006546040805160e460020a630b12e441028152600481018790529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b15801561208357600080fd5b505af1158015612097573d6000803e3d6000fd5b505050506040513d60208110156120ad57600080fd5b50515b600354600454600b54600a54600160a060020a039384169392831692918216911661363a565b600654604080517fcfec719f00000000000000000000000000000000000000000000000000000000815260048101849052905161220f928792879287928792600160a060020a039091169163cfec719f916024808201926020929091908290030181600087803b15801561214957600080fd5b505af115801561215d573d6000803e3d6000fd5b505050506040513d602081101561217357600080fd5b50516121805760006121fe565b6006546040805160e460020a630b12e441028152600481018990529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b1580156121d157600080fd5b505af11580156121e5573d6000803e3d6000fd5b505050506040513d60208110156121fb57600080fd5b50515b600354600160a060020a03166139c9565b50505050565b61221d611f68565b8114156122f157600554600160a060020a031663d0baf2f561225584600160200201518660015b60200201519063ffffffff613cb916565b85516020860151339190869061226d908a6001612244565b89600260200201516040805160e060020a63ffffffff8a16028152600160a060020a03909616600487015260248601949094526044850192909252606484015260848301525160a480830192600092919082900301818588803b1580156122d357600080fd5b505af11580156122e7573d6000803e3d6000fd5b50505050506124ce565b6006546040805160e460020a630b12e441028152600481018490529051600160a060020a039092169163b12e4410916024808201926020929091908290030181600087803b15801561234257600080fd5b505af1158015612356573d6000803e3d6000fd5b505050506040513d602081101561236c57600080fd5b5051600554600160a060020a039182169163a9059cbb91166123988560015b6020020151876001612244565b6040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b1580156123ea57600080fd5b505af11580156123fe573d6000803e3d6000fd5b505050506040513d602081101561241457600080fd5b5051151561242157600080fd5b600554600160a060020a031663d0baf2f53385600060200201518461244f8760016020020151896001612244565b88600260200201516040805160e060020a63ffffffff8916028152600160a060020a03909616600487015260248601949094526044850192909252606484015260848301525160a480830192600092919082900301818387803b1580156124b557600080fd5b505af11580156124c9573d6000803e3d6000fd5b505050505b505050565b6000908152600191909101602052604090205460ff1690565b6000805b835181101561254357838181518110151561250757fe5b60209081029091010151851061253657828181518110151561252557fe5b90602001906020020151915061253b565b612543565b6001016124f0565b509392505050565b60608160000180548060200260200160405190810160405280929190818152602001828054801561259c57602002820191906000526020600020905b81548152600190910190602001808311612587575b50505050509050919050565b6125b0614308565b60006125c18c8c8989878a8a613ccb565b15156125cc57600080fd5b73__Utils_________________________________6376ba78988c868a6040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b15801561262e57600080fd5b505af4158015612642573d6000803e3d6000fd5b505050506040513d602081101561265857600080fd5b50516040830181905286111561266d57600080fd5b604082015161267d908a8a6124ec565b905060008a1161268d5785612713565b6127138a73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b1580156126d857600080fd5b505af41580156126ec573d6000803e3d6000fd5b505050506040513d602081101561270257600080fd5b50518891900363ffffffff613d2316565b82600460200201818152505073__Utils_________________________________63a5a55fcf6127ca6127bf8473__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b15801561278757600080fd5b505af415801561279b573d6000803e3d6000fd5b505050506040513d60208110156127b157600080fd5b50519063ffffffff613d4c16565b604086015190613d59565b8785600460200201516040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b15801561281857600080fd5b505af415801561282c573d6000803e3d6000fd5b505050506040513d602081101561284257600080fd5b5051808352831015612901576080820151604080517f76ba7898000000000000000000000000000000000000000000000000000000008152600481018690526024810188905260448101929092525173__Utils_________________________________916376ba7898916064808301926020929190829003018186803b1580156128cc57600080fd5b505af41580156128e0573d6000803e3d6000fd5b505050506040513d60208110156128f657600080fd5b505160408301528282525b73__Utils_________________________________63a5a55fcf8360026020020151868a6040518463ffffffff1660e060020a02815260040180848152602001838152602001828152602001935050505060206040518083038186803b15801561296a57600080fd5b505af415801561297e573d6000803e3d6000fd5b505050506040513d602081101561299457600080fd5b50516020830181905215806129a857508151155b156129bf5760008083526020830181905260408301525b60208201516129cf908c90613cb9565b6060830152509a9950505050505050505050565b6129eb614327565b6000831115612a0757612a04858463ffffffff613d5916565b81525b6000821115612a2657612a20848363ffffffff613d5916565b60208201525b949350505050565b600f54600090811015612a8b57825183906000198101908110612a4d57fe5b6020908102919091018101510151600f80546000908110612a6a57fe5b600091825260209091206005909102015463ffffffff1611612a8b57600080fd5b612a97600e6000614342565b5060005b82518160ff161015612f0957825163ffffffff90849060ff8416908110612abe57fe5b6020908102919091010151511115612ad557600080fd5b825163ffffffff90849060ff8416908110612aec57fe5b60209081029190910181015101511115612b0557600080fd5b825163ffffffff90849060ff8416908110612b1c57fe5b6020908102919091010151606001511115612b3657600080fd5b825160ff908490838316908110612b4957fe5b6020908102919091010151608001511115612b6357600080fd5b825160ff908490838316908110612b7657fe5b602090810291909101015160a001511115612b9057600080fd5b42838260ff16815181101515612ba257fe5b60209081029190910101515111612bb857600080fd5b828160ff16815181101515612bc957fe5b60209081029190910181015101518351849060ff8416908110612be857fe5b60209081029190910101515110612bfe57600080fd5b60008160ff161115612c5557828160ff16815181101515612c1b57fe5b6020908102919091010151518351849060ff600019850116908110612c3c57fe5b60209081029190910181015101511115612c5557600080fd5b612c80838260ff16815181101515612c6957fe5b6020908102909101015160025b6020020151613d6d565b1515612c8b57600080fd5b73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015612cd257600080fd5b505af4158015612ce6573d6000803e3d6000fd5b505050506040513d6020811015612cfc57600080fd5b50518351849060ff8416908110612d0f57fe5b60209081029190910101516040015110612d2857600080fd5b600e60c060405190810160405280858460ff16815181101515612d4757fe5b6020908102919091018101515163ffffffff1682528651910190869060ff8616908110612d7057fe5b602090810290910101516001602002015163ffffffff168152602001858460ff16815181101515612d9d57fe5b60209081029091010151600260200201518152602001858460ff16815181101515612dc457fe5b6020908102919091018101516060015163ffffffff16825260408051600080825281840183528484019190915281518181529283018252920191509052815460018082018085556000948552602094859020845160059094020180548587015163ffffffff1991821663ffffffff9687161767ffffffff000000001916640100000000918716919091021782556040860151938201939093556060850151600282018054909416941693909317909155608083015180519194612e8f92600385019290910190614363565b5060a08201518051612eab916004840191602090910190614363565b50505050612f016001600e8054905003848360ff16815181101515612ecc57fe5b6020908102919091010151608001518551869060ff8616908110612eec57fe5b602090810291909101015160a0015185613d92565b600101612a9b565b6040517f743961f4e677d1146fbf85d75565b1c5474fd083eb166f8b9595cf5d01a4d6e690600090a1505050565b6000806000806060806000600e805490501115612fa457886000815181101515612f5d57fe5b602090810291909101015151600e80546000198101908110612f7b57fe5b6000918252602090912060059091020154640100000000900463ffffffff1610612fa457600080fd5b612fb0600f60006143aa565b600095506000945060009350600092505b88518360ff1610156133e357885163ffffffff908a9060ff8616908110612fe457fe5b6020908102919091010151511115612ffb57600080fd5b885163ffffffff908a9060ff861690811061301257fe5b6020908102919091018101510151111561302b57600080fd5b885163ffffffff908a9060ff861690811061304257fe5b602090810291909101015160400151111561305c57600080fd5b42898460ff1681518110151561306e57fe5b6020908102919091010151511161308457600080fd5b888360ff1681518110151561309557fe5b60209081029190910101515189518a9060ff86169081106130b257fe5b6020908102919091018101510151116130ca57600080fd5b888360ff168151811015156130db57fe5b602090810291909101810151015189518a9060ff86169081106130fa57fe5b6020908102919091010151604001511161311357600080fd5b60008360ff16111561316a57888360ff1681518110151561313057fe5b60209081029190910101515189518a9060ff60001987011690811061315157fe5b6020908102919091010151604001511061316a57600080fd5b61318f898460ff1681518110151561317e57fe5b602090810290910101516003612c76565b151561319a57600080fd5b6131cc8689878151811015156131ac57fe5b9060200190602002015163ffffffff16896140ff9092919063ffffffff16565b91506131fe88868151811015156131df57fe5b9060200190602002015163ffffffff1687613d4c90919063ffffffff16565b95506132158689876001018151811015156131ac57fe5b905061322b88866001018151811015156131df57fe5b955061323e85600263ffffffff613d4c16565b945061326a898460ff1681518110151561325457fe5b6020908102919091010151606001518590613d4c565b9350600f60c0604051908101604052808b8660ff1681518110151561328b57fe5b6020908102919091018101515163ffffffff1682528c519101908c9060ff88169081106132b457fe5b602090810290910101516003602002015181526020018b8660ff168151811015156132db57fe5b602090810290910101516001602002015163ffffffff1681526020018b8660ff1681518110151561330857fe5b6020908102909101015160026020908102919091015163ffffffff90811683528282018790526040928301869052845460018181018088556000978852968490208651600590930201805492841663ffffffff19938416178155868501519181019190915593850151600285018054606088015185166401000000000267ffffffff00000000199390951693169290921716919091179055608083015180516133b792600385019201906143cb565b5060a082015180516133d39160048401916020909101906143cb565b505060019094019350612fc19050565b73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b15801561342a57600080fd5b505af415801561343e573d6000803e3d6000fd5b505050506040513d602081101561345457600080fd5b5051841461346157600080fd5b6040517f56d9a2e016027a3725bf162ef2779c8b28d4dbec97c679cfba02dbb31a34c7ca90600090a1505050505050505050565b8154600090156134f8575060005b82548110156134f857600083600101600085600001848154811015156134c557fe5b60009182526020808320919091015483528201929092526040019020805460ff19169115159190911790556001016134a3565b815161350a9084906020850190614438565b508151156124ce575060005b81518110156124ce576001836001016000848481518110151561353557fe5b6020908102919091018101518252810191909152604001600020805460ff1916911515919091179055600101613516565b6000821161357357600080fd5b600160a060020a038116151561358857600080fd5b600791909155600a805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600160a060020a03811615156135d157600080fd5b600154604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a038316151561364f57600080fd5b600160a060020a038416151561366457600080fd5b600160a060020a038216151561367957600080fd5b600160a060020a038116151561368e57600080fd5b602087015160001080156136a957506136a5611f68565b8614155b156136c357600160a060020a03851615156136c357600080fd5b865160001015613821578651604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152848116602483015260448201939093529051918516916323b872dd916064808201926020929091908290030181600087803b15801561374457600080fd5b505af1158015613758573d6000803e3d6000fd5b505050506040513d602081101561376e57600080fd5b5051151561377b57600080fd5b8651604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152602482019390935290519186169163a9059cbb916044808201926020929091908290030181600087803b1580156137ea57600080fd5b505af11580156137fe573d6000803e3d6000fd5b505050506040513d602081101561381457600080fd5b5051151561382157600080fd5b6020870151600010156124c957613836611f68565b86141561387c576020870151604051600160a060020a0383169180156108fc02916000818181858888f19350505050158015613876573d6000803e3d6000fd5b506124c9565b602080880151604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290519192600160a060020a0389169263dd62ed3e9260448082019392918290030181600087803b1580156138e857600080fd5b505af11580156138fc573d6000803e3d6000fd5b505050506040513d602081101561391257600080fd5b5051101561391f57600080fd5b602080880151604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a03858116602483015260448201939093529051918816926323b872dd926064808401938290030181600087803b15801561399257600080fd5b505af11580156139a6573d6000803e3d6000fd5b505050506040513d60208110156139bc57600080fd5b505115156124c957600080fd5b600160a060020a03811615156139de57600080fd5b855115156139eb57600080fd5b602086015115156139fb57600080fd5b8451865111613a0957600080fd5b6020808601519087015111613a1d57600080fd5b613a25611f68565b831415613a3d576020860151341015613a3d57600080fd5b613a45611f68565b8314613bb857600160a060020a0382161515613a6057600080fd5b613a6b85600161238b565b604080517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523360048201523060248201529051600160a060020a0385169163dd62ed3e9160448083019260209291908290030181600087803b158015613ad257600080fd5b505af1158015613ae6573d6000803e3d6000fd5b505050506040513d6020811015613afc57600080fd5b50511015613b0957600080fd5b600160a060020a0382166323b872dd3330613b2d89600160200201518b6001612244565b6040805160e060020a63ffffffff8716028152600160a060020a0394851660048201529290931660248301526044820152905160648083019260209291908290030181600087803b158015613b8157600080fd5b505af1158015613b95573d6000803e3d6000fd5b505050506040513d6020811015613bab57600080fd5b50511515613bb857600080fd5b8551604080517f9d2e4777000000000000000000000000000000000000000000000000000000008152336004820152602481019290925263ffffffff8616604483015251600160a060020a03831691639d2e47779160648083019260209291908290030181600087803b158015613c2e57600080fd5b505af1158015613c42573d6000803e3d6000fd5b505050506040513d6020811015613c5857600080fd5b50511515613c6557600080fd5b606086015160001015613cb157613c7a611f68565b831415613cb1576060860151604051339180156108fc02916000818181858888f193505050501580156124c9573d6000803e3d6000fd5b505050505050565b600082821115613cc557fe5b50900390565b60008087118015613cdc5750600086115b8015613ce85750600085115b8015613cf7575082600a0a8410155b9050613d01611f68565b881415613d1857808015613d155750816012145b90505b979650505050505050565b6000611956613d30614180565b613d40858563ffffffff61419216565b9063ffffffff6141bb16565b81810182811015610ae357fe5b60006119568383613d68614180565b6141d0565b6000613d776142ec565b8210158015610ae35750613d89614180565b90911115919050565b606080600060ff8616158015613da9575060ff8516155b15613e3757604080516000815260208101909152600e805460ff8a16908110613dce57fe5b90600052602060002090600502016003019080519060200190613df2929190614363565b50604080516000815260208101909152600e805460ff8a16908110613e1357fe5b90600052602060002090600502016004019080519060200190613876929190614363565b835160ff86161115613e4857600080fd5b60ff80861690871610613e5a57600080fd5b6001861615613e6857600080fd5b6001851615613e7657600080fd5b600260ff878703160460ff16604051908082528060200260200182016040528015613eab578160200160208202803883390190505b509250600260ff878703160460ff16604051908082528060200260200182016040528015613ee3578160200160208202803883390190505b509150600090505b8460ff168660ff16101561408657613f1f848760010160ff16815181101515613f1057fe5b90602001906020020151613d6d565b1515613f2a57600080fd5b73__Percent_______________________________63d49d51816040518163ffffffff1660e060020a02815260040160206040518083038186803b158015613f7157600080fd5b505af4158015613f85573d6000803e3d6000fd5b505050506040513d6020811015613f9b57600080fd5b50518451859060ff60018a0116908110613fb157fe5b6020908102909101015110613fc557600080fd5b600081111561400e57838660ff16815181101515613fdf57fe5b906020019060200201518360018303815181101515613ffa57fe5b602090810290910101511061400e57600080fd5b838660ff1681518110151561401f57fe5b90602001906020020151838281518110151561403757fe5b602090810290910101528351849060ff600189011690811061405557fe5b90602001906020020151828281518110151561406d57fe5b6020908102909101015260029590950194600101613eeb565b82600e8860ff1681548110151561409957fe5b906000526020600020906005020160030190805190602001906140bd929190614363565b5081600e8860ff168154811015156140d157fe5b906000526020600020906005020160040190805190602001906140f5929190614363565b5050505050505050565b60608082840185511015151561411457600080fd5b8215801561412d57604051915060208201604052614177565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561416657805183526020928301920161414e565b5050858452601f01601f1916604052505b50949350505050565b600061418a6142f1565b600a0a905090565b60008215156141a357506000610ae3565b508181028183828115156141b357fe5b0414610ae357fe5b600081838115156141c857fe5b049392505050565b6000808080808515156141df57fe5b8715806141ea575086155b156141f4576142e1565b6142066000198863ffffffff6141bb16565b925082881161422a5761422386613d408a8a63ffffffff61419216565b94506142e1565b8588141561423a578694506142e1565b8587141561424a578794506142e1565b87156142cb5787831161425d578261425f565b875b9150614271828863ffffffff61419216565b9050614293614286828863ffffffff6141bb16565b869063ffffffff613d4c16565b94506142b286828115156142a357fe5b8691900663ffffffff613d4c16565b93506142c4888363ffffffff613cb916565b975061424a565b6142de614286858863ffffffff6141bb16565b94505b505050509392505050565b600090565b60006142fb614303565b600201905090565b600290565b60a0604051908101604052806005906020820280388339509192915050565b60408051808201825290600290829080388339509192915050565b50805460008255600502906000526020600020908101906112e79190614475565b82805482825590600052602060002090810192821561439e579160200282015b8281111561439e578251825591602001919060010190614383565b506112ab9291506144ce565b50805460008255600502906000526020600020908101906112e791906144e8565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061440c57805160ff191683800117855561439e565b8280016001018555821561439e579182018281111561439e578251825591602001919060010190614383565b82805482825590600052602060002090810192821561439e579160200282015b8281111561439e5782518255602090920191600190910190614458565b61125291905b808211156112ab57805467ffffffffffffffff1916815560006001820181905560028201805463ffffffff191690556144b76003830182614541565b6144c5600483016000614541565b5060050161447b565b61125291905b808211156112ab57600081556001016144d4565b61125291905b808211156112ab57805463ffffffff1916815560006001820181905560028201805467ffffffffffffffff1916905561452a600383018261455f565b61453860048301600061455f565b506005016144ee565b50805460008255906000526020600020908101906112e791906144ce565b50805460018160011615610100020316600290046000825580601f1061458557506112e7565b601f0160209004906000526020600020908101906112e791906144ce565b60006145ae82613d6d565b15156145b957600080fd5b610ae36145c4614303565b8390600a0a63ffffffff6141bb165600a165627a7a72305820dc6b5424e78cffe92da71089aab7b1a9f8683b59cf38c681b0caca8f6e38b8be0029", + "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;;;;;2254:26:5;;;;2246:35;;;;;;-1:-1:-1;;;;;2299:20:5;;;;2291:29;;;;;;2338:23;:11;:21;;;;;;:23;:::i;:::-;:58;;;;-1:-1:-1;2393:3:5;2365:25;:11;:23;;;;;;:25;:::i;:::-;:31;2338:58;2330:67;;;;;;;;2415:33;:21;:31;;;;;;:33;:::i;:::-;:78;;;;-1:-1:-1;2490:3:5;2452:35;:21;:33;;;;;;:35;:::i;:::-;:41;2415:78;2407:87;;;;;;;;-1:-1:-1;;;;;2512:19:5;;;;2504:28;;;;;;-1:-1:-1;;;;;2550:19:5;;;;2542:28;;;;;;-1:-1:-1;;;;;2588:20:5;;;;2580:29;;;;;;2620:39;2636:6;2644:14;2620:15;;;;:39;:::i;:::-;2670:5;:23;;-1:-1:-1;;;;;;2670:23:5;;;-1:-1:-1;;;;;2670:23:5;;;;;;;2703:11;:33;;;;;;;;;;;;;;2746:10;:24;;;;2780:4;:12;;;;;;;;;;;;;;2802:20;:44;2856:4;:12;;;;;;;;;;;;;;-1:-1:-1;2878: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;4661:219:5:-;4759:1;4750:10;;4742:19;;;;;;-1:-1:-1;;;;;4779:28:5;;;;4771:37;;;;;;4819:5;:14;;;;4843:13;:30;;-1:-1:-1;;;;;;4843:30:5;-1:-1:-1;;;;;4843:30:5;;;;;;;;;4661: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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12072:654:5;;;;;;;;;;14257:135;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14257: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;;;;;;;;;;;;;;4450:205;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4450: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;;;;;;;15427:310:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;15427:310:5;;;;;;;;;;;;;;;;;;;;;3105:388;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3105: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;3105:388:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3105: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;3105:388:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3499:359;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3499: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;3499: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;3499:359:5;;;;;;;;;;;;;;;;;;;;;;;1050:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1050:32:5;;;;16080:240;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16080:240:5;;;;3001:98;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3001:98:5;;;;13968:81;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13968: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;;;;14140:111:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14140: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;14140:111:5;;;;;;;;;;;;;;;;;1088:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1088:28:5;;;;16463:130;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16463: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;;;;2905:90:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2905: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;;;;14398:844;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14398:844: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;14398:844:5;;;;;;;;;;;;;;;;238:20:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:45;;;;14055:79:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14055:79:5;;;;999:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;999:17:5;;;;16326:131;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16326:131:5;;;;3864:147;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3864: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;;;;;15248:173:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;15248:173:5;;;;;;;;;;;84:18:-1;;64:39;;15248:173:5;;;;;;;;52:2:-1;8:100;;5087:1344:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5087:1344:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4097:347;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4097:347:5;;;;15743:331;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15743:331:5;;;;1250:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1250:29:5;;;;;4886:126;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4886: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;;;;;892:20:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;892:20:5;;;;12072:654;12312:10;12375:22;;:::i;:::-;12436:18;;:::i;:::-;1128:14:41;;487:1;1128:39;1120:48;;;;;;584:1;1174:40;;16790:14:5;:12;:14::i;:::-;16782:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12216:6;12181:31;:29;:31::i;:::-;:41;12177:124;;12246:5;;:29;;;-1:-1:-1;;;;;12246:29:5;;;;;;;;;;12287:1;;-1:-1:-1;;;;;12246:5:5;;:21;;:29;;;;;;;;;;;;;;12287:1;12246:5;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;12246:29:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12246:29:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12246:29:5;-1:-1:-1;;;;;12246:43:5;;;12238:52;;;;;;12342:22;:20;:22::i;:::-;12311:53;;;12400:26;12411:6;12419;12400:10;:26::i;:::-;12464:10;;;12476;;;12375:51;;-1:-1:-1;12457:30:5;;:6;:30::i;:::-;12436:51;;12498:25;12511:3;12516:6;12498:12;:25::i;:::-;12533:62;12551:7;12560:3;12565:6;12572:5;12565:13;;;;;;;;;;;;;;;;;;:21;:13;;;;;:21;;;;12588:6;12533:17;:62::i;:::-;12605:37;12621:7;12630:3;12635:6;12605:15;:37::i;:::-;12684:10;;;12696;;;;12708;;;;;12658:61;;;;;;;;;;;;;;;;;;;;;;12672:10;;12658:61;;;;;;;;;-1:-1:-1;;487:1:41;1227:14;:38;-1:-1:-1;;;12072:654:5:o;14257:135::-;14329:4;14352:33;:14;14377:7;14352:33;:24;:33;:::i;:::-;14345:40;14257:135;-1:-1:-1;;14257:135:5:o;918:24::-;;;-1:-1:-1;;;;;918:24:5;;:::o;4450:205::-;4542:10;:17;4504:10;;;;4542:22;;:36;;;4569:9;:7;:9::i;:::-;4568:10;4542:36;4538:49;;;4580:7;;4538:49;-1:-1:-1;;4627:10:5;:17;-1:-1:-1;;4627:21:5;4605:4;4450: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;15427:310:5:-;15487:10;15510;15522;15598:19;15536:22;:20;:22::i;:::-;15509:49;;;;15574:5;15573:6;15569:19;;;15581:7;;15569:19;15620:6;:13;;15627:5;;15620:13;;;;;;;;;;;;;;;;15598:35;;15651:79;15679:5;15686;:22;;15651:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15710:5;:19;;15651:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:27;:79::i;:::-;15644:86;;15427:310;;;;;;;:::o;3105:388::-;3160:6;3168:4;3174:6;3182;3190:5;3197;3235:10;3246:5;3235:17;;;;;;;;;;;;;;;;;;;;;;;:25;3274:10;:17;;3235:25;;;;;3285:5;;3274:17;;;;;;;;;;;;;;;;:32;;;3320:10;3331:5;3320:17;;;;;;;;;;;;;;;;;;:29;:17;;;;;:29;;3363:10;:17;;3320:29;;;;;3374:5;;3363:17;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;3411:10;3422:5;3411:17;;;;;;;;;;;;;;;;;;;;:22;;3447:10;3458:5;3447:17;;;;;;;;;;;;;;;;;;;;:29;;3214:272;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3214:272:5;;;;;;;;;;;;;-1:-1:-1;;3214:272:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3214:272:5;;-1:-1:-1;3214:272:5;-1:-1:-1;3214:272:5;;;-1:-1:-1;3214:272:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3105:388;;;;;;;:::o;3499:359::-;3550:6;3558;3566:4;3572:6;3580;3588;3627;3634:5;3627:13;;;;;;;;;;;;;;;;;;;;;;;:23;3664:6;:13;;3627:23;;;;;3671:5;;3664:13;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;3699:6;3706:5;3699:13;;;;;;;;;;;;;;;;;;;;:22;;;3735:6;3742:5;3735:13;;;;;;;;;;;;;;;;;;:21;:13;;;;;:21;;3770:6;:13;;3735:21;;;;;3777:5;;3770:13;;;;;;;;;;;;;;;;:30;;3814:6;3821:5;3814:13;;;;;;;;;;;;;;;;;;;;:27;;3606:245;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3499:359;;;;;;;:::o;1050:32::-;;;;:::o;16080:240::-;719:5:45;;16170:11:5;;-1:-1:-1;;;;;719:5:45;705:10;:19;697:28;;;;;;16149:9:5;:7;:9::i;:::-;16141:18;;;;;;;;16184:5;;:30;;;;;;16208:4;16184:30;;;;;;-1:-1:-1;;;;;16184:5:5;;;;:15;;:30;;;;;;;;;;;;;;;:5;;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;16184:30:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16184:30:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16184:30:5;16233:5;;;16248;16233:29;;;;;;-1:-1:-1;;;;;16248:5:5;;;16233:29;;;;;;;;;;;;16184:30;;-1:-1:-1;16233:5:5;;;:14;;:29;;;;;16184:30;;16233:29;;;;;;;;:5;;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;16233:29:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16233:29:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16233:29:5;16225:38;;;;;;;;16299:5;;16279:34;;;;;;;;-1:-1:-1;;;;;16299:5:5;;;;16279:34;;;;;;;;;16080:240;:::o;3001:98::-;3075:10;:17;3001:98;;:::o;13968:81::-;14037:5;;-1:-1:-1;;;;;14037:5:5;13968:81;:::o;974:19::-;;;-1:-1:-1;;;;;974:19:5;;:::o;53::37:-;;;;:::o;14140:111:5:-;14195:9;14223:21;:14;:19;:21::i;:::-;14216:28;;14140:111;:::o;1088:28::-;;;-1:-1:-1;;;;;1088:28:5;;:::o;16463:130::-;16508:4;16527:10;16541:22;:20;:22::i;:::-;16524:39;;;16581:5;16574:12;;16463: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;2905:90:5:-;2975:6;:13;2905:90;:::o;1122:19::-;;;-1:-1:-1;;;;;1122:19:5;;:::o;1223:21::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1223:21:5;;;;;;;;;;:::o;1022:22::-;;;;:::o;14398:844::-;14468:7;;:::i;:::-;14488:10;14500;14514:22;:20;:22::i;:::-;14487:49;;;;14552:5;14551:6;14547:19;;;14559:7;;14547:19;14615:6;14580:31;:29;:31::i;:::-;:41;14576:159;;14641:5;;:29;;;-1:-1:-1;;;;;14641:29:5;;;;;;;;;;14682:1;;-1:-1:-1;;;;;14641:5:5;;:21;;:29;;;;;;;;;;;;;;14682:1;14641:5;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;14641:29:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14641:29:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14641:29:5;-1:-1:-1;;;;;14641:43:5;;14637:88;;;14704:7;;14637:88;14752:483;14792:6;14812;14832;14839:5;14832:13;;;;;;;;;;;;;;;;;;;;:22;;;14868:6;14875:5;14868:13;;;;;;;;;;;;;;;;;;;;:30;;14752:483;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14912:6;14919:5;14912:13;;;;;;;;;;;;;;;;;;;;:27;;14752:483;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14953:5;;;;;;;;;-1:-1:-1;;;;;14953:5:5;-1:-1:-1;;;;;14953:9:5;;14963:6;14953:17;;;;;-1:-1:-1;;;14953:17:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14953:17:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14953:17:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14953:17:5;14984:5;;15008;;:16;;;;;;;;-1:-1:-1;;;;;15008:5:5;;;;:14;;:16;;;;;14953:17;;15008:16;;;;;;;;:5;;:16;;;5:2:-1;;;;30:1;27;20:12;5:2;15008:16:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15008:16:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15008:16:5;15003:22;;15074:6;15039:31;:29;:31::i;:::-;:41;:142;;15139:5;;;;;;;;;-1:-1:-1;;;;;15139:5:5;-1:-1:-1;;;;;15139:21:5;;15161:6;15139:29;;;;;-1:-1:-1;;;15139:29:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15139:29:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15139:29:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15139:29:5;15125:55;;;;;;;;-1:-1:-1;;;;;15125:53:5;;;;;;:55;;;;;15139:29;;15125:55;;;;;;;;;:53;:55;;;5:2:-1;;;;30:1;27;20:12;5:2;15125:55:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15125:55:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15125:55:5;15120:61;;15039:142;;;15099:2;15039:142;15195:5;;:30;;;;;;15219:4;15195:30;;;;;;-1:-1:-1;;;;;15195:5:5;;;;:15;;:30;;;;;;;;;;;;;;;:5;;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;15195:30:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15195:30:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15195:30:5;14752:26;:483::i;:::-;14745:490;;14398:844;;;;;;;:::o;238:20:45:-;;;-1:-1:-1;;;;;238:20:45;;:::o;14055:79:5:-;14123:4;;-1:-1:-1;;;;;14123:4:5;14055:79;:::o;999:17::-;;;;:::o;16326:131::-;16389:6;:13;16366:4;;16389:18;;:61;;-1:-1:-1;16411:6:5;16418:13;;16447:3;;16411:6;-1:-1:-1;;16418:17:5;;;16411:25;;;;;;;;;;;;;;;;;;;:33;;;;;;:39;;16326:131;-1:-1:-1;16326:131:5:o;3864:147::-;3935:6;:13;3909:6;;3935:17;-1:-1:-1;3927:26:5;;;;;;3971:6;3978:13;;-1:-1:-1;;3978:17:5;;;3971:25;;;;;;;;;;;;;;;;;;;:33;;;;;;;3864:147;-1:-1:-1;3864:147:5:o;948:20::-;;;-1:-1:-1;;;;;948:20:5;;:::o;949:117:18:-;1015:20;:44;949:117::o;15248:173:5:-;15313:7;;:::i;:::-;15339:75;15362:11;15375:4;15381:10;;15393:20;;15339:22;:75::i;:::-;15332:82;15248:173;-1:-1:-1;;;15248:173:5:o;5087:1344::-;719:5:45;;5986:6:5;;-1:-1:-1;;;;;719:5:45;705:10;:19;697:28;;;;;;16640:6:5;:13;16656:1;-1:-1:-1;16636:82:5;;;16703:3;16681:6;16688:1;16681:9;;;;;;;;;;;;;;;;;;;;;;;:19;;;:25;16673:34;;;;;;5483:30;;;5475:39;;;;;;5532;;;;5524:48;;;;;;5644:43;;;;5636:52;;;;;;5786:1;5739:37;:48;5706:81;;5698:90;;;;;;5880:1;5839:31;:42;5806:75;;;5798:84;;;;;;5939:30;;;5931:39;;;;;;-1:-1:-1;5995:1:5;5981:125;5998:29;;;5981:125;;;6056:5;;-1:-1:-1;;;;;6056:5:5;:15;6072:18;;6091:1;6072:21;;;;;;;6056:38;;;-1:-1:-1;;;6056:38:5;;;;;;6072:21;;;;;;;;;6056:38;;;;;;;;;;6072:21;;-1:-1:-1;6056:38:5;;;;;;;6072:21;6056:38;;;;5:2:-1;;;;30:1;27;20:12;5:2;6056:38:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6056:38:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6056:38:5;6048:47;;;;;;;;6029:3;;5981:125;;;6116:89;6140:18;;6116:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6116:89:5;;;-1:-1:-1;;6116:89:5;;;;;;;;;;;;;;;6172:23;;6116:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6116:10:5;;-1:-1:-1;;;;;6116:89:5:i;:::-;6216:156;6244:22;;6216:156;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6216:156:5;;;-1:-1:-1;;6216:156:5;;;;;;;;;;;;;;;6280:37;;6216:156;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6216:156:5;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6331:31:5;;-1:-1:-1;6331:31:5;;-1:-1:-1;6331:31:5;;-1:-1:-1;6216:156:5;;6331:31;;;;6216:156;;-1:-1:-1;6216:14:5;;-1:-1:-1;;;;;6216:156:5:i;:::-;6383:41;6405:18;;6383:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6383:14:5;;:41;-1:-1:-1;;6383:41:5;:21;:41;;-1:-1:-1;;;6383:41:5:i;:::-;5087:1344;;;;;;;;;;;;;:::o;4097:347::-;4191:10;:17;4154:10;;;;4191:22;;:36;;;4218:9;:7;:9::i;:::-;4217:10;4191:36;4188:48;;;4229:7;;4188:48;-1:-1:-1;4254:4:5;4324:114;4338:10;:17;-1:-1:-1;;4338:21:5;4330:29;;:74;;;;-1:-1:-1;4370:10:5;:17;;4381:5;;4370:17;;;;;;;;;;;;;;;;;;;:34;;;;;;;;4363:3;:41;;4330:74;4324:114;;;4420:7;;;;;4324:114;;15743:331;15796:10;;;;15830:210;15850:6;:13;15846:17;;15830:210;;;15906:6;:9;;15913:1;;15906:9;;;;;;;;;;;;;;;;;;;15934:15;;15906:9;;-1:-1:-1;15953:3:5;15934:15;;;;:22;;;;:45;;-1:-1:-1;15960:13:5;;15976:3;15960:13;;;;;;:19;15934:45;15930:100;;;16007:1;16010:4;15999:16;;;;;;15930:100;15865:3;;;;;15830:210;;;16058:1;;-1:-1:-1;16058:1:5;;-1:-1:-1;15743: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;4886:126::-;719:5:45;;-1:-1:-1;;;;;719:5:45;705:10;:19;697:28;;;;;;16640:6:5;:13;16656:1;-1:-1:-1;16636:82:5;;;16703:3;16681:6;16688:1;16681:9;;;;;;;;;;;;;;;;;;;;;;;:19;;;:25;16673:34;;;;;;4991:13;;4967:38;;4983:6;;-1:-1:-1;;;;;4991:13:5;4967: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;892:20:5:-;;;-1:-1:-1;;;;;892:20:5;;:::o;319:78:15:-;381:14;319:78;:::o;12732:343:5:-;12885:5;;:21;;;;;;;;;;;;;;12803:265;;12847:4;;12865:6;;-1:-1:-1;;;;;12885:5:5;;;;:13;;:21;;;;;;;;;;;;;;;:5;;:21;;;5:2:-1;;;;30:1;27;20:12;5:2;12885:21:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12885:21:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12885:21:5;:66;;12949:1;12885:66;;;12909:5;;:29;;;-1:-1:-1;;;;;12909:29:5;;;;;;;;;;-1:-1:-1;;;;;12909:5:5;;;;:21;;:29;;;;;;;;;;;;;;;:5;;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;12909:29:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12909:29:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12909:29:5;12885:66;12973:5;;13001:11;;13027:4;;13045:13;;-1:-1:-1;;;;;12973:5:5;;;;13001:11;;;;13027:4;;;;13045:13;12803:30;:265::i;13081:351::-;13321:5;;:21;;;;;;;;;;;;;;13191:234;;13240:8;;13262:4;;13280:7;;13301:6;;-1:-1:-1;;;;;13321:5:5;;;;:13;;:21;;;;;;;;;;;;;;;:5;;:21;;;5:2:-1;;;;30:1;27;20:12;5:2;13321:21:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13321:21:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13321:21:5;:66;;13385:1;13321:66;;;13345:5;;:29;;;-1:-1:-1;;;;;13345:29:5;;;;;;;;;;-1:-1:-1;;;;;13345:5:5;;;;:21;;:29;;;;;;;;;;;;;;;:5;;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;13345:29:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13345:29:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13345:29:5;13321:66;13409:5;;-1:-1:-1;;;;;13409:5:5;13191:35;:234::i;:::-;13081:351;;;;:::o;13438:524::-;13544:31;:29;:31::i;:::-;13534:41;;13530:426;;;13591:4;;-1:-1:-1;;;;;13591:4:5;:19;13617:24;13633:4;13591;13633:7;;;;13617:8;13626:1;13617:11;;;;;;:24;:15;:24;:::i;:::-;13655:11;;;13692:7;;;13643:10;;13655:11;13668:6;;13676:24;;13655:8;13697:1;13676:11;;:24;13702:8;13711:1;13702:11;;;;13591:123;;;-1:-1:-1;;;13591:123:5;;;;;;-1:-1:-1;;;;;13591:123:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13591:123:5;;;;;;;;;;;;5:2:-1;;;;30:1;27;20:12;5:2;13591:123:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13591:123:5;;;;;13530:426;;;13759:5;;:29;;;-1:-1:-1;;;;;13759:29:5;;;;;;;;;;-1:-1:-1;;;;;13759:5:5;;;;:21;;:29;;;;;;;;;;;;;;;:5;;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;13759:29:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13759:29:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13759:29:5;13807:4;;-1:-1:-1;;;;;13753:45:5;;;;;;13807:4;13814:24;13830:4;13807;13830:7;;;;;13814:8;13823:1;13814:11;;:24;13753:86;;;;;-1:-1:-1;;;13753:86:5;;;;;;;-1:-1:-1;;;;;13753:86:5;-1:-1:-1;;;;;13753:86:5;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13753:86:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13753:86:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13753:86:5;13745:95;;;;;;;;13854:4;;-1:-1:-1;;;;;13854:4:5;:19;13874:10;13886:8;13854:4;13886:11;;;;13899:6;13907:24;13923:4;13928:1;13923:7;;;;13907:8;13916:1;13907:11;;:24;13933:8;13942:1;13933:11;;;;13854:91;;;-1:-1:-1;;;13854:91:5;;;;;;-1:-1:-1;;;;;13854:91:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13854:91:5;;;;;;;-1:-1:-1;13854:91:5;;;;5:2:-1;;;;30:1;27;20:12;5:2;13854:91:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13854:91:5;;;;13530:426;13438:524;;;:::o;628:140:12:-;712:4;735:26;;;:17;;;;;:26;;;;;;;;;628:140::o;6332:337:15:-;6431:10;;6453:210;6474:16;:23;6470:1;:27;6453:210;;;6531:16;6548:1;6531:19;;;;;;;;;;;;;;;;;;;6522:28;;6518:135;;6578:13;6592:1;6578:16;;;;;;;;;;;;;;;;;;6570:24;;6518:135;;;6633:5;;6518:135;6499:3;;6453:210;;;6332:337;;;;;;:::o;774:111:12:-;836:9;864:8;:14;;857:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;774:111;;;:::o;1989:1980:15:-;2329:14;;:::i;:::-;2840:10;2367:218;2398:6;2418:13;2445;2472:12;2498:22;2534:13;2561:14;2367:17;:218::i;:::-;2359:227;;;;;;;;2628:5;:26;2668:13;2695:14;2723:13;2628:118;;;;;-1:-1:-1;;;2628:118:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2628:118:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2628:118:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2628:118:15;2616:9;;;:130;;;2803:25;-1:-1:-1;2803:25:15;2795:34;;;;;;2862:9;;;;2853:52;;2873:16;2891:13;2853:8;:52::i;:::-;2840:65;;2959:1;2948:8;:12;:100;;3036:12;2948:100;;;2975:46;3012:8;2996:7;:11;:13;;;;;-1:-1:-1;;;2996:13:15;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2996:13:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2996:13:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2996:13:15;2975:12;;2996:24;;2975:46;:20;:46;:::i;:::-;2936:6;2943:1;2936:9;;;:112;;;;;3089:5;:33;3136:47;3158:24;3176:5;3158:7;:11;:13;;;;;-1:-1:-1;;;3158:13:15;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3158:13:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3158:13:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3158:13:15;;:24;:17;:24;:::i;:::-;3136:9;;;;;:21;:47::i;:::-;3197:13;3224:6;3231:1;3224:9;;;;3089:154;;;;;-1:-1:-1;;;3089:154:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3089:154:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3089:154:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3089:154:15;3077:166;;;3302:34;;3298:263;;;3479:9;;;;3364:138;;;;;;3486:1;3364:138;;;;;;;;;;;;;;;;;;;:5;;:26;;:138;;;;;3479:9;;3364:138;;;;;;;:5;:138;;;5:2:-1;;;;30:1;27;20:12;5:2;3364:138:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3364:138:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3364:138:15;3352:9;;;:150;3516:34;;;3298:263;3599:5;:33;3646:6;3653:1;3646:9;;;;3669:14;3697:13;3599:121;;;;;-1:-1:-1;;;3599:121:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3599:121:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3599:121:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3599:121:15;3587:9;;;:133;;;3768:14;;:32;;-1:-1:-1;3786:9:15;;:14;3768:32;3764:130;;;3828:1;3816:13;;;:9;3843;;:13;;;3870:9;;;:13;3764:130;3952:9;;;;3934:28;;:13;;:17;:28::i;:::-;3922:9;;;:40;-1:-1:-1;3922:6:15;1989:1980;-1:-1:-1;;;;;;;;;;1989:1980:15:o;3975:265::-;4072:14;;:::i;:::-;4113:1;4102:8;:12;4098:63;;;4128:33;:11;4152:8;4128:33;:23;:33;:::i;:::-;4116:45;;4098:63;4189:1;4175:11;:15;4171:62;;;4204:29;:4;4221:11;4204:29;:16;:29;:::i;:::-;4192:9;;;:41;4171:62;3975:265;;;;;;:::o;6832:1641:5:-;6921:10;:17;7163:7;;6921:21;-1:-1:-1;6917:207:5;;;7087:17;;7076:10;;-1:-1:-1;;7087:21:5;;;7076:33;;;;;;;;;;;;;;;;;:36;;7052:10;:13;;7063:1;;7052:13;;;;;;;;;;;;;;;;;;;:21;;;:60;7044:69;;;;;;7134:13;7141:6;;7134:13;:::i;:::-;-1:-1:-1;7173:1:5;7158:1278;7180:10;:17;7176:1;:21;;;7158:1278;;;7256:13;;:30;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;:30;;7248:39;;;;;;7309:13;;:30;;:10;;:13;;;;;;;;;;;;;;;;;;;;;:16;;:30;;7301:39;;;;;;7362:13;;:30;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;;;:30;;7354:39;;;;;;7415:13;;:29;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;;;:29;;7407:38;;;;;;7467:13;;:29;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;;;:29;;7459:38;;;;;;7566:3;7547:10;7558:1;7547:13;;;;;;;;;;;;;;;;;;;;;;:16;:22;7539:31;;;;;;7611:10;7622:1;7611:13;;;;;;;;;;;;;;;;;;;;;;;:16;;7592:13;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;:35;7584:44;;;;;;7651:1;7647;:5;;;7643:93;;;7704:10;7715:1;7704:13;;;;;;;;;;;;;;;;;;;;;;:16;7680:17;;:10;;:17;-1:-1:-1;;7691:5:5;;7680:17;;;;;;;;;;;;;;;;;;;:20;;:40;;7672:49;;;;;;7788:28;:10;7799:1;7788:13;;;;;;;;;;;;;;;;;;;;;7802:1;7788:16;;;;;:26;:28::i;:::-;7780:37;;;;;;;;7858:7;:11;:13;;;;;-1:-1:-1;;;7858:13:5;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7858:13:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7858:13:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7858:13:5;7839;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;;;:32;7831:41;;;;;;7887:6;7899:315;;;;;;;;;7941:10;7952:1;7941:13;;;;;;;;;;;;;;;;;;;;;;;:16;7899:315;;;;7992:13;;7899:315;;;7992:10;;:13;;;;;;;;;;;;;;;;;;;8006:1;7992:16;;;;7899:315;;;;;;8037:10;8048:1;8037:13;;;;;;;;;;;;;;;;;;;;;8051:1;8037:16;;;;7899:315;;;;8087:10;8098:1;8087:13;;;;;;;;;;;;;;;;;;;;;;;:16;;;7899:315;;;;8140:13;;;8151:1;8140:13;;;;;;;;7899:315;;;;;;;8186:13;;;;;;;;;;7899:315;;;-1:-1:-1;7899:315:5;;27:10:-1;;39:1;23:18;;;45:23;;;-1:-1;7887:328:5;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7887:328:5;;;;;;;;-1:-1:-1;;7887:328:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:18:-1;;7887:328:5;;;;;;;;;;;:::i;:::-;-1:-1:-1;7887:328:5;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;8230:195;8294:1;8278:6;:13;;;;:17;8320:10;8331:1;8320:13;;;;;;;;;;;;;;;;;;;;;;:16;;;8361:13;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;;;8396:15;8230:24;:195::i;:::-;7199:3;;7158:1278;;;8451:15;;;;;;;6832:1641;;;:::o;10264:1802::-;10564:11;10589:6;10609:18;10647:7;11278:17;11403:24;10437:1;10421:6;:13;;;;:17;10417:109;;;10498:10;10509:1;10498:13;;;;;;;;;;;;;;;;;;;;:16;10462:6;10469:13;;-1:-1:-1;;10469:17:5;;;10462:25;;;;;;;;;;;;;;;;;;;:33;;;;;;:52;10454:61;;;;;;10536:17;10543:10;;10536:17;:::i;:::-;10578:1;10564:15;;10598:1;10589:10;;10630:1;10609:22;;10657:1;10647:11;;10642:1333;10664:10;:17;10660:1;:21;;;10642:1333;;;10740:13;;:31;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;:31;;10732:40;;;;;;10794:13;;:31;;:10;;:13;;;;;;;;;;;;;;;;;;;;;:16;;:31;;10786:40;;;;;;10848:13;;:31;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;;;:31;;10840:40;;;;;;10949:3;10930:10;10941:1;10930:13;;;;;;;;;;;;;;;;;;;;;;:16;:22;10922:31;;;;;;10994:10;11005:1;10994:13;;;;;;;;;;;;;;;;;;;;;;:16;10975:13;;:10;;:13;;;;;;;;;;;;;;;;;;;;;:16;;:35;10967:44;;;;;;11052:10;11063:1;11052:13;;;;;;;;;;;;;;;;;;;;;;;:16;;11033:13;;:10;;:13;;;;;;;;;;;;;;;;;;;;:16;;;:35;11025:44;;;;;;11092:1;11088;:5;;;11084:92;;;11144:10;11155:1;11144:13;;;;;;;;;;;;;;;;;;;;;;:16;11121:17;;:10;;:17;-1:-1:-1;;11132:5:5;;11121:17;;;;;;;;;;;;;;;;;;:20;;;:39;11113:48;;;;;;11234:28;:10;11245:1;11234:13;;;;;;;;;;;;;;;;;;;;;11248:1;11234:16;;:28;11226:37;;;;;;;;11298:46;11325:6;11333:7;11341:1;11333:10;;;;;;;;;;;;;;;;;;11298:46;;:20;:26;;:46;;;;;:::i;:::-;11278:66;;11367:22;11378:7;11386:1;11378:10;;;;;;;;;;;;;;;;;;11367:22;;:6;:10;;:22;;;;:::i;:::-;11358:31;;11430:50;11457:6;11465:7;11473:1;11477;11473:5;11465:14;;;;;;;;;11430:50;11403:77;;11503:26;11514:7;11522:1;11526;11522:5;11514:14;;;;;;;;;11503:26;11494:35;-1:-1:-1;11547:8:5;:1;11553;11547:8;:5;:8;:::i;:::-;11543:12;;11586:35;11604:10;11615:1;11604:13;;;;;;;;;;;;;;;;;;;;;;:16;;;11586:13;;:17;:35::i;:::-;11570:51;;11636:10;11652:311;;;;;;;;;11696:10;11707:1;11696:13;;;;;;;;;;;;;;;;;;;;;;;:16;11652:311;;;;11747:13;;11652:311;;;11747:10;;:13;;;;;;;;;;;;;;;;;;;11761:1;11747:16;;;;11652:311;;;;11801:10;11812:1;11801:13;;;;;;;;;;;;;;;;;;;;;11815:1;11801:16;;;;11652:311;;;;;;11861:10;11872:1;11861:13;;;;;;;;;;;;;;;;;;;;;11875:1;11861:16;;;;;;;;;11652:311;;;;;;;;;;;;;;;;;;;27:10:-1;;39:1;23:18;;;45:23;;;-1:-1;11636:328:5;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11636:328:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11636:328:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;11636:328:5;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;10683:3:5;;;;;-1:-1:-1;10642:1333:5;;-1:-1:-1;10642:1333:5;;12010:7;:11;:13;;;;;-1:-1:-1;;;12010:13:5;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12010:13:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12010:13:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12010:13:5;11993:30;;11985:39;;;;;;12040:19;;;;;;;10264: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;;4661:219:5;4759:1;4750:10;;4742:19;;;;;;-1:-1:-1;;;;;4779:28:5;;;;4771:37;;;;;;4819:5;:14;;;;4843:13;:30;;-1:-1:-1;;4843:30:5;-1:-1:-1;;;;;4843:30:5;;;;;;;;;4661: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;4246:1052:15:-;-1:-1:-1;;;;;4485:25:15;;;;4477:34;;;;;;-1:-1:-1;;;;;4529:19:15;;;;4521:28;;;;;;-1:-1:-1;;;;;4567:23:15;;;;4559:32;;;;;;-1:-1:-1;;;;;4609:27:15;;;;4601:36;;;;;;4652:7;;;;4662:1;-1:-1:-1;4652:37:15;;;;;4677:12;:10;:12::i;:::-;4667:22;;;4652:37;4648:102;;;-1:-1:-1;;;;;4713:25:15;;;;4705:34;;;;;;4764:7;;4774:1;-1:-1:-1;4760:181:15;;;4857:7;;4799:66;;;;;;-1:-1:-1;;;;;4799:66:15;;;;;;;;;;;;;;;;;;;;;;;:31;;;;;;:66;;;;;4857:7;;4799:66;;;;;;;;4862:1;4799:31;:66;;;5:2:-1;;;;30:1;27;20:12;5:2;4799:66:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4799:66:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4799:66:15;4791:75;;;;;;;;4921:7;;4888:41;;;;;;-1:-1:-1;;;;;4888:41:15;;;;;;;;;;;;;;;;:21;;;;;;:41;;;;;4921:7;;4888:41;;;;;;;;4926:1;4888:21;:41;;;5:2:-1;;;;30:1;27;20:12;5:2;4888:41:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4888:41:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4888:41:15;4880:50;;;;;;;;4955:7;;;;4965:1;-1:-1:-1;4951:341:15;;;4996:12;:10;:12::i;:::-;4986:22;;4982:300;;;5051:7;;;;5028:31;;-1:-1:-1;;;;;5028:22:15;;;:31;;;;;;;;;5051:7;5028:22;:31;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5028:31:15;4982:300;;;5165:7;;;;;5106:55;;;;;;5135:10;5106:55;;;;5155:4;5106:55;;;;;;5165:7;;-1:-1:-1;;;;;5106:28:15;;;;;:55;;;;;5165:7;5106:55;;;;;;-1:-1:-1;5106:28:15;:55;;;5:2:-1;;;;30:1;27;20:12;5:2;5106:55:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5106:55:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5106:55:15;:66;;5098:75;;;;;;5258:7;;;;;5199:67;;;;;;5231:10;5199:67;;;;-1:-1:-1;;;;;5199:67:15;;;;;;;;;;;;;;;;:31;;;;;;:67;;;;;;;;;;-1:-1:-1;5199:31:15;:67;;;5:2:-1;;;;30:1;27;20:12;5:2;5199:67:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5199:67:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5199:67:15;5191:76;;;;;;;5304:1022;-1:-1:-1;;;;;5511:19:15;;;;5503:28;;;;;;5549:11;;:16;;5541:25;;;;;;5584:11;;;;:16;;5576:25;;;;;;5633:7;;5619:11;;:21;5611:30;;;;;;5673:7;;;;;5659:11;;;;:21;5651:30;;;;;;5706:12;:10;:12::i;:::-;5696:22;;5692:86;;;5755:11;;;;5742:9;:24;;5734:33;;;;;;5802:12;:10;:12::i;:::-;5792:22;;5788:300;;-1:-1:-1;;;;;5838:25:15;;;;5830:34;;;;;;5945:24;5961:4;5966:1;5961:7;;5945:24;5886:55;;;;;;5915:10;5886:55;;;;5935:4;5886:55;;;;;;-1:-1:-1;;;;;5886:28:15;;;;;:55;;;;;;;;;;;;;;-1:-1:-1;5886:28:15;:55;;;5:2:-1;;;;30:1;27;20:12;5:2;5886:55:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5886:55:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5886:55:15;:83;;5878:92;;;;;;-1:-1:-1;;;;;5992:31:15;;;6024:10;6044:4;6051:24;6067:4;6072:1;6067:7;;;;6051:8;6060:1;6051:11;;:24;5992:84;;;-1:-1:-1;;;5992:84:15;;;;;;-1:-1:-1;;;;;5992:84:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5992:84:15;;;;5:2:-1;;;;30:1;27;20:12;5:2;5992:84:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5992:84:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5992:84:15;5984:93;;;;;;;;6149:11;;6106:64;;;;;;6137:10;6106:64;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6106:30:15;;;;;:64;;;;;6149:11;;6106:64;;;;;;;6158:1;6106:30;:64;;;5:2:-1;;;;30:1;27;20:12;5:2;6106:64:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6106:64:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6106:64:15;6098:73;;;;;;;;6186:11;;;;6200:1;-1:-1:-1;6182:138:15;;;6231:12;:10;:12::i;:::-;6221:22;;6217:93;;;6283:11;;;;6263:32;;:10;;:32;;;;;;;;;6283:11;6263:10;:32;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;6217:93:15;5304:1022;;;;;;:::o;1060:116:44:-;1120:7;1142:8;;;;1135:16;;;;-1:-1:-1;1164:7:44;;;1060:116::o;403:540:15:-;659:11;707:1;691:13;:17;:50;;;;;740:1;724:13;:17;691:50;:82;;;;;772:1;757:12;:16;691:82;:143;;;;;821:13;815:2;:19;789:22;:45;;691:143;682:152;;859:12;:10;:12::i;:::-;849:22;;845:92;;;896:6;:30;;;;;906:14;924:2;906:20;896:30;887:39;;845:92;403:540;;;;;;;;;:::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;8645:1196:5:-;9104:24;;9233:6;8768:10;;;;:22;;;;-1:-1:-1;8782:8:5;;;;8768:22;8764:187;;;8844:13;;;8855:1;8844:13;;;;;;;;8806:6;:18;;;;;;;;;;;;;;;;;;;;;;:35;;:51;;;;;;;;;;;;:::i;:::-;-1:-1:-1;8906:13:5;;;8917:1;8906:13;;;;;;;;8871:6;:18;;;;;;;;;;;;;;;;;;;;;;:32;;:48;;;;;;;;;;;;:::i;8764:187::-;8976:22;;8969:29;;;;;8961:38;;;;;;9017:11;;;;;;;;9009:20;;;;;;9047:9;;;:14;9039:23;;;;;;9080:7;;;:12;9072:21;;;;;;9158:1;9142:17;9143:11;;;9142:17;;9131:29;;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;9131:29:5;-1:-1:-1;9104:56:5;-1:-1:-1;9221:1:5;9205:17;9206:11;;;9205:17;;9194:29;;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;9194:29:5;;9170:53;;9242:1;9233:10;;9254:470;9269:3;9261:11;;:5;:11;;;9254:470;;;9323:38;:15;9339:5;9347:1;9339:9;9323:26;;;;;;;;;;;;;;;;;;;;:36;:38::i;:::-;9315:47;;;;;;;;9413:7;:11;:13;;;;;-1:-1:-1;;;9413:13:5;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9413:13:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9413:13:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9413:13:5;9384:26;;:15;;:26;9408:1;9400:9;;9384:26;;;;;;;;;;;;;;;;;:42;9376:51;;;;;;9480:1;9476;:5;9472:95;;;9529:15;9545:5;9529:22;;;;;;;;;;;;;;;;;;;;9509:10;9524:1;9520;:5;9509:17;;;;;;;;;;;;;;;;;;;:42;9501:51;;;;;;9597:15;9613:5;9597:22;;;;;;;;;;;;;;;;;;;;9581:10;9592:1;9581:13;;;;;;;;;;;;;;;;;;:38;9646:26;;:15;;:26;9670:1;9662:9;;9646:26;;;;;;;;;;;;;;;;9633:7;9641:1;9633:10;;;;;;;;;;;;;;;;;;:39;9712:1;9703:10;;;;;9686:3;;9254:470;;;9772:10;9734:6;9741:10;9734:18;;;;;;;;;;;;;;;;;;;;;;:35;;:48;;;;;;;;;;;;:::i;:::-;;9827:7;9792:6;9799:10;9792:18;;;;;;;;;;;;;;;;;;;;;;:32;;:42;;;;;;;;;;;;:::i;:::-;;8645: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;:::-;;;;;;;;;;;;;;;;;;;;;;;:::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", + "sourcePath": "/home/circleci/code/contracts/mocks/crowdsale/W12CrowdsaleStub.sol", "ast": { - "absolutePath": "/home/circleci/code/contracts/W12CrowdsaleStub.sol", + "absolutePath": "/home/circleci/code/contracts/mocks/crowdsale/W12CrowdsaleStub.sol", "exportedSymbols": { "W12CrowdsaleStub": [ - 1996 + 6261 ] }, - "id": 1997, + "id": 6262, "nodeType": "SourceUnit", "nodes": [ { - "id": 1933, + "id": 6180, "literals": [ "solidity", "^", @@ -753,16 +872,27 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:3" + "src": "0:24:18" + }, + { + "absolutePath": "/home/circleci/code/contracts/rates/IRates.sol", + "file": "../../rates/IRates.sol", + "id": 6181, + "nodeType": "ImportDirective", + "scope": 6262, + "sourceUnit": 7016, + "src": "26:32:18", + "symbolAliases": [], + "unitAlias": "" }, { - "absolutePath": "/home/circleci/code/contracts/W12Crowdsale.sol", - "file": "./W12Crowdsale.sol", - "id": 1934, + "absolutePath": "/home/circleci/code/contracts/crowdsale/W12Crowdsale.sol", + "file": "../../crowdsale/W12Crowdsale.sol", + "id": 6182, "nodeType": "ImportDirective", - "scope": 1997, - "sourceUnit": 1810, - "src": "26:28:3", + "scope": 6262, + "sourceUnit": 3169, + "src": "59:42:18", "symbolAliases": [], "unitAlias": "" }, @@ -772,52 +902,52 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1935, + "id": 6183, "name": "W12Crowdsale", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1809, - "src": "86:12:3", + "referencedDeclaration": 3168, + "src": "132:12:18", "typeDescriptions": { - "typeIdentifier": "t_contract$_W12Crowdsale_$1809", + "typeIdentifier": "t_contract$_W12Crowdsale_$3168", "typeString": "contract W12Crowdsale" } }, - "id": 1936, + "id": 6184, "nodeType": "InheritanceSpecifier", - "src": "86:12:3" + "src": "132:12:18" } ], "contractDependencies": [ - 1809, - 4426, - 6509, - 6690, - 6940 + 1204, + 3168, + 9070, + 9331, + 9688 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 1996, + "id": 6261, "linearizedBaseContracts": [ - 1996, - 1809, - 6690, - 6940, - 4426, - 6509 + 6261, + 3168, + 9331, + 9688, + 1204, + 9070 ], "name": "W12CrowdsaleStub", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 1968, + "id": 6219, "nodeType": "Block", - "src": "623:2:3", + "src": "712:2:18", "statements": [] }, "documentation": null, - "id": 1969, + "id": 6220, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -826,12 +956,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1957, + "id": 6207, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1938, - "src": "396:7:3", + "referencedDeclaration": 6186, + "src": "465:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -839,12 +969,12 @@ }, { "argumentTypes": null, - "id": 1958, + "id": 6208, "name": "_originToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1940, - "src": "417:12:3", + "referencedDeclaration": 6188, + "src": "486:12:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -852,12 +982,12 @@ }, { "argumentTypes": null, - "id": 1959, + "id": 6209, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1942, - "src": "444:6:3", + "referencedDeclaration": 6190, + "src": "513:6:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -865,12 +995,12 @@ }, { "argumentTypes": null, - "id": 1960, + "id": 6210, "name": "_price", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1944, - "src": "465:6:3", + "referencedDeclaration": 6192, + "src": "534:6:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -878,12 +1008,12 @@ }, { "argumentTypes": null, - "id": 1961, + "id": 6211, "name": "_serviceWallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1946, - "src": "486:14:3", + "referencedDeclaration": 6194, + "src": "555:14:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -891,12 +1021,12 @@ }, { "argumentTypes": null, - "id": 1962, + "id": 6212, "name": "_swap", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1948, - "src": "515:5:3", + "referencedDeclaration": 6196, + "src": "584:5:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -904,12 +1034,12 @@ }, { "argumentTypes": null, - "id": 1963, + "id": 6213, "name": "_serviceFee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1950, - "src": "535:11:3", + "referencedDeclaration": 6198, + "src": "604:11:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -917,12 +1047,12 @@ }, { "argumentTypes": null, - "id": 1964, + "id": 6214, "name": "_WTokenSaleFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1952, - "src": "560:21:3", + "referencedDeclaration": 6200, + "src": "629:21:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -930,49 +1060,62 @@ }, { "argumentTypes": null, - "id": 1965, + "id": 6215, "name": "_fund", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1954, - "src": "596:5:3", + "referencedDeclaration": 6202, + "src": "665:5:18", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", + "typeIdentifier": "t_contract$_IW12Fund_$1241", "typeString": "contract IW12Fund" } + }, + { + "argumentTypes": null, + "id": 6216, + "name": "_rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6204, + "src": "684:6:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } } ], - "id": 1966, + "id": 6217, "modifierName": { "argumentTypes": null, - "id": 1956, + "id": 6206, "name": "W12Crowdsale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1809, - "src": "370:12:3", + "referencedDeclaration": 3168, + "src": "439:12:18", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_W12Crowdsale_$1809_$", + "typeIdentifier": "t_type$_t_contract$_W12Crowdsale_$3168_$", "typeString": "type(contract W12Crowdsale)" } }, "nodeType": "ModifierInvocation", - "src": "370:241:3" + "src": "439:261:18" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 1955, + "id": 6205, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1938, + "id": 6186, "name": "version", "nodeType": "VariableDeclaration", - "scope": 1969, - "src": "127:12:3", + "scope": 6220, + "src": "173:12:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -980,10 +1123,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1937, + "id": 6185, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "127:4:3", + "src": "173:4:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -994,11 +1137,11 @@ }, { "constant": false, - "id": 1940, + "id": 6188, "name": "_originToken", "nodeType": "VariableDeclaration", - "scope": 1969, - "src": "149:20:3", + "scope": 6220, + "src": "195:20:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1006,10 +1149,10 @@ "typeString": "address" }, "typeName": { - "id": 1939, + "id": 6187, "name": "address", "nodeType": "ElementaryTypeName", - "src": "149:7:3", + "src": "195:7:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1020,11 +1163,11 @@ }, { "constant": false, - "id": 1942, + "id": 6190, "name": "_token", "nodeType": "VariableDeclaration", - "scope": 1969, - "src": "179:14:3", + "scope": 6220, + "src": "225:14:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1032,10 +1175,10 @@ "typeString": "address" }, "typeName": { - "id": 1941, + "id": 6189, "name": "address", "nodeType": "ElementaryTypeName", - "src": "179:7:3", + "src": "225:7:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1046,11 +1189,11 @@ }, { "constant": false, - "id": 1944, + "id": 6192, "name": "_price", "nodeType": "VariableDeclaration", - "scope": 1969, - "src": "203:11:3", + "scope": 6220, + "src": "249:11:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1058,10 +1201,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1943, + "id": 6191, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "203:4:3", + "src": "249:4:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1072,11 +1215,11 @@ }, { "constant": false, - "id": 1946, + "id": 6194, "name": "_serviceWallet", "nodeType": "VariableDeclaration", - "scope": 1969, - "src": "224:22:3", + "scope": 6220, + "src": "270:22:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1084,10 +1227,10 @@ "typeString": "address" }, "typeName": { - "id": 1945, + "id": 6193, "name": "address", "nodeType": "ElementaryTypeName", - "src": "224:7:3", + "src": "270:7:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1098,11 +1241,11 @@ }, { "constant": false, - "id": 1948, + "id": 6196, "name": "_swap", "nodeType": "VariableDeclaration", - "scope": 1969, - "src": "256:13:3", + "scope": 6220, + "src": "302:13:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1110,10 +1253,10 @@ "typeString": "address" }, "typeName": { - "id": 1947, + "id": 6195, "name": "address", "nodeType": "ElementaryTypeName", - "src": "256:7:3", + "src": "302:7:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1124,11 +1267,11 @@ }, { "constant": false, - "id": 1950, + "id": 6198, "name": "_serviceFee", "nodeType": "VariableDeclaration", - "scope": 1969, - "src": "279:16:3", + "scope": 6220, + "src": "325:16:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1136,10 +1279,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1949, + "id": 6197, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "279:4:3", + "src": "325:4:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1150,11 +1293,11 @@ }, { "constant": false, - "id": 1952, + "id": 6200, "name": "_WTokenSaleFeePercent", "nodeType": "VariableDeclaration", - "scope": 1969, - "src": "305:26:3", + "scope": 6220, + "src": "351:26:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1162,10 +1305,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1951, + "id": 6199, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "305:4:3", + "src": "351:4:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1176,53 +1319,81 @@ }, { "constant": false, - "id": 1954, + "id": 6202, "name": "_fund", "nodeType": "VariableDeclaration", - "scope": 1969, - "src": "341:14:3", + "scope": 6220, + "src": "387:14:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", + "typeIdentifier": "t_contract$_IW12Fund_$1241", "typeString": "contract IW12Fund" }, "typeName": { "contractScope": null, - "id": 1953, + "id": 6201, "name": "IW12Fund", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4484, - "src": "341:8:3", + "referencedDeclaration": 1241, + "src": "387:8:18", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", + "typeIdentifier": "t_contract$_IW12Fund_$1241", "typeString": "contract IW12Fund" } }, "value": null, "visibility": "internal" + }, + { + "constant": false, + "id": 6204, + "name": "_rates", + "nodeType": "VariableDeclaration", + "scope": 6220, + "src": "411:13:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + }, + "typeName": { + "contractScope": null, + "id": 6203, + "name": "IRates", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7015, + "src": "411:6:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "value": null, + "visibility": "internal" } ], - "src": "117:244:3" + "src": "163:267:18" }, "payable": false, "returnParameters": { - "id": 1967, + "id": 6218, "nodeType": "ParameterList", "parameters": [], - "src": "623:0:3" + "src": "712:0:18" }, - "scope": 1996, - "src": "105:520:3", + "scope": 6261, + "src": "151:563:18", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1984, + "id": 6235, "nodeType": "Block", - "src": "700:50:3", + "src": "789:50:18", "statements": [ { "expression": { @@ -1230,12 +1401,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1980, + "id": 6231, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1971, - "src": "732:2:3", + "referencedDeclaration": 6222, + "src": "821:2:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1243,12 +1414,12 @@ }, { "argumentTypes": null, - "id": 1981, + "id": 6232, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1973, - "src": "736:6:3", + "referencedDeclaration": 6224, + "src": "825:6:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1268,32 +1439,32 @@ ], "expression": { "argumentTypes": null, - "id": 1978, + "id": 6229, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 123, - "src": "717:5:3", + "referencedDeclaration": 1279, + "src": "806:5:18", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" } }, - "id": 1979, + "id": 6230, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 5219, - "src": "717:14:3", + "referencedDeclaration": 9788, + "src": "806:14:18", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 1982, + "id": 6233, "isConstant": false, "isLValue": false, "isPure": false, @@ -1301,21 +1472,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "717:26:3", + "src": "806:26:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 1977, - "id": 1983, + "functionReturnParameters": 6228, + "id": 6234, "nodeType": "Return", - "src": "710:33:3" + "src": "799:33:18" } ] }, "documentation": null, - "id": 1985, + "id": 6236, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1323,16 +1494,16 @@ "name": "_outTokens", "nodeType": "FunctionDefinition", "parameters": { - "id": 1974, + "id": 6225, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1971, + "id": 6222, "name": "to", "nodeType": "VariableDeclaration", - "scope": 1985, - "src": "651:10:3", + "scope": 6236, + "src": "740:10:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1340,10 +1511,10 @@ "typeString": "address" }, "typeName": { - "id": 1970, + "id": 6221, "name": "address", "nodeType": "ElementaryTypeName", - "src": "651:7:3", + "src": "740:7:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1354,11 +1525,11 @@ }, { "constant": false, - "id": 1973, + "id": 6224, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 1985, - "src": "663:11:3", + "scope": 6236, + "src": "752:11:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1366,10 +1537,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1972, + "id": 6223, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "663:4:3", + "src": "752:4:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1379,20 +1550,20 @@ "visibility": "internal" } ], - "src": "650:25:3" + "src": "739:25:18" }, "payable": false, "returnParameters": { - "id": 1977, + "id": 6228, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1976, + "id": 6227, "name": "", "nodeType": "VariableDeclaration", - "scope": 1985, - "src": "694:4:3", + "scope": 6236, + "src": "783:4:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1400,10 +1571,10 @@ "typeString": "bool" }, "typeName": { - "id": 1975, + "id": 6226, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "694:4:3", + "src": "783:4:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1413,36 +1584,223 @@ "visibility": "internal" } ], - "src": "693:6:3" + "src": "782:6:18" + }, + "scope": 6261, + "src": "720:119:18", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 6249, + "nodeType": "Block", + "src": "885:58:18", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6244, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10129, + "src": "922:4:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_W12CrowdsaleStub_$6261", + "typeString": "contract W12CrowdsaleStub" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_W12CrowdsaleStub_$6261", + "typeString": "contract W12CrowdsaleStub" + } + ], + "id": 6243, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "914:7:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 6245, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "914:13:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 6246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "914:21:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6241, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6238, + "src": "902:2:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 6242, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "902:11:18", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 6247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "902:34:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "functionReturnParameters": 6240, + "id": 6248, + "nodeType": "Return", + "src": "895:41:18" + } + ] + }, + "documentation": null, + "id": 6250, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "_outEther", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6239, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6238, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 6250, + "src": "864:10:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6237, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "864:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "863:12:18" + }, + "payable": false, + "returnParameters": { + "id": 6240, + "nodeType": "ParameterList", + "parameters": [], + "src": "885:0:18" }, - "scope": 1996, - "src": "631:119:3", + "scope": 6261, + "src": "845:98:18", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" }, { "body": { - "id": 1994, + "id": 6259, "nodeType": "Block", - "src": "812:61:3", + "src": "1005:61:18", "statements": [ { "expression": { "argumentTypes": null, - "id": 1992, + "id": 6257, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1990, + "id": 6255, "name": "WTokenSaleFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 131, - "src": "822:20:3", + "referencedDeclaration": 1291, + "src": "1015:20:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1452,31 +1810,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1991, + "id": 6256, "name": "_WTokenSaleFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1987, - "src": "845:21:3", + "referencedDeclaration": 6252, + "src": "1038:21:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "822:44:3", + "src": "1015:44:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1993, + "id": 6258, "nodeType": "ExpressionStatement", - "src": "822:44:3" + "src": "1015:44:18" } ] }, "documentation": null, - "id": 1995, + "id": 6260, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1484,16 +1842,16 @@ "name": "_setState", "nodeType": "FunctionDefinition", "parameters": { - "id": 1988, + "id": 6253, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1987, + "id": 6252, "name": "_WTokenSaleFeePercent", "nodeType": "VariableDeclaration", - "scope": 1995, - "src": "775:26:3", + "scope": 6260, + "src": "968:26:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1501,10 +1859,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1986, + "id": 6251, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "775:4:3", + "src": "968:4:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1514,40 +1872,40 @@ "visibility": "internal" } ], - "src": "774:28:3" + "src": "967:28:18" }, "payable": false, "returnParameters": { - "id": 1989, + "id": 6254, "nodeType": "ParameterList", "parameters": [], - "src": "812:0:3" + "src": "1005:0:18" }, - "scope": 1996, - "src": "756:117:3", + "scope": 6261, + "src": "949:117:18", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" } ], - "scope": 1997, - "src": "57:818:3" + "scope": 6262, + "src": "103:965:18" } ], - "src": "0:876:3" + "src": "0:1069:18" }, "legacyAST": { - "absolutePath": "/home/circleci/code/contracts/W12CrowdsaleStub.sol", + "absolutePath": "/home/circleci/code/contracts/mocks/crowdsale/W12CrowdsaleStub.sol", "exportedSymbols": { "W12CrowdsaleStub": [ - 1996 + 6261 ] }, - "id": 1997, + "id": 6262, "nodeType": "SourceUnit", "nodes": [ { - "id": 1933, + "id": 6180, "literals": [ "solidity", "^", @@ -1555,16 +1913,27 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:3" + "src": "0:24:18" }, { - "absolutePath": "/home/circleci/code/contracts/W12Crowdsale.sol", - "file": "./W12Crowdsale.sol", - "id": 1934, + "absolutePath": "/home/circleci/code/contracts/rates/IRates.sol", + "file": "../../rates/IRates.sol", + "id": 6181, "nodeType": "ImportDirective", - "scope": 1997, - "sourceUnit": 1810, - "src": "26:28:3", + "scope": 6262, + "sourceUnit": 7016, + "src": "26:32:18", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/crowdsale/W12Crowdsale.sol", + "file": "../../crowdsale/W12Crowdsale.sol", + "id": 6182, + "nodeType": "ImportDirective", + "scope": 6262, + "sourceUnit": 3169, + "src": "59:42:18", "symbolAliases": [], "unitAlias": "" }, @@ -1574,52 +1943,52 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1935, + "id": 6183, "name": "W12Crowdsale", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1809, - "src": "86:12:3", + "referencedDeclaration": 3168, + "src": "132:12:18", "typeDescriptions": { - "typeIdentifier": "t_contract$_W12Crowdsale_$1809", + "typeIdentifier": "t_contract$_W12Crowdsale_$3168", "typeString": "contract W12Crowdsale" } }, - "id": 1936, + "id": 6184, "nodeType": "InheritanceSpecifier", - "src": "86:12:3" + "src": "132:12:18" } ], "contractDependencies": [ - 1809, - 4426, - 6509, - 6690, - 6940 + 1204, + 3168, + 9070, + 9331, + 9688 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 1996, + "id": 6261, "linearizedBaseContracts": [ - 1996, - 1809, - 6690, - 6940, - 4426, - 6509 + 6261, + 3168, + 9331, + 9688, + 1204, + 9070 ], "name": "W12CrowdsaleStub", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 1968, + "id": 6219, "nodeType": "Block", - "src": "623:2:3", + "src": "712:2:18", "statements": [] }, "documentation": null, - "id": 1969, + "id": 6220, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -1628,12 +1997,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1957, + "id": 6207, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1938, - "src": "396:7:3", + "referencedDeclaration": 6186, + "src": "465:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1641,12 +2010,12 @@ }, { "argumentTypes": null, - "id": 1958, + "id": 6208, "name": "_originToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1940, - "src": "417:12:3", + "referencedDeclaration": 6188, + "src": "486:12:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1654,12 +2023,12 @@ }, { "argumentTypes": null, - "id": 1959, + "id": 6209, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1942, - "src": "444:6:3", + "referencedDeclaration": 6190, + "src": "513:6:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1667,12 +2036,12 @@ }, { "argumentTypes": null, - "id": 1960, + "id": 6210, "name": "_price", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1944, - "src": "465:6:3", + "referencedDeclaration": 6192, + "src": "534:6:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1680,12 +2049,12 @@ }, { "argumentTypes": null, - "id": 1961, + "id": 6211, "name": "_serviceWallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1946, - "src": "486:14:3", + "referencedDeclaration": 6194, + "src": "555:14:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1693,12 +2062,12 @@ }, { "argumentTypes": null, - "id": 1962, + "id": 6212, "name": "_swap", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1948, - "src": "515:5:3", + "referencedDeclaration": 6196, + "src": "584:5:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1706,12 +2075,12 @@ }, { "argumentTypes": null, - "id": 1963, + "id": 6213, "name": "_serviceFee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1950, - "src": "535:11:3", + "referencedDeclaration": 6198, + "src": "604:11:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1719,12 +2088,12 @@ }, { "argumentTypes": null, - "id": 1964, + "id": 6214, "name": "_WTokenSaleFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1952, - "src": "560:21:3", + "referencedDeclaration": 6200, + "src": "629:21:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1732,49 +2101,62 @@ }, { "argumentTypes": null, - "id": 1965, + "id": 6215, "name": "_fund", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1954, - "src": "596:5:3", + "referencedDeclaration": 6202, + "src": "665:5:18", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", + "typeIdentifier": "t_contract$_IW12Fund_$1241", "typeString": "contract IW12Fund" } + }, + { + "argumentTypes": null, + "id": 6216, + "name": "_rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6204, + "src": "684:6:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } } ], - "id": 1966, + "id": 6217, "modifierName": { "argumentTypes": null, - "id": 1956, + "id": 6206, "name": "W12Crowdsale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1809, - "src": "370:12:3", + "referencedDeclaration": 3168, + "src": "439:12:18", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_W12Crowdsale_$1809_$", + "typeIdentifier": "t_type$_t_contract$_W12Crowdsale_$3168_$", "typeString": "type(contract W12Crowdsale)" } }, "nodeType": "ModifierInvocation", - "src": "370:241:3" + "src": "439:261:18" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 1955, + "id": 6205, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1938, + "id": 6186, "name": "version", "nodeType": "VariableDeclaration", - "scope": 1969, - "src": "127:12:3", + "scope": 6220, + "src": "173:12:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1782,10 +2164,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1937, + "id": 6185, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "127:4:3", + "src": "173:4:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1796,11 +2178,11 @@ }, { "constant": false, - "id": 1940, + "id": 6188, "name": "_originToken", "nodeType": "VariableDeclaration", - "scope": 1969, - "src": "149:20:3", + "scope": 6220, + "src": "195:20:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1808,10 +2190,10 @@ "typeString": "address" }, "typeName": { - "id": 1939, + "id": 6187, "name": "address", "nodeType": "ElementaryTypeName", - "src": "149:7:3", + "src": "195:7:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1822,11 +2204,11 @@ }, { "constant": false, - "id": 1942, + "id": 6190, "name": "_token", "nodeType": "VariableDeclaration", - "scope": 1969, - "src": "179:14:3", + "scope": 6220, + "src": "225:14:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1834,10 +2216,10 @@ "typeString": "address" }, "typeName": { - "id": 1941, + "id": 6189, "name": "address", "nodeType": "ElementaryTypeName", - "src": "179:7:3", + "src": "225:7:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1848,11 +2230,11 @@ }, { "constant": false, - "id": 1944, + "id": 6192, "name": "_price", "nodeType": "VariableDeclaration", - "scope": 1969, - "src": "203:11:3", + "scope": 6220, + "src": "249:11:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1860,10 +2242,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1943, + "id": 6191, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "203:4:3", + "src": "249:4:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1874,11 +2256,11 @@ }, { "constant": false, - "id": 1946, + "id": 6194, "name": "_serviceWallet", "nodeType": "VariableDeclaration", - "scope": 1969, - "src": "224:22:3", + "scope": 6220, + "src": "270:22:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1886,10 +2268,10 @@ "typeString": "address" }, "typeName": { - "id": 1945, + "id": 6193, "name": "address", "nodeType": "ElementaryTypeName", - "src": "224:7:3", + "src": "270:7:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1900,11 +2282,11 @@ }, { "constant": false, - "id": 1948, + "id": 6196, "name": "_swap", "nodeType": "VariableDeclaration", - "scope": 1969, - "src": "256:13:3", + "scope": 6220, + "src": "302:13:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1912,10 +2294,10 @@ "typeString": "address" }, "typeName": { - "id": 1947, + "id": 6195, "name": "address", "nodeType": "ElementaryTypeName", - "src": "256:7:3", + "src": "302:7:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1926,11 +2308,11 @@ }, { "constant": false, - "id": 1950, + "id": 6198, "name": "_serviceFee", "nodeType": "VariableDeclaration", - "scope": 1969, - "src": "279:16:3", + "scope": 6220, + "src": "325:16:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1938,10 +2320,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1949, + "id": 6197, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "279:4:3", + "src": "325:4:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1952,11 +2334,11 @@ }, { "constant": false, - "id": 1952, + "id": 6200, "name": "_WTokenSaleFeePercent", "nodeType": "VariableDeclaration", - "scope": 1969, - "src": "305:26:3", + "scope": 6220, + "src": "351:26:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1964,10 +2346,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1951, + "id": 6199, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "305:4:3", + "src": "351:4:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1978,53 +2360,81 @@ }, { "constant": false, - "id": 1954, + "id": 6202, "name": "_fund", "nodeType": "VariableDeclaration", - "scope": 1969, - "src": "341:14:3", + "scope": 6220, + "src": "387:14:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", + "typeIdentifier": "t_contract$_IW12Fund_$1241", "typeString": "contract IW12Fund" }, "typeName": { "contractScope": null, - "id": 1953, + "id": 6201, "name": "IW12Fund", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4484, - "src": "341:8:3", + "referencedDeclaration": 1241, + "src": "387:8:18", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", + "typeIdentifier": "t_contract$_IW12Fund_$1241", "typeString": "contract IW12Fund" } }, "value": null, "visibility": "internal" + }, + { + "constant": false, + "id": 6204, + "name": "_rates", + "nodeType": "VariableDeclaration", + "scope": 6220, + "src": "411:13:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + }, + "typeName": { + "contractScope": null, + "id": 6203, + "name": "IRates", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7015, + "src": "411:6:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "value": null, + "visibility": "internal" } ], - "src": "117:244:3" + "src": "163:267:18" }, "payable": false, "returnParameters": { - "id": 1967, + "id": 6218, "nodeType": "ParameterList", "parameters": [], - "src": "623:0:3" + "src": "712:0:18" }, - "scope": 1996, - "src": "105:520:3", + "scope": 6261, + "src": "151:563:18", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1984, + "id": 6235, "nodeType": "Block", - "src": "700:50:3", + "src": "789:50:18", "statements": [ { "expression": { @@ -2032,12 +2442,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1980, + "id": 6231, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1971, - "src": "732:2:3", + "referencedDeclaration": 6222, + "src": "821:2:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2045,12 +2455,12 @@ }, { "argumentTypes": null, - "id": 1981, + "id": 6232, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1973, - "src": "736:6:3", + "referencedDeclaration": 6224, + "src": "825:6:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2070,32 +2480,32 @@ ], "expression": { "argumentTypes": null, - "id": 1978, + "id": 6229, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 123, - "src": "717:5:3", + "referencedDeclaration": 1279, + "src": "806:5:18", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" } }, - "id": 1979, + "id": 6230, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 5219, - "src": "717:14:3", + "referencedDeclaration": 9788, + "src": "806:14:18", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 1982, + "id": 6233, "isConstant": false, "isLValue": false, "isPure": false, @@ -2103,21 +2513,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "717:26:3", + "src": "806:26:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 1977, - "id": 1983, + "functionReturnParameters": 6228, + "id": 6234, "nodeType": "Return", - "src": "710:33:3" + "src": "799:33:18" } ] }, "documentation": null, - "id": 1985, + "id": 6236, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -2125,16 +2535,16 @@ "name": "_outTokens", "nodeType": "FunctionDefinition", "parameters": { - "id": 1974, + "id": 6225, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1971, + "id": 6222, "name": "to", "nodeType": "VariableDeclaration", - "scope": 1985, - "src": "651:10:3", + "scope": 6236, + "src": "740:10:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2142,10 +2552,10 @@ "typeString": "address" }, "typeName": { - "id": 1970, + "id": 6221, "name": "address", "nodeType": "ElementaryTypeName", - "src": "651:7:3", + "src": "740:7:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2156,11 +2566,11 @@ }, { "constant": false, - "id": 1973, + "id": 6224, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 1985, - "src": "663:11:3", + "scope": 6236, + "src": "752:11:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2168,10 +2578,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1972, + "id": 6223, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "663:4:3", + "src": "752:4:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2181,20 +2591,20 @@ "visibility": "internal" } ], - "src": "650:25:3" + "src": "739:25:18" }, "payable": false, "returnParameters": { - "id": 1977, + "id": 6228, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1976, + "id": 6227, "name": "", "nodeType": "VariableDeclaration", - "scope": 1985, - "src": "694:4:3", + "scope": 6236, + "src": "783:4:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2202,10 +2612,10 @@ "typeString": "bool" }, "typeName": { - "id": 1975, + "id": 6226, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "694:4:3", + "src": "783:4:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2215,36 +2625,223 @@ "visibility": "internal" } ], - "src": "693:6:3" + "src": "782:6:18" + }, + "scope": 6261, + "src": "720:119:18", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 6249, + "nodeType": "Block", + "src": "885:58:18", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6244, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10129, + "src": "922:4:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_W12CrowdsaleStub_$6261", + "typeString": "contract W12CrowdsaleStub" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_W12CrowdsaleStub_$6261", + "typeString": "contract W12CrowdsaleStub" + } + ], + "id": 6243, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "914:7:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 6245, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "914:13:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 6246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "914:21:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6241, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6238, + "src": "902:2:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 6242, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "902:11:18", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 6247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "902:34:18", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "functionReturnParameters": 6240, + "id": 6248, + "nodeType": "Return", + "src": "895:41:18" + } + ] + }, + "documentation": null, + "id": 6250, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "_outEther", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6239, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6238, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 6250, + "src": "864:10:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6237, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "864:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "863:12:18" + }, + "payable": false, + "returnParameters": { + "id": 6240, + "nodeType": "ParameterList", + "parameters": [], + "src": "885:0:18" }, - "scope": 1996, - "src": "631:119:3", + "scope": 6261, + "src": "845:98:18", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" }, { "body": { - "id": 1994, + "id": 6259, "nodeType": "Block", - "src": "812:61:3", + "src": "1005:61:18", "statements": [ { "expression": { "argumentTypes": null, - "id": 1992, + "id": 6257, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1990, + "id": 6255, "name": "WTokenSaleFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 131, - "src": "822:20:3", + "referencedDeclaration": 1291, + "src": "1015:20:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2254,31 +2851,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1991, + "id": 6256, "name": "_WTokenSaleFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1987, - "src": "845:21:3", + "referencedDeclaration": 6252, + "src": "1038:21:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "822:44:3", + "src": "1015:44:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1993, + "id": 6258, "nodeType": "ExpressionStatement", - "src": "822:44:3" + "src": "1015:44:18" } ] }, "documentation": null, - "id": 1995, + "id": 6260, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -2286,16 +2883,16 @@ "name": "_setState", "nodeType": "FunctionDefinition", "parameters": { - "id": 1988, + "id": 6253, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1987, + "id": 6252, "name": "_WTokenSaleFeePercent", "nodeType": "VariableDeclaration", - "scope": 1995, - "src": "775:26:3", + "scope": 6260, + "src": "968:26:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2303,10 +2900,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1986, + "id": 6251, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "775:4:3", + "src": "968:4:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2316,27 +2913,27 @@ "visibility": "internal" } ], - "src": "774:28:3" + "src": "967:28:18" }, "payable": false, "returnParameters": { - "id": 1989, + "id": 6254, "nodeType": "ParameterList", "parameters": [], - "src": "812:0:3" + "src": "1005:0:18" }, - "scope": 1996, - "src": "756:117:3", + "scope": 6261, + "src": "949:117:18", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" } ], - "scope": 1997, - "src": "57:818:3" + "scope": 6262, + "src": "103:965:18" } ], - "src": "0:876:3" + "src": "0:1069:18" }, "compiler": { "name": "solc", @@ -2346,10 +2943,11 @@ "4": { "events": {}, "links": { - "Percent": "0xd98ecddead560f1327823ce8c7580729845ccb7f" + "Percent": "0xd6429c58c604e696d68544add46d2c7bcdfdcae4", + "Utils": "0xff9744d4a6369c1c737a10ab912fd1b7d22018f9" } } }, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-02T12:01:53.231Z" + "updatedAt": "2018-10-22T07:59:52.059Z" } \ No newline at end of file diff --git a/build/contracts/W12Fund.json b/build/contracts/W12Fund.json index 3a52085d..52307a7e 100644 --- a/build/contracts/W12Fund.json +++ b/build/contracts/W12Fund.json @@ -51,11 +51,11 @@ { "constant": true, "inputs": [], - "name": "tokenDecimals", + "name": "rates", "outputs": [ { "name": "", - "type": "uint256" + "type": "address" } ], "payable": false, @@ -129,27 +129,14 @@ }, { "constant": true, - "inputs": [ + "inputs": [], + "name": "crowdsale", + "outputs": [ { "name": "", "type": "address" } ], - "name": "buyers", - "outputs": [ - { - "name": "totalBought", - "type": "uint256" - }, - { - "name": "averagePrice", - "type": "uint256" - }, - { - "name": "totalFunded", - "type": "uint256" - } - ], "payable": false, "stateMutability": "view", "type": "function" @@ -157,11 +144,11 @@ { "constant": true, "inputs": [], - "name": "crowdsale", + "name": "trancheFeePercent", "outputs": [ { "name": "", - "type": "address" + "type": "uint256" } ], "payable": false, @@ -171,7 +158,7 @@ { "constant": true, "inputs": [], - "name": "trancheFeePercent", + "name": "totalTokenBought", "outputs": [ { "name": "", @@ -183,23 +170,23 @@ "type": "function" }, { - "constant": true, - "inputs": [], - "name": "totalFunded", - "outputs": [ + "constant": false, + "inputs": [ { - "name": "", - "type": "uint256" + "name": "_newOwner", + "type": "address" } ], + "name": "transferOwnership", + "outputs": [], "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], - "name": "totalRefunded", + "name": "totalTokenRefunded", "outputs": [ { "name": "", @@ -211,46 +198,80 @@ "type": "function" }, { - "constant": false, "inputs": [ { - "name": "_newOwner", + "name": "version", + "type": "uint256" + }, + { + "name": "_trancheFeePercent", + "type": "uint256" + }, + { + "name": "_rates", "type": "address" } ], - "name": "transferOwnership", - "outputs": [], "payable": false, "stateMutability": "nonpayable", - "type": "function" + "type": "constructor" }, { + "anonymous": false, "inputs": [ { - "name": "version", + "indexed": true, + "name": "investor", + "type": "address" + }, + { + "indexed": false, + "name": "tokenAmount", "type": "uint256" }, { - "name": "_trancheFeePercent", + "indexed": false, + "name": "symbol", + "type": "bytes32" + }, + { + "indexed": false, + "name": "cost", "type": "uint256" } ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" + "name": "FundsReceived", + "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, - "name": "buyer", + "name": "investor", "type": "address" }, { "indexed": false, - "name": "weiAmount", + "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, @@ -258,7 +279,7 @@ "type": "uint256" } ], - "name": "FundsReceived", + "name": "TokenRefunded", "type": "event" }, { @@ -266,21 +287,21 @@ "inputs": [ { "indexed": true, - "name": "buyer", + "name": "receiver", "type": "address" }, { "indexed": false, - "name": "weiAmount", - "type": "uint256" + "name": "symbol", + "type": "bytes32" }, { "indexed": false, - "name": "tokenAmount", + "name": "amount", "type": "uint256" } ], - "name": "FundsRefunded", + "name": "TrancheTransferred", "type": "event" }, { @@ -293,7 +314,7 @@ }, { "indexed": false, - "name": "amount", + "name": "percent", "type": "uint256" } ], @@ -375,12 +396,24 @@ "constant": false, "inputs": [ { - "name": "buyer", + "name": "investor", "type": "address" }, { "name": "tokenAmount", "type": "uint256" + }, + { + "name": "symbol", + "type": "bytes32" + }, + { + "name": "cost", + "type": "uint256" + }, + { + "name": "costUSD", + "type": "uint256" } ], "name": "recordPurchase", @@ -393,19 +426,38 @@ "constant": true, "inputs": [ { - "name": "buyer", + "name": "_investor", "type": "address" + }, + { + "name": "_symbol", + "type": "bytes32" } ], - "name": "getInvestmentsInfo", + "name": "getInvestorFundedAmount", "outputs": [ { - "name": "totalTokensBought", + "name": "", "type": "uint256" - }, + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ { - "name": "averageTokenPrice", - "type": "uint256" + "name": "_investor", + "type": "address" + } + ], + "name": "getInvestorFundedAssetsSymbols", + "outputs": [ + { + "name": "", + "type": "bytes32[]" } ], "payable": false, @@ -416,14 +468,14 @@ "constant": true, "inputs": [ { - "name": "wtokensToRefund", - "type": "uint256" + "name": "_investor", + "type": "address" } ], - "name": "getRefundAmount", + "name": "getInvestorTokenBoughtAmount", "outputs": [ { - "name": "result", + "name": "", "type": "uint256" } ], @@ -433,11 +485,16 @@ }, { "constant": true, - "inputs": [], - "name": "getTrancheAmount", + "inputs": [ + { + "name": "_symbol", + "type": "bytes32" + } + ], + "name": "getTotalFundedAmount", "outputs": [ { - "name": "result", + "name": "", "type": "uint256" } ], @@ -448,16 +505,27 @@ { "constant": true, "inputs": [], - "name": "getTrancheParameters", + "name": "getTotalFundedAssetsSymbols", "outputs": [ { "name": "", - "type": "uint256" - }, + "type": "bytes32[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ { - "name": "totalTranchePercentBefore", - "type": "uint256" - }, + "name": "_symbol", + "type": "bytes32" + } + ], + "name": "getTotalFundedReleased", + "outputs": [ { "name": "", "type": "uint256" @@ -467,6 +535,20 @@ "stateMutability": "view", "type": "function" }, + { + "constant": true, + "inputs": [], + "name": "getTrancheInvoice", + "outputs": [ + { + "name": "result", + "type": "uint256[3]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, { "constant": false, "inputs": [], @@ -480,7 +562,7 @@ "constant": false, "inputs": [ { - "name": "wtokensToRefund", + "name": "tokenAmount", "type": "uint256" } ], @@ -493,7 +575,7 @@ { "constant": true, "inputs": [], - "name": "refundAllowed", + "name": "tokenRefundAllowed", "outputs": [ { "name": "", @@ -517,26 +599,40 @@ "payable": false, "stateMutability": "view", "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "isWithdrawalWindowActive", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" } ], - "bytecode": "0x608060405260016002553480156200001657600080fd5b5060405160408062002040833981016040528051602090910151600082905560018054600160a060020a03191633179055620000608164010000000062001dfc6200009b82021704565b80156200008557506064620000838264010000000062001e4f620000d882021704565b105b15156200009157600080fd5b600d555062000184565b6000620000b06401000000006200012a810204565b8210158015620000d25750620000ce6401000000006200012f810204565b8211155b92915050565b6000620000ee826401000000006200009b810204565b1515620000fa57600080fd5b620000d2620001116401000000006200014c810204565b8390600a0a64010000000062001d1f6200015182021704565b600090565b60006200014464010000000062000167810204565b600a0a905090565b600290565b600081838115156200015f57fe5b049392505050565b60006200017c6401000000006200014c810204565b600201905090565b611eac80620001946000396000f3006080604052600436106101455763ffffffff60e060020a60003504166304cd5294811461014a5780630babd8641461017457806311fa7da2146101a557806319ae48ed146101df57806323585f96146101f457806323bffccc14610220578063278ecde1146102435780633b97e8561461025b5780633fa911ae14610270578063483a20b21461028557806354fd4d50146102a65780635641f3c3146102bb5780636ebc0af1146102d0578063715018a6146102e55780638119c065146102fa5780638ce2bc2a1461030f5780638da5cb5b14610324578063958799cb1461033957806397a993aa146103505780639c1e03a01461038f5780639e80baac146103a4578063a328665a146103b9578063ac2a2a34146103ce578063acb3c073146103e3578063ad044f4914610404578063d908296214610419578063f2fde38b1461042e575b600080fd5b34801561015657600080fd5b5061016260043561044f565b60408051918252519081900360200190f35b34801561018057600080fd5b50610189610679565b60408051600160a060020a039092168252519081900360200190f35b3480156101b157600080fd5b506101c6600160a060020a0360043516610688565b6040805192835260208301919091528051918290030190f35b3480156101eb57600080fd5b506101626106c5565b34801561020057600080fd5b5061020c6004356106cb565b604080519115158252519081900360200190f35b34801561022c57600080fd5b50610241600160a060020a03600435166106e0565b005b34801561024f57600080fd5b5061024160043561073b565b34801561026757600080fd5b50610162610af5565b34801561027c57600080fd5b5061020c610afb565b34801561029157600080fd5b50610241600160a060020a0360043516610d10565b3480156102b257600080fd5b50610162610e99565b3480156102c757600080fd5b50610189610e9f565b3480156102dc57600080fd5b50610241610eae565b3480156102f157600080fd5b5061024161102f565b34801561030657600080fd5b5061018961109d565b34801561031b57600080fd5b506101626110ac565b34801561033057600080fd5b50610189611130565b610241600160a060020a036004351660243561113f565b34801561035c57600080fd5b50610371600160a060020a036004351661127c565b60408051938452602084019290925282820152519081900360600190f35b34801561039b57600080fd5b5061018961129d565b3480156103b057600080fd5b5061020c6112ac565b3480156103c557600080fd5b5061016261169d565b3480156103da57600080fd5b506103716116a3565b3480156103ef57600080fd5b50610241600160a060020a0360043516611c59565b34801561041057600080fd5b50610162611cb4565b34801561042557600080fd5b50610162611cba565b34801561043a57600080fd5b50610241600160a060020a0360043516611cc0565b60008060008060008061046e6008600754611ce390919063ffffffff16565b6007541061047e57600754610492565b60075461049290600863ffffffff611ce316565b94507f19999999999999999999999999999999999999999999999999999999999999998511156104c157600080fd5b84600a0a6000198115156104d157fe5b0493503392508615806104fa5750600160a060020a038316600090815260086020526040902054155b8061050457503031155b806105a35750600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015291518a9392909216916370a08231916024808201926020929091908290030181600087803b15801561057557600080fd5b505af1158015610589573d6000803e3d6000fd5b505050506040513d602081101561059f57600080fd5b5051105b806105c55750600160a060020a03831660009081526008602052604090205487115b156105cf5761066f565b600a54600160a060020a038416600090815260086020526040902060020154610610913031916106049163ffffffff611cf616565b9063ffffffff611d1f16565b9150838210156106235784600a0a610626565b60015b600160a060020a03841660009081526008602052604090205490915061066c908290610604908a906106609083888663ffffffff611cf616565b9063ffffffff611cf616565b95505b5050505050919050565b600654600160a060020a031681565b600080600160a060020a03831615156106a057600080fd5b5050600160a060020a0316600090815260086020526040902080546001909101549091565b600c5481565b60096020526000908152604090205460ff1681565b600154600160a060020a031633146106f757600080fd5b600160a060020a038116151561070c57600080fd5b6005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080600160025414151561074f57600080fd5b6002805533915061075e610afb565b151561076957600080fd5b6000831161077657600080fd5b600160a060020a03821660009081526008602052604090205483111561079b57600080fd5b600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301529151869392909216916370a08231916024808201926020929091908290030181600087803b15801561080657600080fd5b505af115801561081a573d6000803e3d6000fd5b505050506040513d602081101561083057600080fd5b5051101561083d57600080fd5b600654604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290518592600160a060020a03169163dd62ed3e9160448083019260209291908290030181600087803b1580156108a857600080fd5b505af11580156108bc573d6000803e3d6000fd5b505050506040513d60208110156108d257600080fd5b505110156108df57600080fd5b6108e88361044f565b9050600081116108f757600080fd5b600160a060020a038216600090815260086020526040902054610920908463ffffffff611d3416565b600160a060020a038316600090815260086020526040902090815560075460019091015461098c9161096491600a9190910a9061060490879063ffffffff611cf616565b600160a060020a0384166000908152600860205260409020600201549063ffffffff611d3416565b600160a060020a038316600090815260086020526040902060020155600b546109bb908263ffffffff611ce316565b600b5560065460048054604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a03878116948201949094529183166024830152604482018790525191909216916323b872dd9160648083019260209291908290030181600087803b158015610a3a57600080fd5b505af1158015610a4e573d6000803e3d6000fd5b505050506040513d6020811015610a6457600080fd5b50511515610a7157600080fd5b604051600160a060020a0383169082156108fc029083906000818181858888f19350505050158015610aa7573d6000803e3d6000fd5b5060408051828152602081018590528151600160a060020a038516927ffc48f4f163cfed28aaf3be3f0b162a1338fab214afc9340eafc6cb081c71fadf928290030190a25050600160025550565b60075481565b600354604080517fd6d65f3d00000000000000000000000000000000000000000000000000000000815281516000938493849384938493600160a060020a03169263d6d65f3d926004808201939182900301818787803b158015610b5e57600080fd5b505af1158015610b72573d6000803e3d6000fd5b505050506040513d6040811015610b8857600080fd5b5080516020909101519094509250831515610ba257610d09565b6003546040805160e060020a632442e1cb028152600481018790529051600160a060020a0390921691632442e1cb9160248082019260009290919082900301818387803b158015610bf257600080fd5b505af1158015610c06573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c0811015610c2f57600080fd5b815160208301516040840151606085015160808601805194969395929491939283019291640100000000811115610c6557600080fd5b82016020810184811115610c7857600080fd5b8151640100000000811182820187101715610c9257600080fd5b50509291906020018051640100000000811115610cae57600080fd5b82016020810184811115610cc157600080fd5b8151640100000000811182820187101715610cdb57600080fd5b50509291905050505050935050509150428263ffffffff1611158015610d0657508063ffffffff1642105b94505b5050505090565b600154600160a060020a03163314610d2757600080fd5b600160a060020a0381161515610d3c57600080fd5b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038316908117909155604080517f4090cb640000000000000000000000000000000000000000000000000000000081529051634090cb64916004808201926020929091908290030181600087803b158015610db857600080fd5b505af1158015610dcc573d6000803e3d6000fd5b505050506040513d6020811015610de257600080fd5b50516006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039283161790819055604080517f313ce5670000000000000000000000000000000000000000000000000000000081529051919092169163313ce5679160048083019260209291908290030181600087803b158015610e6457600080fd5b505af1158015610e78573d6000803e3d6000fd5b505050506040513d6020811015610e8e57600080fd5b505160ff1660075550565b60005481565b600554600160a060020a031681565b600154600090819081908190600160a060020a03163314610ece57600080fd5b600254600114610edd57600080fd5b60028055610ee96112ac565b1515610ef457600080fd5b610efc6110ac565b9350610f066116a3565b9350509250600084111515610f1a57600080fd5b6000828152600960205260408120805460ff19166001179055600d541115610f6557600d54610f5090859063ffffffff611d4616565b9050610f62848263ffffffff611d3416565b93505b600c54610f78908463ffffffff611ce316565b600c556000811115610fc057600554604051600160a060020a039091169082156108fc029083906000818181858888f19350505050158015610fbe573d6000803e3d6000fd5b505b604051339085156108fc029086906000818181858888f19350505050158015610fed573d6000803e3d6000fd5b5060408051858152905133917f4a966617f50ccad97beb624d8e13820bf2a745e1640fed943858499286fc9829919081900360200190a2505060016002555050565b600154600160a060020a0316331461104657600080fd5b600154604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26001805473ffffffffffffffffffffffffffffffffffffffff19169055565b600454600160a060020a031681565b60008060008060006110bc6116a3565b50935093508360001480156110cf575082155b806110d957503031155b156110e357610d09565b600b54600a546110f89163ffffffff611d3416565b600c5490925061111e90611112868663ffffffff611ce316565b9063ffffffff611d3416565b9050610d06828263ffffffff611d4616565b600154600160a060020a031681565b600354600160a060020a031633811461115757600080fd5b6000821161116457600080fd5b6000341161117157600080fd5b600160a060020a03831660009081526008602052604090205461119a908363ffffffff611ce316565b600160a060020a0384166000908152600860205260409020908155600201546111c9903463ffffffff611ce316565b600160a060020a038416600090815260086020526040902060028101829055546007546112029261060491600a0a63ffffffff611cf616565b600160a060020a038416600090815260086020526040902060010155600a54611231903463ffffffff611ce316565b600a5560408051348152602081018490528151600160a060020a038616927f363f315f930a17d1266b86a20d6dd34b1cfbc5a9db9f13a65d06a689c3a2af8a928290030190a2505050565b60086020526000908152604090208054600182015460029092015490919083565b600354600160a060020a031681565b600080600080600080600360009054906101000a9004600160a060020a0316600160a060020a031663d6d65f3d6040518163ffffffff1660e060020a0281526004016040805180830381600087803b15801561130757600080fd5b505af115801561131b573d6000803e3d6000fd5b505050506040513d604081101561133157600080fd5b508051602090910151600354604080517f14f66d340000000000000000000000000000000000000000000000000000000081528151949950929750600160a060020a03909116926314f66d349260048082019392918290030181600087803b15801561139c57600080fd5b505af11580156113b0573d6000803e3d6000fd5b505050506040513d60408110156113c657600080fd5b505192508315156113d657611695565b8415156113e65760019550611695565b6003546040805160e060020a632442e1cb028152600481018890529051600160a060020a0390921691632442e1cb9160248082019260009290919082900301818387803b15801561143657600080fd5b505af115801561144a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c081101561147357600080fd5b8151602083015160408401516060850151608086018051949693959294919392830192916401000000008111156114a957600080fd5b820160208101848111156114bc57600080fd5b81516401000000008111828201871017156114d657600080fd5b505092919060200180516401000000008111156114f257600080fd5b8201602081018481111561150557600080fd5b815164010000000081118282018710171561151f57600080fd5b50506003546040805160e060020a632442e1cb028152600481018f905290519a9c50600160a060020a0390911699632442e1cb9950602480830199506000985090965090869003019350849250859150889050803b15801561158057600080fd5b505af1158015611594573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c08110156115bd57600080fd5b8151602083015160408401516060850151608086018051949693959294919392830192916401000000008111156115f357600080fd5b8201602081018481111561160657600080fd5b815164010000000081118282018710171561162057600080fd5b5050929190602001805164010000000081111561163c57600080fd5b8201602081018481111561164f57600080fd5b815164010000000081118282018710171561166957600080fd5b505092919050505050509350505050428263ffffffff1611806116925750428163ffffffff1611155b95505b505050505090565b600d5481565b600080600080600080600080600080600080600360009054906101000a9004600160a060020a0316600160a060020a031663d6d65f3d6040518163ffffffff1660e060020a0281526004016040805180830381600087803b15801561170757600080fd5b505af115801561171b573d6000803e3d6000fd5b505050506040513d604081101561173157600080fd5b508051602090910151600354604080517f14f66d340000000000000000000000000000000000000000000000000000000081528151949d50929b50600160a060020a03909116926314f66d349260048082019392918290030181600087803b15801561179c57600080fd5b505af11580156117b0573d6000803e3d6000fd5b505050506040513d60408110156117c657600080fd5b50516003546040805160e060020a632442e1cb028152600481018490529051929950600160a060020a0390911691632442e1cb9160248082019260009290919082900301818387803b15801561181b57600080fd5b505af115801561182f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c081101561185857600080fd5b81516020830151604084015160608501516080860180519496939592949193928301929164010000000081111561188e57600080fd5b820160208101848111156118a157600080fd5b81516401000000008111828201871017156118bb57600080fd5b505092919060200180516401000000008111156118d757600080fd5b820160208101848111156118ea57600080fd5b815164010000000081118282018710171561190457600080fd5b50509291905050505050985050505087158061192557506119236112ac565b155b1561192f57611c4b565b88158061194257508563ffffffff164210155b61194f5760018903611951565b885b6003546040805160e060020a632442e1cb028152600481018490529051929b50600160a060020a0390911691632442e1cb9160248082019260009290919082900301818387803b1580156119a457600080fd5b505af11580156119b8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c08110156119e157600080fd5b815160208301516040840151606085015160808601805194969395929491939283019291640100000000811115611a1757600080fd5b82016020810184811115611a2a57600080fd5b8151640100000000811182820187101715611a4457600080fd5b50509291906020018051640100000000811115611a6057600080fd5b82016020810184811115611a7357600080fd5b8151640100000000811182820187101715611a8d57600080fd5b50509291905050505050965050955050600960008a815260200190815260200160002060009054906101000a900460ff1692508215611acb57611c4b565b8891505b6000821115611c41576003546040805160e060020a632442e1cb0281526000199094016004850181905290519093600160a060020a0390921691632442e1cb91602480830192600092919082900301818387803b158015611b2f57600080fd5b505af1158015611b43573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c0811015611b6c57600080fd5b815160208301516040840151606085015160808601805194969395929491939283019291640100000000811115611ba257600080fd5b82016020810184811115611bb557600080fd5b8151640100000000811182820187101715611bcf57600080fd5b50509291906020018051640100000000811115611beb57600080fd5b82016020810184811115611bfe57600080fd5b8151640100000000811182820187101715611c1857600080fd5b505092919050505050505050915050611c3a818c611ce390919063ffffffff16565b9a50611acf565b848b8a9b509b509b505b505050505050505050909192565b600154600160a060020a03163314611c7057600080fd5b600160a060020a0381161515611c8557600080fd5b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600a5481565b600b5481565b600154600160a060020a03163314611cd757600080fd5b611ce081611d7e565b50565b81810182811015611cf057fe5b92915050565b6000821515611d0757506000611cf0565b50818102818382811515611d1757fe5b0414611cf057fe5b60008183811515611d2c57fe5b049392505050565b600082821115611d4057fe5b50900390565b6000611d5182611dfc565b1515611d5c57600080fd5b611d77611d67611e21565b610604858563ffffffff611cf616565b9392505050565b600160a060020a0381161515611d9357600080fd5b600154604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000611e06611e33565b8210158015611cf05750611e18611e21565b82111592915050565b6000611e2b611e38565b600a0a905090565b600090565b6000611e42611e4a565b600201905090565b600290565b6000611e5a82611dfc565b1515611e6557600080fd5b611cf0611e70611e4a565b8390600a0a63ffffffff611d1f165600a165627a7a72305820311074774ed09ff1abad7efeeaaaf0d8dbb95454119635ff28c1f2f4c3c2ac7e0029", - "deployedBytecode": "0x6080604052600436106101455763ffffffff60e060020a60003504166304cd5294811461014a5780630babd8641461017457806311fa7da2146101a557806319ae48ed146101df57806323585f96146101f457806323bffccc14610220578063278ecde1146102435780633b97e8561461025b5780633fa911ae14610270578063483a20b21461028557806354fd4d50146102a65780635641f3c3146102bb5780636ebc0af1146102d0578063715018a6146102e55780638119c065146102fa5780638ce2bc2a1461030f5780638da5cb5b14610324578063958799cb1461033957806397a993aa146103505780639c1e03a01461038f5780639e80baac146103a4578063a328665a146103b9578063ac2a2a34146103ce578063acb3c073146103e3578063ad044f4914610404578063d908296214610419578063f2fde38b1461042e575b600080fd5b34801561015657600080fd5b5061016260043561044f565b60408051918252519081900360200190f35b34801561018057600080fd5b50610189610679565b60408051600160a060020a039092168252519081900360200190f35b3480156101b157600080fd5b506101c6600160a060020a0360043516610688565b6040805192835260208301919091528051918290030190f35b3480156101eb57600080fd5b506101626106c5565b34801561020057600080fd5b5061020c6004356106cb565b604080519115158252519081900360200190f35b34801561022c57600080fd5b50610241600160a060020a03600435166106e0565b005b34801561024f57600080fd5b5061024160043561073b565b34801561026757600080fd5b50610162610af5565b34801561027c57600080fd5b5061020c610afb565b34801561029157600080fd5b50610241600160a060020a0360043516610d10565b3480156102b257600080fd5b50610162610e99565b3480156102c757600080fd5b50610189610e9f565b3480156102dc57600080fd5b50610241610eae565b3480156102f157600080fd5b5061024161102f565b34801561030657600080fd5b5061018961109d565b34801561031b57600080fd5b506101626110ac565b34801561033057600080fd5b50610189611130565b610241600160a060020a036004351660243561113f565b34801561035c57600080fd5b50610371600160a060020a036004351661127c565b60408051938452602084019290925282820152519081900360600190f35b34801561039b57600080fd5b5061018961129d565b3480156103b057600080fd5b5061020c6112ac565b3480156103c557600080fd5b5061016261169d565b3480156103da57600080fd5b506103716116a3565b3480156103ef57600080fd5b50610241600160a060020a0360043516611c59565b34801561041057600080fd5b50610162611cb4565b34801561042557600080fd5b50610162611cba565b34801561043a57600080fd5b50610241600160a060020a0360043516611cc0565b60008060008060008061046e6008600754611ce390919063ffffffff16565b6007541061047e57600754610492565b60075461049290600863ffffffff611ce316565b94507f19999999999999999999999999999999999999999999999999999999999999998511156104c157600080fd5b84600a0a6000198115156104d157fe5b0493503392508615806104fa5750600160a060020a038316600090815260086020526040902054155b8061050457503031155b806105a35750600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015291518a9392909216916370a08231916024808201926020929091908290030181600087803b15801561057557600080fd5b505af1158015610589573d6000803e3d6000fd5b505050506040513d602081101561059f57600080fd5b5051105b806105c55750600160a060020a03831660009081526008602052604090205487115b156105cf5761066f565b600a54600160a060020a038416600090815260086020526040902060020154610610913031916106049163ffffffff611cf616565b9063ffffffff611d1f16565b9150838210156106235784600a0a610626565b60015b600160a060020a03841660009081526008602052604090205490915061066c908290610604908a906106609083888663ffffffff611cf616565b9063ffffffff611cf616565b95505b5050505050919050565b600654600160a060020a031681565b600080600160a060020a03831615156106a057600080fd5b5050600160a060020a0316600090815260086020526040902080546001909101549091565b600c5481565b60096020526000908152604090205460ff1681565b600154600160a060020a031633146106f757600080fd5b600160a060020a038116151561070c57600080fd5b6005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080600160025414151561074f57600080fd5b6002805533915061075e610afb565b151561076957600080fd5b6000831161077657600080fd5b600160a060020a03821660009081526008602052604090205483111561079b57600080fd5b600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301529151869392909216916370a08231916024808201926020929091908290030181600087803b15801561080657600080fd5b505af115801561081a573d6000803e3d6000fd5b505050506040513d602081101561083057600080fd5b5051101561083d57600080fd5b600654604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290518592600160a060020a03169163dd62ed3e9160448083019260209291908290030181600087803b1580156108a857600080fd5b505af11580156108bc573d6000803e3d6000fd5b505050506040513d60208110156108d257600080fd5b505110156108df57600080fd5b6108e88361044f565b9050600081116108f757600080fd5b600160a060020a038216600090815260086020526040902054610920908463ffffffff611d3416565b600160a060020a038316600090815260086020526040902090815560075460019091015461098c9161096491600a9190910a9061060490879063ffffffff611cf616565b600160a060020a0384166000908152600860205260409020600201549063ffffffff611d3416565b600160a060020a038316600090815260086020526040902060020155600b546109bb908263ffffffff611ce316565b600b5560065460048054604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a03878116948201949094529183166024830152604482018790525191909216916323b872dd9160648083019260209291908290030181600087803b158015610a3a57600080fd5b505af1158015610a4e573d6000803e3d6000fd5b505050506040513d6020811015610a6457600080fd5b50511515610a7157600080fd5b604051600160a060020a0383169082156108fc029083906000818181858888f19350505050158015610aa7573d6000803e3d6000fd5b5060408051828152602081018590528151600160a060020a038516927ffc48f4f163cfed28aaf3be3f0b162a1338fab214afc9340eafc6cb081c71fadf928290030190a25050600160025550565b60075481565b600354604080517fd6d65f3d00000000000000000000000000000000000000000000000000000000815281516000938493849384938493600160a060020a03169263d6d65f3d926004808201939182900301818787803b158015610b5e57600080fd5b505af1158015610b72573d6000803e3d6000fd5b505050506040513d6040811015610b8857600080fd5b5080516020909101519094509250831515610ba257610d09565b6003546040805160e060020a632442e1cb028152600481018790529051600160a060020a0390921691632442e1cb9160248082019260009290919082900301818387803b158015610bf257600080fd5b505af1158015610c06573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c0811015610c2f57600080fd5b815160208301516040840151606085015160808601805194969395929491939283019291640100000000811115610c6557600080fd5b82016020810184811115610c7857600080fd5b8151640100000000811182820187101715610c9257600080fd5b50509291906020018051640100000000811115610cae57600080fd5b82016020810184811115610cc157600080fd5b8151640100000000811182820187101715610cdb57600080fd5b50509291905050505050935050509150428263ffffffff1611158015610d0657508063ffffffff1642105b94505b5050505090565b600154600160a060020a03163314610d2757600080fd5b600160a060020a0381161515610d3c57600080fd5b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038316908117909155604080517f4090cb640000000000000000000000000000000000000000000000000000000081529051634090cb64916004808201926020929091908290030181600087803b158015610db857600080fd5b505af1158015610dcc573d6000803e3d6000fd5b505050506040513d6020811015610de257600080fd5b50516006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039283161790819055604080517f313ce5670000000000000000000000000000000000000000000000000000000081529051919092169163313ce5679160048083019260209291908290030181600087803b158015610e6457600080fd5b505af1158015610e78573d6000803e3d6000fd5b505050506040513d6020811015610e8e57600080fd5b505160ff1660075550565b60005481565b600554600160a060020a031681565b600154600090819081908190600160a060020a03163314610ece57600080fd5b600254600114610edd57600080fd5b60028055610ee96112ac565b1515610ef457600080fd5b610efc6110ac565b9350610f066116a3565b9350509250600084111515610f1a57600080fd5b6000828152600960205260408120805460ff19166001179055600d541115610f6557600d54610f5090859063ffffffff611d4616565b9050610f62848263ffffffff611d3416565b93505b600c54610f78908463ffffffff611ce316565b600c556000811115610fc057600554604051600160a060020a039091169082156108fc029083906000818181858888f19350505050158015610fbe573d6000803e3d6000fd5b505b604051339085156108fc029086906000818181858888f19350505050158015610fed573d6000803e3d6000fd5b5060408051858152905133917f4a966617f50ccad97beb624d8e13820bf2a745e1640fed943858499286fc9829919081900360200190a2505060016002555050565b600154600160a060020a0316331461104657600080fd5b600154604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26001805473ffffffffffffffffffffffffffffffffffffffff19169055565b600454600160a060020a031681565b60008060008060006110bc6116a3565b50935093508360001480156110cf575082155b806110d957503031155b156110e357610d09565b600b54600a546110f89163ffffffff611d3416565b600c5490925061111e90611112868663ffffffff611ce316565b9063ffffffff611d3416565b9050610d06828263ffffffff611d4616565b600154600160a060020a031681565b600354600160a060020a031633811461115757600080fd5b6000821161116457600080fd5b6000341161117157600080fd5b600160a060020a03831660009081526008602052604090205461119a908363ffffffff611ce316565b600160a060020a0384166000908152600860205260409020908155600201546111c9903463ffffffff611ce316565b600160a060020a038416600090815260086020526040902060028101829055546007546112029261060491600a0a63ffffffff611cf616565b600160a060020a038416600090815260086020526040902060010155600a54611231903463ffffffff611ce316565b600a5560408051348152602081018490528151600160a060020a038616927f363f315f930a17d1266b86a20d6dd34b1cfbc5a9db9f13a65d06a689c3a2af8a928290030190a2505050565b60086020526000908152604090208054600182015460029092015490919083565b600354600160a060020a031681565b600080600080600080600360009054906101000a9004600160a060020a0316600160a060020a031663d6d65f3d6040518163ffffffff1660e060020a0281526004016040805180830381600087803b15801561130757600080fd5b505af115801561131b573d6000803e3d6000fd5b505050506040513d604081101561133157600080fd5b508051602090910151600354604080517f14f66d340000000000000000000000000000000000000000000000000000000081528151949950929750600160a060020a03909116926314f66d349260048082019392918290030181600087803b15801561139c57600080fd5b505af11580156113b0573d6000803e3d6000fd5b505050506040513d60408110156113c657600080fd5b505192508315156113d657611695565b8415156113e65760019550611695565b6003546040805160e060020a632442e1cb028152600481018890529051600160a060020a0390921691632442e1cb9160248082019260009290919082900301818387803b15801561143657600080fd5b505af115801561144a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c081101561147357600080fd5b8151602083015160408401516060850151608086018051949693959294919392830192916401000000008111156114a957600080fd5b820160208101848111156114bc57600080fd5b81516401000000008111828201871017156114d657600080fd5b505092919060200180516401000000008111156114f257600080fd5b8201602081018481111561150557600080fd5b815164010000000081118282018710171561151f57600080fd5b50506003546040805160e060020a632442e1cb028152600481018f905290519a9c50600160a060020a0390911699632442e1cb9950602480830199506000985090965090869003019350849250859150889050803b15801561158057600080fd5b505af1158015611594573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c08110156115bd57600080fd5b8151602083015160408401516060850151608086018051949693959294919392830192916401000000008111156115f357600080fd5b8201602081018481111561160657600080fd5b815164010000000081118282018710171561162057600080fd5b5050929190602001805164010000000081111561163c57600080fd5b8201602081018481111561164f57600080fd5b815164010000000081118282018710171561166957600080fd5b505092919050505050509350505050428263ffffffff1611806116925750428163ffffffff1611155b95505b505050505090565b600d5481565b600080600080600080600080600080600080600360009054906101000a9004600160a060020a0316600160a060020a031663d6d65f3d6040518163ffffffff1660e060020a0281526004016040805180830381600087803b15801561170757600080fd5b505af115801561171b573d6000803e3d6000fd5b505050506040513d604081101561173157600080fd5b508051602090910151600354604080517f14f66d340000000000000000000000000000000000000000000000000000000081528151949d50929b50600160a060020a03909116926314f66d349260048082019392918290030181600087803b15801561179c57600080fd5b505af11580156117b0573d6000803e3d6000fd5b505050506040513d60408110156117c657600080fd5b50516003546040805160e060020a632442e1cb028152600481018490529051929950600160a060020a0390911691632442e1cb9160248082019260009290919082900301818387803b15801561181b57600080fd5b505af115801561182f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c081101561185857600080fd5b81516020830151604084015160608501516080860180519496939592949193928301929164010000000081111561188e57600080fd5b820160208101848111156118a157600080fd5b81516401000000008111828201871017156118bb57600080fd5b505092919060200180516401000000008111156118d757600080fd5b820160208101848111156118ea57600080fd5b815164010000000081118282018710171561190457600080fd5b50509291905050505050985050505087158061192557506119236112ac565b155b1561192f57611c4b565b88158061194257508563ffffffff164210155b61194f5760018903611951565b885b6003546040805160e060020a632442e1cb028152600481018490529051929b50600160a060020a0390911691632442e1cb9160248082019260009290919082900301818387803b1580156119a457600080fd5b505af11580156119b8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c08110156119e157600080fd5b815160208301516040840151606085015160808601805194969395929491939283019291640100000000811115611a1757600080fd5b82016020810184811115611a2a57600080fd5b8151640100000000811182820187101715611a4457600080fd5b50509291906020018051640100000000811115611a6057600080fd5b82016020810184811115611a7357600080fd5b8151640100000000811182820187101715611a8d57600080fd5b50509291905050505050965050955050600960008a815260200190815260200160002060009054906101000a900460ff1692508215611acb57611c4b565b8891505b6000821115611c41576003546040805160e060020a632442e1cb0281526000199094016004850181905290519093600160a060020a0390921691632442e1cb91602480830192600092919082900301818387803b158015611b2f57600080fd5b505af1158015611b43573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c0811015611b6c57600080fd5b815160208301516040840151606085015160808601805194969395929491939283019291640100000000811115611ba257600080fd5b82016020810184811115611bb557600080fd5b8151640100000000811182820187101715611bcf57600080fd5b50509291906020018051640100000000811115611beb57600080fd5b82016020810184811115611bfe57600080fd5b8151640100000000811182820187101715611c1857600080fd5b505092919050505050505050915050611c3a818c611ce390919063ffffffff16565b9a50611acf565b848b8a9b509b509b505b505050505050505050909192565b600154600160a060020a03163314611c7057600080fd5b600160a060020a0381161515611c8557600080fd5b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600a5481565b600b5481565b600154600160a060020a03163314611cd757600080fd5b611ce081611d7e565b50565b81810182811015611cf057fe5b92915050565b6000821515611d0757506000611cf0565b50818102818382811515611d1757fe5b0414611cf057fe5b60008183811515611d2c57fe5b049392505050565b600082821115611d4057fe5b50900390565b6000611d5182611dfc565b1515611d5c57600080fd5b611d77611d67611e21565b610604858563ffffffff611cf616565b9392505050565b600160a060020a0381161515611d9357600080fd5b600154604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000611e06611e33565b8210158015611cf05750611e18611e21565b82111592915050565b6000611e2b611e38565b600a0a905090565b600090565b6000611e42611e4a565b600201905090565b600290565b6000611e5a82611dfc565b1515611e6557600080fd5b611cf0611e70611e4a565b8390600a0a63ffffffff611d1f165600a165627a7a72305820311074774ed09ff1abad7efeeaaaf0d8dbb95454119635ff28c1f2f4c3c2ac7e0029", - "sourceMap": "387:8116:4:-;;;487:1:28;657:51;;1309:226:4;8:9:-1;5:2;;;30:1;27;20:12;5:2;1309:226:4;;;;;;;;;;;;;;;;;;;123:7:26;:18;;;567:5:31;:18;;-1:-1:-1;;;;;;567:18:31;575:10;567:18;;;1406:30:4;1309:226;1406:28;;;;;;:30;:::i;:::-;:72;;;;-1:-1:-1;1475:3:4;1440:32;:18;:30;;;;;;:32;:::i;:::-;:38;1406:72;1398:81;;;;;;;;1490:17;:38;-1:-1:-1;387:8116:4;;554:107:14;605:4;634:5;:3;;;;:5;:::i;:::-;628:2;:11;;:26;;;;-1:-1:-1;649:5:14;:3;;;;:5;:::i;:::-;643:2;:11;;628:26;621:33;554:107;-1:-1:-1;;554:107:14:o;806:139::-;859:4;883:13;893:2;883:9;;;;:13;:::i;:::-;875:22;;;;;;;;915:23;928:9;:7;;;;:9;:::i;:::-;915:2;;922;:15;915:6;;;;;;:23;:::i;275:55::-;311:4;275:55;:::o;335:65::-;371:4;392:5;:3;;;;:5;:::i;:::-;386:2;:11;379:18;;335:65;:::o;139:59::-;194:1;139:59;:::o;665:283:30:-;725:7;941:2;936;:7;;;;;;;;;665:283;-1:-1:-1;;;665:283:30:o;203:67:14:-;239:4;258:9;:7;;;;:9;:::i;:::-;254:1;:13;247:20;;203:67;:::o;387:8116:4:-;;;;;;;", - "deployedSourceMap": "387:8116:4:-;;;;;;;;-1:-1:-1;387:8116:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3111:910;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3111:910:4;;;;;;;;;;;;;;;;;;;;;614:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;614:20:4;;;;;;;;-1:-1:-1;;;;;614:20:4;;;;;;;;;;;;;;2641:232;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2641:232:4;;;-1:-1:-1;;;;;2641:232:4;;;;;;;;;;;;;;;;;;;;;;;;;;883:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;883:39:4;;;;747:47;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;747:47:4;;;;;;;;;;;;;;;;;;;;;;;1906:164;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1906:164:4;;;-1:-1:-1;;;;;1906:164:4;;;;;6446:1022;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6446:1022:4;;;;;640:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;640:25:4;;;;7474:439;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7474:439:4;;;;1541:234;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1541:234:4;;;-1:-1:-1;;;;;1541:234:4;;;53:19:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;53:19:26;;;;580:28:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;580:28:4;;;;5703:737;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5703:737:4;;;;1001:111:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1001:111:31;;;;555:19:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;555:19:4;;;;4027:554;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4027:554:4;;;;238:20:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:31;;;;2076:559:4;;;;-1:-1:-1;;;;;2076:559:4;;;;;694:47;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;694:47:4;;;-1:-1:-1;;;;;694:47:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;519:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;519:30:4;;;;7919:484;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7919:484:4;;;;928:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;928:29:4;;;;4587:1110;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4587:1110:4;;;;1781:119;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1781:119:4;;;-1:-1:-1;;;;;1781:119:4;;;823:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;823:23:4;;;;852:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;852:25:4;;;;1274:103:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1274:103:31;;;-1:-1:-1;;;;;1274:103:31;;;3111:910:4;3179:11;3202:8;3340;3381:13;3673:16;3771:23;3229:20;3247:1;3229:13;;:17;;:20;;;;:::i;:::-;3213:13;;:36;:75;;3275:13;;3213:75;;;3252:13;;:20;;3270:1;3252:20;:17;:20;:::i;:::-;3202:86;-1:-1:-1;3307:14:4;:21;-1:-1:-1;3307:21:4;3299:30;;;;;;3368:3;3362:2;:9;-1:-1:-1;;3351:20:4;;;;;;;;;-1:-1:-1;3397:10:4;;-1:-1:-1;3421:20:4;;;:66;;-1:-1:-1;;;;;;3457:13:4;;;;;;:6;:13;;;;;:25;:30;3421:66;:108;;;-1:-1:-1;3511:4:4;3503:21;:26;3421:108;:165;;;-1:-1:-1;3545:6:4;;:23;;;;;;-1:-1:-1;;;;;3545:23:4;;;;;;;;;3571:15;;3545:6;;;;;:16;;:23;;;;;;;;;;;;;;;-1:-1:-1;3545:6:4;:23;;;5:2:-1;;;;30:1;27;20:12;5:2;3545:23:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3545:23:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3545:23:4;:41;3421:165;:224;;;-1:-1:-1;;;;;;3602:13:4;;;;;;:6;:13;;;;;:25;-1:-1:-1;;3421:224:4;3418:245;;;3656:7;;3418:245;3722:11;;-1:-1:-1;;;;;3692:13:4;;;;;;:6;:13;;;;;-1:-1:-1;3692:25:4;;:69;;3747:4;3739:21;;3692:42;;:29;:42::i;:::-;:46;:69;:46;:69;:::i;:::-;3673:88;;3812:3;3797:11;:18;;:34;;3828:3;3822:2;:9;3797:34;;;3818:1;3797:34;-1:-1:-1;;;;;3917:13:4;;;;;;:6;:13;;;;;:25;3771:60;;-1:-1:-1;3851:163:4;;3771:60;;3851:126;;3961:15;;3851:92;;:126;:11;3771:60;3851:28;:48::i;:92::-;:109;:126;:109;:126;:::i;:163::-;3842:172;;3111:910;;;;;;;;;:::o;614:20::-;;;-1:-1:-1;;;;;614:20:4;;:::o;2641:232::-;2707:22;;-1:-1:-1;;;;;2773:19:4;;;;2765:28;;;;;;-1:-1:-1;;;;;;;2812:13:4;;;;;:6;:13;;;;;:25;;-1:-1:-1;2839:26:4;;;;2812:25;;2641:232::o;883:39::-;;;;:::o;747:47::-;;;;;;;;;;;;;;;:::o;1906:164::-;719:5:31;;-1:-1:-1;;;;;719:5:31;705:10;:19;697:28;;;;;;-1:-1:-1;;;;;1993:28:4;;;;1985:37;;;;;;2033:13;:30;;-1:-1:-1;;2033:30:4;-1:-1:-1;;;;;2033:30:4;;;;;;;;;;1906:164::o;6446:1022::-;6516:13;6831:19;487:1:28;1128:14;;:39;1120:48;;;;;;;;584:1;1174:40;;6532:10:4;;-1:-1:-1;6561:15:4;:13;:15::i;:::-;6553:24;;;;;;;;6613:1;6595:19;;6587:28;;;;;;-1:-1:-1;;;;;6633:13:4;;;;;;:6;:13;;;;;:25;-1:-1:-1;;6633:44:4;6625:53;;;;;;6696:6;;:23;;;;;;-1:-1:-1;;;;;6696:23:4;;;;;;;;;6723:15;;6696:6;;;;;:16;;:23;;;;;;;;;;;;;;;-1:-1:-1;6696:6:4;:23;;;5:2:-1;;;;30:1;27;20:12;5:2;6696:23:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6696:23:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6696:23:4;:42;;6688:51;;;;;;6757:6;;:43;;;;;;6774:10;6757:43;;;;6794:4;6757:43;;;;;;6804:15;;-1:-1:-1;;;;;6757:6:4;;:16;;:43;;;;;;;;;;;;;;-1:-1:-1;6757:6:4;:43;;;5:2:-1;;;;30:1;27;20:12;5:2;6757:43:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6757:43:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6757:43:4;:62;;6749:71;;;;;;6853:32;6869:15;6853;:32::i;:::-;6831:54;-1:-1:-1;6921:1:4;6904:18;;6896:27;;;;;;-1:-1:-1;;;;;6962:13:4;;;;;;:6;:13;;;;;:25;:59;;7005:15;6962:42;:59::i;:::-;-1:-1:-1;;;;;6934:13:4;;;;;;:6;:13;;;;;:87;;;7160:13;;-1:-1:-1;7122:26:4;;;;7059:116;;7102:72;;7154:2;:19;;;;;7102:47;;:15;;:19;:47::i;:72::-;-1:-1:-1;;;;;7059:13:4;;;;;;:6;:13;;;;;-1:-1:-1;7059:25:4;;;:42;:116::i;:::-;-1:-1:-1;;;;;7031:13:4;;;;;;:6;:13;;;;;-1:-1:-1;7031:25:4;:144;7250:13;;:33;;7268:14;7250:17;:33::i;:::-;7234:13;:49;7302:6;;7329:4;;;7302:49;;;;;;-1:-1:-1;;;;;7302:49:4;;;;;;;;;;7329:4;;;7302:49;;;;;;;;;;;:6;;;;;:19;;:49;;;;;;;;;;;;;;-1:-1:-1;7302:6:4;:49;;;5:2:-1;;;;30:1;27;20:12;5:2;7302:49:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7302:49:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7302:49:4;7294:58;;;;;;;;7362:30;;-1:-1:-1;;;;;7362:14:4;;;:30;;;;;;;;;;;;:14;:30;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;7408:53:4;;;;;;;;;;;;;;-1:-1:-1;;;;;7408:53:4;;;;;;;;;;;-1:-1:-1;;487:1:28;1227:14;:38;-1:-1:-1;6446:1022:4:o;640:25::-;;;;:::o;7474:439::-;7563:9;;:36;;;;;;;;7520:4;;;;;;;;;;-1:-1:-1;;;;;7563:9:4;;:34;;:36;;;;;;;;;;;7520:4;7563:9;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;7563:36:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7563:36:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7563:36:4;;;;;;;;;-1:-1:-1;7563:36:4;-1:-1:-1;7738:10:4;;7735:22;;;7750:7;;7735:22;7819:9;;:29;;;-1:-1:-1;;;;;7819:29:4;;;;;;;;;;-1:-1:-1;;;;;7819:9:4;;;;-1:-1:-1;;7819:29:4;;;;;-1:-1:-1;;7819:29:4;;;;;;;;-1:-1:-1;7819:9:4;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;7819:29:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7819:29:4;;;;;;39:16:-1;36:1;17:17;2:54;101:4;7819:29:4;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;7819:29:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;7819:29:4;;;;;;;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;;7819:29:4;;;;;;7767:81;;;;;;;;7877:3;7866:7;:14;;;;:40;;;;;7890:16;7884:22;;:3;:22;7866:40;7859:47;;7474:439;;;;;;:::o;1541:234::-;719:5:31;;-1:-1:-1;;;;;719:5:31;705:10;:19;697:28;;;;;;-1:-1:-1;;;;;1626:24:4;;;;1618:33;;;;;;1662:9;:22;;-1:-1:-1;;1662:22:4;-1:-1:-1;;;;;1662:22:4;;;;;;;;1703;;;;;;;;:20;;:22;;;;;;;;;;;;;;;-1:-1:-1;1662:22:4;1703;;;5:2:-1;;;;30:1;27;20:12;5:2;1703:22:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1703:22:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1703:22:4;1694:6;:31;;-1:-1:-1;;1694:31:4;-1:-1:-1;;;;;1694:31:4;;;;;;;;1751:17;;;;;;;;:6;;;;;:15;;:17;;;;;1703:22;;1751:17;;;;;;;-1:-1:-1;1751:6:4;:17;;;5:2:-1;;;;30:1;27;20:12;5:2;1751:17:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1751:17:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1751:17:4;1735:33;;:13;:33;-1:-1:-1;1541:234:4:o;53:19:26:-;;;;:::o;580:28:4:-;;;-1:-1:-1;;;;;580:28:4;;:::o;5703:737::-;719:5:31;;5808:18:4;;;;;;;;-1:-1:-1;;;;;719:5:31;705:10;:19;697:28;;;;;;1128:14:28;;487:1;1128:39;1120:48;;;;;;584:1;1174:40;;5772:24:4;:22;:24::i;:::-;5764:33;;;;;;;;5829:18;:16;:18::i;:::-;5808:39;;5903:22;:20;:22::i;:::-;5857:68;;;;;5960:1;5944:13;:17;5936:26;;;;;;;;5973:33;;;;:17;:33;;;;;:40;;-1:-1:-1;;5973:40:4;6009:4;5973:40;;;6047:17;;:21;6043:150;;;6112:17;;6090:40;;:13;;:40;:21;:40;:::i;:::-;6084:46;-1:-1:-1;6160:22:4;:13;6084:46;6160:22;:17;:22;:::i;:::-;6144:38;;6043:150;6233:27;;:47;;6265:14;6233:47;:31;:47;:::i;:::-;6203:27;:77;6301:1;6295:7;;6291:40;;;6304:13;;:27;;-1:-1:-1;;;;;6304:13:4;;;;: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;6304:27:4;6291:40;6341:34;;:10;;:34;;;;;6361:13;;6341:34;;;;6361:13;6341:10;:34;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;6391:42:4;;;;;;;;6407:10;;6391:42;;;;;;;;;;-1:-1:-1;;487:1:28;1227:14;:38;-1:-1:-1;;5703:737:4:o;1001:111:31:-;719:5;;-1:-1:-1;;;;;719:5:31;705:10;:19;697:28;;;;;;1077:5;;1058:25;;-1:-1:-1;;;;;1077:5:31;;;;1058:25;;1077:5;;1058:25;1089:5;:18;;-1:-1:-1;;1089:18:31;;;1001:111::o;555:19:4:-;;;-1:-1:-1;;;;;555:19:4;;:::o;4027:554::-;4076:11;4100:19;4121:30;4330:16;4389:21;4157:22;:20;:22::i;:::-;4099:80;;;;;4207:14;4225:1;4207:19;:53;;;;-1:-1:-1;4230:30:4;;4207:53;:95;;;-1:-1:-1;4284:4:4;4276:21;:26;4207:95;4190:130;;;4313:7;;4190:130;4365:13;;4349:11;;:30;;;:15;:30;:::i;:::-;4489:27;;4330:49;;-1:-1:-1;4413:104:4;;:58;:14;4445:25;4413:58;:31;:58;:::i;:::-;:75;:104;:75;:104;:::i;:::-;4389:128;-1:-1:-1;4537:37:4;:11;4389:128;4537:37;:19;:37;:::i;238:20:31:-;;;-1:-1:-1;;;;;238:20:31;;:::o;2076:559:4:-;2159:9;;-1:-1:-1;;;;;2159:9:4;8461:10;:20;;8453:29;;;;;;2202:1;2188:15;;2180:24;;;;;;2234:1;2222:9;:13;2214:22;;;;;;-1:-1:-1;;;;;2275:13:4;;;;;;:6;:13;;;;;:25;:42;;2305:11;2275:29;:42::i;:::-;-1:-1:-1;;;;;2247:13:4;;;;;;:6;:13;;;;;:70;;;-1:-1:-1;2355:25:4;;:40;;2385:9;2355:29;:40::i;:::-;-1:-1:-1;;;;;2327:13:4;;;;;;:6;:13;;;;;-1:-1:-1;2327:25:4;;:68;;;2491:25;2471:13;;2434:83;;2435:50;;2465:2;:19;2435:29;:50::i;2434:83::-;-1:-1:-1;;;;;2405:13:4;;;;;;:6;:13;;;;;-1:-1:-1;2405:26:4;:112;2542:11;;:26;;2558:9;2542:15;:26::i;:::-;2528:11;:40;2584:44;;;2605:9;2584:44;;;;;;;;;;-1:-1:-1;;;;;2584:44:4;;;;;;;;;;;2076:559;;;:::o;694:47::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;519:30::-;;;-1:-1:-1;;;;;519:30:4;;:::o;7919:484::-;8017:9;;:36;;;;;;;;7974:4;;;;;;;;;;;;-1:-1:-1;;;;;8017:9:4;;;;:34;;:36;;;;;;;;;;;7974:4;8017:9;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;8017:36:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8017:36:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8017:36:4;;;;;;;8084:9;;8017:36;8084:33;;;;;;;8017:36;;-1:-1:-1;8017:36:4;;-1:-1:-1;;;;;;8084:9:4;;;;:31;;:33;;;;;8017:36;8084:33;;;;;;:9;;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;8084:33:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8084:33:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8084:33:4;;-1:-1:-1;8131:6:4;;8128:18;;;8139:7;;8128:18;8158:10;;8155:26;;;8177:4;8170:11;;;;8155:26;8221:9;;:29;;;-1:-1:-1;;;;;8221:29:4;;;;;;;;;;-1:-1:-1;;;;;8221:9:4;;;;-1:-1:-1;;8221:29:4;;;;;-1:-1:-1;;8221:29:4;;;;;;;;-1:-1:-1;8221:9:4;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;8221:29:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8221:29:4;;;;;;39:16:-1;36:1;17:17;2:54;101:4;8221:29:4;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;8221:29:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;8221:29:4;;;;;;;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;;8301:9:4;;:33;;;-1:-1:-1;;;;;8301:33:4;;;;;;;;;;8192:58;;-1:-1:-1;;;;;;8301:9:4;;;;-1:-1:-1;;;8301:33:4;;;;;-1:-1:-1;;;;8301:33:4;;-1:-1:-1;8301:33:4;;;;;;-1:-1:-1;8301:33:4;;-1:-1:-1;;;;8301:9:4;;-1:-1:-1;8301:33:4;;;5:2:-1;;;;30:1;27;20:12;5:2;8301:33:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8301:33:4;;;;;;39:16:-1;36:1;17:17;2:54;101:4;8301:33:4;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;8301:33:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;8301:33:4;;;;;;;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;;8301:33:4;;;;;;8260:74;;;;;;;8362:3;8352:7;:13;;;:44;;;;8393:3;8369:20;:27;;;;8352:44;8345:51;;7919:484;;;;;;;:::o;928:29::-;;;;:::o;4587:1110::-;4640:4;4646:30;4678:4;4695:10;4707;4768:14;4836:27;5098:19;5121:23;5192:14;5276:11;5365:20;4721:9;;;;;;;;;-1:-1:-1;;;;;4721:9:4;-1:-1:-1;;;;;4721:34:4;;:36;;;;;-1:-1:-1;;;4721:36:4;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4721:36:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4721:36:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4721:36:4;;;;;;;4788:9;;4721:36;4788:33;;;;;;;4721:36;;-1:-1:-1;4721:36:4;;-1:-1:-1;;;;;;4788:9:4;;;;:31;;:33;;;;;4721:36;4788:33;;;;;;:9;;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;4788:33:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4788:33:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4788:33:4;4869:9;;4788:33;4869;;-1:-1:-1;;;;;4869:33:4;;;;;;;;;;4788;;-1:-1:-1;;;;;;4869:9:4;;;;-1:-1:-1;;4869:33:4;;;;;-1:-1:-1;;4869:33:4;;;;;;;;-1:-1:-1;4869:9:4;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;4869:33:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4869:33:4;;;;;;39:16:-1;36:1;17:17;2:54;101:4;4869:33:4;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;4869:33:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;4869:33:4;;;;;;;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;;4869:33:4;;;;;;4831:71;;;;;;;4918:5;4917:6;:35;;;;4928:24;:22;:24::i;:::-;4927:25;4917:35;4913:48;;;4954:7;;4913:48;5022:10;;;:41;;;5043:20;5036:27;;:3;:27;;5022:41;:61;;5082:1;5074:5;:9;5022:61;;;5066:5;5022:61;5152:9;;:29;;;-1:-1:-1;;;;;5152:29:4;;;;;;;;;;;;-1:-1:-1;;;;;;5152:9:4;;;;-1:-1:-1;;5152:29:4;;;;;-1:-1:-1;;5152:29:4;;;;;;;;-1:-1:-1;5152:9:4;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;5152:29:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5152:29:4;;;;;;39:16:-1;36:1;17:17;2:54;101:4;5152:29:4;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;5152:29:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;5152:29:4;;;;;;;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;;5152:29:4;;;;;;5094:87;;;;;;;;5209:17;:24;5227:5;5209:24;;;;;;;;;;;;;;;;;;;;;5192:41;;5248:9;5244:22;;;5259:7;;5244:22;5290:5;5276:19;;5306:221;5322:1;5313:6;:10;5306:221;;;5397:9;;:30;;;-1:-1:-1;;;;;5397:30:4;;-1:-1:-1;;5339:8:4;;;;5397:30;;;;;;;;5339:8;;-1:-1:-1;;;;;5397:9:4;;;;-1:-1:-1;;5397:30:4;;;;;-1:-1:-1;;5397:30:4;;;;;;;-1:-1:-1;5397:9:4;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;5397:30:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5397:30:4;;;;;;39:16:-1;36:1;17:17;2:54;101:4;5397:30:4;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;5397:30:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;5397:30:4;;;;;;;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;;5397:30:4;;;;;;5362:65;;;;;;;5470:46;5500:15;5470:25;:29;;:46;;;;:::i;:::-;5442:74;;5306:221;;;5558:14;5636:25;5675:5;5537:153;;;;;;4587:1110;;;;;;;;;;;;;:::o;1781:119::-;719:5:31;;-1:-1:-1;;;;;719:5:31;705:10;:19;697:28;;;;;;-1:-1:-1;;;;;1850:19:4;;;;1842:28;;;;;;1881:4;:12;;-1:-1:-1;;1881:12:4;-1:-1:-1;;;;;1881:12:4;;;;;;;;;;1781:119::o;823:23::-;;;;:::o;852:25::-;;;;:::o;1274:103:31:-;719:5;;-1:-1:-1;;;;;719:5:31;705:10;:19;697:28;;;;;;1343:29;1362:9;1343:18;:29::i;:::-;1274:103;:::o;1238:128:30:-;1319:7;;;1339;;;;1332:15;;;;1238:128;;;;:::o;203:380::-;263:9;489:7;;485:36;;;-1:-1:-1;513:1:30;506:8;;485:36;-1:-1:-1;531:7:30;;;536:2;531;:7;551:6;;;;;;;;:12;544:20;;;665:283;725:7;941:2;936;:7;;;;;;;;;665:283;-1:-1:-1;;;665:283:30:o;1060:116::-;1120:7;1142:8;;;;1135:16;;;;-1:-1:-1;1164:7:30;;;1060:116::o;406:142:14:-;464:4;488:13;498:2;488:9;:13::i;:::-;480:22;;;;;;;;520:21;535:5;:3;:5::i;:::-;520:10;:2;527;520:10;:6;:10;:::i;:21::-;513:28;406:142;-1:-1:-1;;;406:142:14:o;1512:171:31:-;-1:-1:-1;;;;;1582:23:31;;;;1574:32;;;;;;1638:5;;1617:38;;-1:-1:-1;;;;;1617:38:31;;;;1638:5;;1617:38;;1638:5;;1617:38;1661:5;:17;;-1:-1:-1;;1661:17:31;-1:-1:-1;;;;;1661:17:31;;;;;;;;;;1512:171::o;554:107:14:-;605:4;634:5;:3;:5::i;:::-;628:2;:11;;:26;;;;;649:5;:3;:5::i;:::-;643:2;:11;;621:33;554:107;-1:-1:-1;;554:107:14:o;335:65::-;371:4;392:5;:3;:5::i;:::-;386:2;:11;379:18;;335:65;:::o;275:55::-;311:4;275:55;:::o;203:67::-;239:4;258:9;:7;:9::i;:::-;254:1;:13;247:20;;203:67;:::o;139:59::-;194:1;139:59;:::o;806:139::-;859:4;883:13;893:2;883:9;:13::i;:::-;875:22;;;;;;;;915:23;928:9;:7;:9::i;:::-;915:2;;922;:15;915: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 \"./token/WToken.sol\";\nimport \"./interfaces/IW12Crowdsale.sol\";\nimport \"./interfaces/IW12Fund.sol\";\nimport \"./libs/Percent.sol\";\nimport \"./versioning/Versionable.sol\";\n\ncontract W12Fund is Versionable, IW12Fund, Ownable, ReentrancyGuard {\n using SafeMath for uint;\n using Percent for uint;\n\n IW12Crowdsale public crowdsale;\n address public swap;\n address public serviceWallet;\n WToken public wToken;\n uint public tokenDecimals; // TODO: refactor this\n mapping (address=>TokenPriceInfo) public buyers;\n mapping (uint => bool) public completedTranches; // TODO: refactor this\n uint public totalFunded;\n uint public totalRefunded;\n uint public totalTranchePercentReleased;\n uint public trancheFeePercent;\n\n struct TokenPriceInfo {\n uint totalBought;\n uint averagePrice;\n uint totalFunded;\n }\n\n event FundsReceived(address indexed buyer, uint weiAmount, uint tokenAmount);\n event FundsRefunded(address indexed buyer, uint weiAmount, uint tokenAmount);\n event TrancheReleased(address indexed receiver, uint amount);\n\n constructor(uint version, uint _trancheFeePercent) Versionable(version) public {\n require(_trancheFeePercent.isPercent() && _trancheFeePercent.fromPercent() < 100);\n\n trancheFeePercent = _trancheFeePercent;\n }\n\n function setCrowdsale(IW12Crowdsale _crowdsale) onlyOwner external {\n require(_crowdsale != address(0));\n\n crowdsale = _crowdsale;\n wToken = _crowdsale.getWToken();\n tokenDecimals = wToken.decimals();\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 function recordPurchase(address buyer, uint tokenAmount) external payable onlyFrom(crowdsale) {\n require(tokenAmount > 0);\n require(msg.value > 0);\n\n buyers[buyer].totalBought = buyers[buyer].totalBought.add(tokenAmount);\n buyers[buyer].totalFunded = buyers[buyer].totalFunded.add(msg.value);\n buyers[buyer].averagePrice = (buyers[buyer].totalFunded.mul(10 ** tokenDecimals)).div(buyers[buyer].totalBought);\n\n totalFunded = totalFunded.add(msg.value);\n\n emit FundsReceived(buyer, msg.value, tokenAmount);\n }\n\n function getInvestmentsInfo(address buyer) external view returns (uint totalTokensBought, uint averageTokenPrice) {\n require(buyer != address(0));\n\n return (buyers[buyer].totalBought, buyers[buyer].averagePrice);\n }\n\n /**\n a = address(this).balance\n b = totalFunded\n c = buyers[buyer].totalFunded\n d = buyers[buyer].totalBought\n e = wtokensToRefund\n\n ( ( c * (a / b) ) / d ) * e = (refund amount)\n */\n function getRefundAmount(uint wtokensToRefund) public view returns (uint result) {\n uint exp = tokenDecimals < tokenDecimals.add(8) ? tokenDecimals.add(8) : tokenDecimals;\n\n require(uint(- 1) / 10 >= exp);\n\n uint max = uint(-1) / 10 ** exp;\n address buyer = msg.sender;\n\n if(wtokensToRefund == 0\n || buyers[buyer].totalBought == 0\n || address(this).balance == 0\n || wToken.balanceOf(buyer) < wtokensToRefund\n || buyers[buyer].totalBought < wtokensToRefund\n ) return;\n\n uint allowedFund = buyers[buyer].totalFunded.mul(totalFunded).div(address(this).balance);\n uint precisionComponent = allowedFund >= max ? 1 : 10 ** exp;\n\n result = allowedFund\n .mul(precisionComponent)\n .div(buyers[buyer].totalBought)\n .mul(wtokensToRefund)\n .div(precisionComponent);\n }\n\n function getTrancheAmount() public view returns (uint result) {\n (uint tranchePercent, uint totalTranchePercentBefore, ) = getTrancheParameters();\n\n if (\n tranchePercent == 0 && totalTranchePercentBefore == 0\n || address(this).balance == 0\n ) return;\n\n uint allowedFund = totalFunded.sub(totalRefunded);\n uint trancheToRelease = tranchePercent\n .add(totalTranchePercentBefore)\n .sub(totalTranchePercentReleased);\n\n result = allowedFund.percent(trancheToRelease);\n }\n\n function getTrancheParameters() public view returns (uint, uint totalTranchePercentBefore, uint) {\n (uint index, bool found) = crowdsale.getCurrentMilestoneIndex();\n (uint lastIndex, ) = crowdsale.getLastMilestoneIndex();\n (,,, uint32 lastWithdrawalWindow,,) = crowdsale.getMilestone(lastIndex);\n\n if (!found || !trancheTransferAllowed()) return;\n\n // get percent from prev milestone\n index = index == 0 || now >= lastWithdrawalWindow ? 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 dIndex = index;\n\n while (dIndex > 0) {\n dIndex--;\n\n (, uint _tranchePercent, , , , ) = crowdsale.getMilestone(dIndex);\n\n totalTranchePercentBefore = totalTranchePercentBefore.add(_tranchePercent);\n }\n\n return (\n tranchePercent,\n // it will helps to calculate tranche\n totalTranchePercentBefore,\n index\n );\n }\n\n function tranche() external onlyOwner nonReentrant {\n require(trancheTransferAllowed());\n\n uint trancheAmount = getTrancheAmount();\n (uint tranchePercent, ,uint milestoneIndex) = getTrancheParameters();\n\n require(trancheAmount > 0);\n\n completedTranches[milestoneIndex] = true;\n\n uint fee;\n\n if (trancheFeePercent > 0) {\n fee = trancheAmount.percent(trancheFeePercent);\n trancheAmount = trancheAmount.sub(fee);\n }\n\n totalTranchePercentReleased = totalTranchePercentReleased.add(tranchePercent);\n\n if (fee > 0) serviceWallet.transfer(fee);\n msg.sender.transfer(trancheAmount);\n\n emit TrancheReleased(msg.sender, trancheAmount);\n }\n\n function refund(uint wtokensToRefund) external nonReentrant {\n address buyer = msg.sender;\n\n require(refundAllowed());\n require(wtokensToRefund > 0);\n require(buyers[buyer].totalBought >= wtokensToRefund);\n require(wToken.balanceOf(buyer) >= wtokensToRefund);\n require(wToken.allowance(msg.sender, address(this)) >= wtokensToRefund);\n\n uint transferAmount = getRefundAmount(wtokensToRefund);\n\n require(transferAmount > 0);\n\n buyers[buyer].totalBought = buyers[buyer].totalBought\n .sub(wtokensToRefund);\n buyers[buyer].totalFunded = buyers[buyer].totalFunded\n .sub(wtokensToRefund.mul(buyers[buyer].averagePrice).div(10 ** tokenDecimals));\n\n // update total refunded amount counter\n totalRefunded = totalRefunded.add(transferAmount);\n\n require(wToken.transferFrom(buyer, swap, wtokensToRefund));\n buyer.transfer(transferAmount);\n\n emit FundsRefunded(buyer, transferAmount, wtokensToRefund);\n }\n\n function refundAllowed() 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 (uint lastIndex, ) = crowdsale.getLastMilestoneIndex();\n\n if(!found) return;\n if(index == 0) return true;\n\n (uint32 endDate, , , , , ) = crowdsale.getMilestone(index);\n (, , ,uint32 lastWithdrawalWindow, , ) = crowdsale.getMilestone(lastIndex);\n\n return endDate > now || lastWithdrawalWindow <= now;\n }\n\n modifier onlyFrom(address sender) {\n require(msg.sender == sender);\n\n _;\n }\n}\n", - "sourcePath": "/home/circleci/code/contracts/W12Fund.sol", + "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", + "sourcePath": "/home/circleci/code/contracts/crowdsale/W12Fund.sol", "ast": { - "absolutePath": "/home/circleci/code/contracts/W12Fund.sol", + "absolutePath": "/home/circleci/code/contracts/crowdsale/W12Fund.sol", "exportedSymbols": { "W12Fund": [ - 2899 + 4424 ] }, - "id": 2900, + "id": 4425, "nodeType": "SourceUnit", "nodes": [ { - "id": 1998, + "id": 3170, "literals": [ "solidity", "^", @@ -544,93 +640,126 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:4" + "src": "0:24:6" }, { "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 1999, + "id": 3171, "nodeType": "ImportDirective", - "scope": 2900, - "sourceUnit": 6941, - "src": "26:63:4", + "scope": 4425, + "sourceUnit": 9689, + "src": "26:63:6", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "openzeppelin-solidity/contracts/ReentrancyGuard.sol", "file": "openzeppelin-solidity/contracts/ReentrancyGuard.sol", - "id": 2000, + "id": 3172, "nodeType": "ImportDirective", - "scope": 2900, - "sourceUnit": 6691, - "src": "90:61:4", + "scope": 4425, + "sourceUnit": 9332, + "src": "90:61:6", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 2001, + "id": 3173, "nodeType": "ImportDirective", - "scope": 2900, - "sourceUnit": 6855, - "src": "152:59:4", + "scope": 4425, + "sourceUnit": 9603, + "src": "152:59:6", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/home/circleci/code/contracts/token/WToken.sol", - "file": "./token/WToken.sol", - "id": 2002, + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", + "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", + "id": 3174, "nodeType": "ImportDirective", - "scope": 2900, - "sourceUnit": 5926, - "src": "212:28:4", + "scope": 4425, + "sourceUnit": 9766, + "src": "212:63:6", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/home/circleci/code/contracts/interfaces/IW12Crowdsale.sol", - "file": "./interfaces/IW12Crowdsale.sol", - "id": 2003, + "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Crowdsale.sol", + "file": "./IW12Crowdsale.sol", + "id": 3175, "nodeType": "ImportDirective", - "scope": 2900, - "sourceUnit": 4427, - "src": "241:40:4", + "scope": 4425, + "sourceUnit": 1205, + "src": "276:29:6", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/home/circleci/code/contracts/interfaces/IW12Fund.sol", - "file": "./interfaces/IW12Fund.sol", - "id": 2004, + "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Fund.sol", + "file": "./IW12Fund.sol", + "id": 3176, "nodeType": "ImportDirective", - "scope": 2900, - "sourceUnit": 4485, - "src": "282:35:4", + "scope": 4425, + "sourceUnit": 1242, + "src": "306:24:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/rates/IRates.sol", + "file": "../rates/IRates.sol", + "id": 3177, + "nodeType": "ImportDirective", + "scope": 4425, + "sourceUnit": 7016, + "src": "331:29:6", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/libs/Percent.sol", - "file": "./libs/Percent.sol", - "id": 2005, + "file": "../libs/Percent.sol", + "id": 3178, + "nodeType": "ImportDirective", + "scope": 4425, + "sourceUnit": 5104, + "src": "361:29:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/libs/FundAccount.sol", + "file": "../libs/FundAccount.sol", + "id": 3179, "nodeType": "ImportDirective", - "scope": 2900, - "sourceUnit": 4632, - "src": "318:28:4", + "scope": 4425, + "sourceUnit": 4842, + "src": "391:33:6", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/versioning/Versionable.sol", - "file": "./versioning/Versionable.sol", - "id": 2006, + "file": "../versioning/Versionable.sol", + "id": 3180, + "nodeType": "ImportDirective", + "scope": 4425, + "sourceUnit": 9071, + "src": "425:39:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/token/IWToken.sol", + "file": "../token/IWToken.sol", + "id": 3181, "nodeType": "ImportDirective", - "scope": 2900, - "sourceUnit": 6510, - "src": "347:38:4", + "scope": 4425, + "sourceUnit": 7631, + "src": "465:30:6", "symbolAliases": [], "unitAlias": "" }, @@ -640,116 +769,116 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 2007, + "id": 3182, "name": "Versionable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6509, - "src": "407:11:4", + "referencedDeclaration": 9070, + "src": "517:11:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_Versionable_$6509", + "typeIdentifier": "t_contract$_Versionable_$9070", "typeString": "contract Versionable" } }, - "id": 2008, + "id": 3183, "nodeType": "InheritanceSpecifier", - "src": "407:11:4" + "src": "517:11:6" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 2009, + "id": 3184, "name": "IW12Fund", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4484, - "src": "420:8:4", + "referencedDeclaration": 1241, + "src": "530:8:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", + "typeIdentifier": "t_contract$_IW12Fund_$1241", "typeString": "contract IW12Fund" } }, - "id": 2010, + "id": 3185, "nodeType": "InheritanceSpecifier", - "src": "420:8:4" + "src": "530:8:6" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 2011, + "id": 3186, "name": "Ownable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6940, - "src": "430:7:4", + "referencedDeclaration": 9688, + "src": "540:7:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$6940", + "typeIdentifier": "t_contract$_Ownable_$9688", "typeString": "contract Ownable" } }, - "id": 2012, + "id": 3187, "nodeType": "InheritanceSpecifier", - "src": "430:7:4" + "src": "540:7:6" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 2013, + "id": 3188, "name": "ReentrancyGuard", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6690, - "src": "439:15:4", + "referencedDeclaration": 9331, + "src": "549:15:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_ReentrancyGuard_$6690", + "typeIdentifier": "t_contract$_ReentrancyGuard_$9331", "typeString": "contract ReentrancyGuard" } }, - "id": 2014, + "id": 3189, "nodeType": "InheritanceSpecifier", - "src": "439:15:4" + "src": "549:15:6" } ], "contractDependencies": [ - 4484, - 6509, - 6690, - 6940 + 1241, + 9070, + 9331, + 9688 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 2899, + "id": 4424, "linearizedBaseContracts": [ - 2899, - 6690, - 6940, - 4484, - 6509 + 4424, + 9331, + 9688, + 1241, + 9070 ], "name": "W12Fund", "nodeType": "ContractDefinition", "nodes": [ { - "id": 2017, + "id": 3192, "libraryName": { "contractScope": null, - "id": 2015, + "id": 3190, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6854, - "src": "467:8:4", + "referencedDeclaration": 9602, + "src": "577:8:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$6854", + "typeIdentifier": "t_contract$_SafeMath_$9602", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "461:24:4", + "src": "571:24:6", "typeName": { - "id": 2016, + "id": 3191, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "480:4:4", + "src": "590:4:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -757,26 +886,26 @@ } }, { - "id": 2020, + "id": 3195, "libraryName": { "contractScope": null, - "id": 2018, + "id": 3193, "name": "Percent", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4631, - "src": "496:7:4", + "referencedDeclaration": 5103, + "src": "606:7:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_Percent_$4631", + "typeIdentifier": "t_contract$_Percent_$5103", "typeString": "library Percent" } }, "nodeType": "UsingForDirective", - "src": "490:23:4", + "src": "600:23:6", "typeName": { - "id": 2019, + "id": 3194, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "508:4:4", + "src": "618:4:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -784,108 +913,327 @@ } }, { - "constant": false, - "id": 2022, - "name": "crowdsale", - "nodeType": "VariableDeclaration", - "scope": 2899, - "src": "519:30:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", - "typeString": "contract IW12Crowdsale" + "id": 3198, + "libraryName": { + "contractScope": null, + "id": 3196, + "name": "FundAccount", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4841, + "src": "634:11:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_FundAccount_$4841", + "typeString": "library FundAccount" + } }, + "nodeType": "UsingForDirective", + "src": "628:42:6", "typeName": { "contractScope": null, - "id": 2021, - "name": "IW12Crowdsale", + "id": 3197, + "name": "FundAccount.Account", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4426, - "src": "519:13:4", + "referencedDeclaration": 4698, + "src": "650:19:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", - "typeString": "contract IW12Crowdsale" + "typeIdentifier": "t_struct$_Account_$4698_storage_ptr", + "typeString": "struct FundAccount.Account" } - }, - "value": null, - "visibility": "public" + } }, { - "constant": false, - "id": 2024, - "name": "swap", + "constant": true, + "id": 3203, + "name": "METHOD_ETH", "nodeType": "VariableDeclaration", - "scope": 2899, - "src": "555:19:4", + "scope": 4424, + "src": "676:44:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" }, "typeName": { - "id": 2023, - "name": "address", + "id": 3199, + "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "555:7:4", + "src": "676:7:6", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, - "value": null, - "visibility": "public" + "value": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "455448", + "id": 3201, + "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": 3200, + "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": 3202, + "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": false, - "id": 2026, - "name": "serviceWallet", + "constant": true, + "id": 3208, + "name": "METHOD_USD", "nodeType": "VariableDeclaration", - "scope": 2899, - "src": "580:28:4", + "scope": 4424, + "src": "726:44:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" }, "typeName": { - "id": 2025, - "name": "address", + "id": 3204, + "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "580:7:4", + "src": "726:7:6", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, - "value": null, - "visibility": "public" + "value": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "555344", + "id": 3206, + "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": 3205, + "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": 3207, + "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": 2028, - "name": "wToken", + "id": 3210, + "name": "crowdsale", "nodeType": "VariableDeclaration", - "scope": 2899, - "src": "614:20:4", + "scope": 4424, + "src": "777:30:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", + "typeString": "contract IW12Crowdsale" }, "typeName": { "contractScope": null, - "id": 2027, - "name": "WToken", + "id": 3209, + "name": "IW12Crowdsale", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5925, - "src": "614:6:4", + "referencedDeclaration": 1204, + "src": "777:13:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", + "typeString": "contract IW12Crowdsale" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3212, + "name": "wToken", + "nodeType": "VariableDeclaration", + "scope": 4424, + "src": "813:21:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" + }, + "typeName": { + "contractScope": null, + "id": 3211, + "name": "IWToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7630, + "src": "813:7:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3214, + "name": "rates", + "nodeType": "VariableDeclaration", + "scope": 4424, + "src": "840:19:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + }, + "typeName": { + "contractScope": null, + "id": 3213, + "name": "IRates", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7015, + "src": "840:6:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3216, + "name": "swap", + "nodeType": "VariableDeclaration", + "scope": 4424, + "src": "865:19:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3215, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "865:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3218, + "name": "serviceWallet", + "nodeType": "VariableDeclaration", + "scope": 4424, + "src": "890:28:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3217, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "890:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" } }, "value": null, @@ -893,11 +1241,11 @@ }, { "constant": false, - "id": 2030, - "name": "tokenDecimals", + "id": 3220, + "name": "trancheFeePercent", "nodeType": "VariableDeclaration", - "scope": 2899, - "src": "640:25:4", + "scope": 4424, + "src": "956:29:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -905,10 +1253,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2029, + "id": 3219, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "640:4:4", + "src": "956:4:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -919,46 +1267,25 @@ }, { "constant": false, - "id": 2034, - "name": "buyers", + "id": 3222, + "name": "totalTranchePercentReleased", "nodeType": "VariableDeclaration", - "scope": 2899, - "src": "694:47:4", + "scope": 4424, + "src": "1040:39:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_TokenPriceInfo_$2053_storage_$", - "typeString": "mapping(address => struct W12Fund.TokenPriceInfo)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 2033, - "keyType": { - "id": 2031, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "703:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "694:33:4", + "id": 3221, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1040:4:6", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_TokenPriceInfo_$2053_storage_$", - "typeString": "mapping(address => struct W12Fund.TokenPriceInfo)" - }, - "valueType": { - "contractScope": null, - "id": 2032, - "name": "TokenPriceInfo", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2053, - "src": "712:14:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TokenPriceInfo_$2053_storage_ptr", - "typeString": "struct W12Fund.TokenPriceInfo" - } + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "value": null, @@ -966,11 +1293,11 @@ }, { "constant": false, - "id": 2038, + "id": 3226, "name": "completedTranches", "nodeType": "VariableDeclaration", - "scope": 2899, - "src": "747:47:4", + "scope": 4424, + "src": "1127:47:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -978,28 +1305,28 @@ "typeString": "mapping(uint256 => bool)" }, "typeName": { - "id": 2037, + "id": 3225, "keyType": { - "id": 2035, + "id": 3223, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "756:4:4", + "src": "1136:4:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Mapping", - "src": "747:22:4", + "src": "1127:22:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", "typeString": "mapping(uint256 => bool)" }, "valueType": { - "id": 2036, + "id": 3224, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "764:4:4", + "src": "1144:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1011,63 +1338,84 @@ }, { "constant": false, - "id": 2040, + "id": 3228, "name": "totalFunded", "nodeType": "VariableDeclaration", - "scope": 2899, - "src": "823:23:4", + "scope": 4424, + "src": "1208:31:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_struct$_Account_$4698_storage", + "typeString": "struct FundAccount.Account" }, "typeName": { - "id": 2039, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "823:4:4", + "contractScope": null, + "id": 3227, + "name": "FundAccount.Account", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4698, + "src": "1208:19:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_struct$_Account_$4698_storage_ptr", + "typeString": "struct FundAccount.Account" } }, "value": null, - "visibility": "public" + "visibility": "internal" }, { "constant": false, - "id": 2042, - "name": "totalRefunded", + "id": 3232, + "name": "totalFundedReleased", "nodeType": "VariableDeclaration", - "scope": 2899, - "src": "852:25:4", + "scope": 4424, + "src": "1373:44:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" }, "typeName": { - "id": 2041, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "852:4:4", + "id": 3231, + "keyType": { + "id": 3229, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1381:7:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "1373:24:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "valueType": { + "id": 3230, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1392:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } } }, "value": null, - "visibility": "public" + "visibility": "internal" }, { "constant": false, - "id": 2044, - "name": "totalTranchePercentReleased", + "id": 3234, + "name": "totalTokenBought", "nodeType": "VariableDeclaration", - "scope": 2899, - "src": "883:39:4", + "scope": 4424, + "src": "1459:28:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1075,10 +1423,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2043, + "id": 3233, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "883:4:4", + "src": "1459:4:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1089,11 +1437,11 @@ }, { "constant": false, - "id": 2046, - "name": "trancheFeePercent", + "id": 3236, + "name": "totalTokenRefunded", "nodeType": "VariableDeclaration", - "scope": 2899, - "src": "928:29:4", + "scope": 4424, + "src": "1531:30:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1101,10 +1449,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2045, + "id": 3235, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "928:4:4", + "src": "1531:4:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1114,112 +1462,115 @@ "visibility": "public" }, { - "canonicalName": "W12Fund.TokenPriceInfo", - "id": 2053, - "members": [ - { - "constant": false, - "id": 2048, - "name": "totalBought", - "nodeType": "VariableDeclaration", - "scope": 2053, - "src": "996:16:4", - "stateVariable": false, - "storageLocation": "default", + "constant": false, + "id": 3240, + "name": "tokenBoughtPerInvestor", + "nodeType": "VariableDeclaration", + "scope": 4424, + "src": "1616:48:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 3239, + "keyType": { + "id": 3237, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1625:7:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2047, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "996:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" + "typeIdentifier": "t_address", + "typeString": "address" + } }, - { - "constant": false, - "id": 2050, - "name": "averagePrice", - "nodeType": "VariableDeclaration", - "scope": 2053, - "src": "1022:17:4", - "stateVariable": false, - "storageLocation": "default", + "nodeType": "Mapping", + "src": "1616:25:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 3238, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1636:4:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" - }, - "typeName": { - "id": 2049, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1022:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3244, + "name": "fundedPerInvestor", + "nodeType": "VariableDeclaration", + "scope": 4424, + "src": "1714:58:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Account_$4698_storage_$", + "typeString": "mapping(address => struct FundAccount.Account)" + }, + "typeName": { + "id": 3243, + "keyType": { + "id": 3241, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1723:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } }, - { - "constant": false, - "id": 2052, - "name": "totalFunded", - "nodeType": "VariableDeclaration", - "scope": 2053, - "src": "1049:16:4", - "stateVariable": false, - "storageLocation": "default", + "nodeType": "Mapping", + "src": "1714:40:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Account_$4698_storage_$", + "typeString": "mapping(address => struct FundAccount.Account)" + }, + "valueType": { + "contractScope": null, + "id": 3242, + "name": "FundAccount.Account", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4698, + "src": "1734:19:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2051, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1049:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" + "typeIdentifier": "t_struct$_Account_$4698_storage_ptr", + "typeString": "struct FundAccount.Account" + } } - ], - "name": "TokenPriceInfo", - "nodeType": "StructDefinition", - "scope": 2899, - "src": "964:108:4", - "visibility": "public" + }, + "value": null, + "visibility": "internal" }, { "anonymous": false, "documentation": null, - "id": 2061, + "id": 3254, "name": "FundsReceived", "nodeType": "EventDefinition", "parameters": { - "id": 2060, + "id": 3253, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2055, + "id": 3246, "indexed": true, - "name": "buyer", + "name": "investor", "nodeType": "VariableDeclaration", - "scope": 2061, - "src": "1098:21:4", + "scope": 3254, + "src": "1799:24:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1227,10 +1578,10 @@ "typeString": "address" }, "typeName": { - "id": 2054, + "id": 3245, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1098:7:4", + "src": "1799:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1241,12 +1592,12 @@ }, { "constant": false, - "id": 2057, + "id": 3248, "indexed": false, - "name": "weiAmount", + "name": "tokenAmount", "nodeType": "VariableDeclaration", - "scope": 2061, - "src": "1121:14:4", + "scope": 3254, + "src": "1825:16:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1254,10 +1605,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2056, + "id": 3247, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1121:4:4", + "src": "1825:4:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1268,12 +1619,39 @@ }, { "constant": false, - "id": 2059, + "id": 3250, "indexed": false, - "name": "tokenAmount", + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 3254, + "src": "1843:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3249, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1843:7:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3252, + "indexed": false, + "name": "cost", "nodeType": "VariableDeclaration", - "scope": 2061, - "src": "1137:16:4", + "scope": 3254, + "src": "1859:9:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1281,10 +1659,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2058, + "id": 3251, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1137:4:4", + "src": "1859:4:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1294,28 +1672,28 @@ "visibility": "internal" } ], - "src": "1097:57:4" + "src": "1798:71:6" }, - "src": "1078:77:4" + "src": "1779:91:6" }, { "anonymous": false, "documentation": null, - "id": 2069, - "name": "FundsRefunded", + "id": 3262, + "name": "AssetRefunded", "nodeType": "EventDefinition", "parameters": { - "id": 2068, + "id": 3261, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2063, + "id": 3256, "indexed": true, - "name": "buyer", + "name": "investor", "nodeType": "VariableDeclaration", - "scope": 2069, - "src": "1180:21:4", + "scope": 3262, + "src": "1895:24:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1323,10 +1701,10 @@ "typeString": "address" }, "typeName": { - "id": 2062, + "id": 3255, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1180:7:4", + "src": "1895:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1337,26 +1715,26 @@ }, { "constant": false, - "id": 2065, + "id": 3258, "indexed": false, - "name": "weiAmount", + "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 2069, - "src": "1203:14:4", + "scope": 3262, + "src": "1921:14:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" }, "typeName": { - "id": 2064, - "name": "uint", + "id": 3257, + "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1203:4:4", + "src": "1921:7:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, "value": null, @@ -1364,12 +1742,12 @@ }, { "constant": false, - "id": 2067, + "id": 3260, "indexed": false, - "name": "tokenAmount", + "name": "amount", "nodeType": "VariableDeclaration", - "scope": 2069, - "src": "1219:16:4", + "scope": 3262, + "src": "1937:11:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1377,10 +1755,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2066, + "id": 3259, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1219:4:4", + "src": "1937:4:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1390,28 +1768,28 @@ "visibility": "internal" } ], - "src": "1179:57:4" + "src": "1894:55:6" }, - "src": "1160:77:4" + "src": "1875:75:6" }, { "anonymous": false, "documentation": null, - "id": 2075, - "name": "TrancheReleased", + "id": 3268, + "name": "TokenRefunded", "nodeType": "EventDefinition", "parameters": { - "id": 2074, + "id": 3267, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2071, + "id": 3264, "indexed": true, - "name": "receiver", + "name": "investor", "nodeType": "VariableDeclaration", - "scope": 2075, - "src": "1264:24:4", + "scope": 3268, + "src": "1975:24:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1419,10 +1797,10 @@ "typeString": "address" }, "typeName": { - "id": 2070, + "id": 3263, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1264:7:4", + "src": "1975:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1433,12 +1811,12 @@ }, { "constant": false, - "id": 2073, + "id": 3266, "indexed": false, - "name": "amount", + "name": "tokenAmount", "nodeType": "VariableDeclaration", - "scope": 2075, - "src": "1290:11:4", + "scope": 3268, + "src": "2001:16:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1446,10 +1824,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2072, + "id": 3265, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1290:4:4", + "src": "2001:4:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1459,27 +1837,192 @@ "visibility": "internal" } ], - "src": "1263:39:4" + "src": "1974:44:6" }, - "src": "1242:61:4" + "src": "1955:64:6" }, { - "body": { - "id": 2101, - "nodeType": "Block", - "src": "1388:147:4", - "statements": [ + "anonymous": false, + "documentation": null, + "id": 3276, + "name": "TrancheTransferred", + "nodeType": "EventDefinition", + "parameters": { + "id": 3275, + "nodeType": "ParameterList", + "parameters": [ { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "constant": false, + "id": 3270, + "indexed": true, + "name": "receiver", + "nodeType": "VariableDeclaration", + "scope": 3276, + "src": "2049:24:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3269, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2049:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3272, + "indexed": false, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 3276, + "src": "2075:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3271, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2075:7:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3274, + "indexed": false, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 3276, + "src": "2091:11:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3273, + "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": 3282, + "name": "TrancheReleased", + "nodeType": "EventDefinition", + "parameters": { + "id": 3281, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3278, + "indexed": true, + "name": "receiver", + "nodeType": "VariableDeclaration", + "scope": 3282, + "src": "2131:24:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3277, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2131:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3280, + "indexed": false, + "name": "percent", + "nodeType": "VariableDeclaration", + "scope": 3282, + "src": "2157:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3279, + "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": 3322, + "nodeType": "Block", + "src": "2271:210:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" }, - "id": 2094, + "id": 3303, "isConstant": false, "isLValue": false, "isPure": false, @@ -1491,32 +2034,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 2086, + "id": 3295, "name": "_trancheFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2079, - "src": "1406:18:4", + "referencedDeclaration": 3286, + "src": "2289:18:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2087, + "id": 3296, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isPercent", "nodeType": "MemberAccess", - "referencedDeclaration": 4586, - "src": "1406:28:4", + "referencedDeclaration": 5058, + "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": 2088, + "id": 3297, "isConstant": false, "isLValue": false, "isPure": false, @@ -1524,7 +2067,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1406:30:4", + "src": "2289:30:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1538,7 +2081,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2093, + "id": 3302, "isConstant": false, "isLValue": false, "isPure": false, @@ -1550,32 +2093,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 2089, + "id": 3298, "name": "_trancheFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2079, - "src": "1440:18:4", + "referencedDeclaration": 3286, + "src": "2323:18:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2090, + "id": 3299, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "fromPercent", "nodeType": "MemberAccess", - "referencedDeclaration": 4630, - "src": "1440:30:4", + "referencedDeclaration": 5102, + "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": 2091, + "id": 3300, "isConstant": false, "isLValue": false, "isPure": false, @@ -1583,7 +2126,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1440:32:4", + "src": "2323:32:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1594,14 +2137,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "313030", - "id": 2092, + "id": 3301, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1475:3:4", + "src": "2358:3:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_100_by_1", @@ -1609,13 +2152,145 @@ }, "value": "100" }, - "src": "1440:38:4", + "src": "2323:38:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "1406:72:4", + "src": "2289:72:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3294, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "2281:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2281:81:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3305, + "nodeType": "ExpressionStatement", + "src": "2281:81:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3311, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3307, + "name": "_rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3288, + "src": "2380:6:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3309, + "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": 3308, + "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": 3310, + "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" @@ -1629,21 +2304,21 @@ "typeString": "bool" } ], - "id": 2085, + "id": 3306, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "1398:7:4", + "referencedDeclaration": 10045, + "src": "2372:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2095, + "id": 3312, "isConstant": false, "isLValue": false, "isPure": false, @@ -1651,32 +2326,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1398:81:4", + "src": "2372:29:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2096, + "id": 3313, "nodeType": "ExpressionStatement", - "src": "1398:81:4" + "src": "2372:29:6" }, { "expression": { "argumentTypes": null, - "id": 2099, + "id": 3316, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2097, + "id": 3314, "name": "trancheFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2046, - "src": "1490:17:4", + "referencedDeclaration": 3220, + "src": "2412:17:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1686,82 +2361,128 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2098, + "id": 3315, "name": "_trancheFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2079, - "src": "1510:18:4", + "referencedDeclaration": 3286, + "src": "2432:18:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1490:38:4", + "src": "2412:38:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2100, + "id": 3317, "nodeType": "ExpressionStatement", - "src": "1490:38:4" - } - ] - }, - "documentation": null, - "id": 2102, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { + "src": "2412:38:6" + }, + { + "expression": { "argumentTypes": null, - "id": 2082, - "name": "version", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2077, - "src": "1372:7:4", - "typeDescriptions": { + "id": 3320, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3318, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3214, + "src": "2460:5:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3319, + "name": "_rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3288, + "src": "2468:6:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "src": "2460:14:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "id": 3321, + "nodeType": "ExpressionStatement", + "src": "2460:14:6" + } + ] + }, + "documentation": null, + "id": 3323, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 3291, + "name": "version", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3284, + "src": "2255:7:6", + "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 2083, + "id": 3292, "modifierName": { "argumentTypes": null, - "id": 2081, + "id": 3290, "name": "Versionable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6509, - "src": "1360:11:4", + "referencedDeclaration": 9070, + "src": "2243:11:6", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Versionable_$6509_$", + "typeIdentifier": "t_type$_t_contract$_Versionable_$9070_$", "typeString": "type(contract Versionable)" } }, "nodeType": "ModifierInvocation", - "src": "1360:20:4" + "src": "2243:20:6" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 2080, + "id": 3289, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2077, + "id": 3284, "name": "version", "nodeType": "VariableDeclaration", - "scope": 2102, - "src": "1321:12:4", + "scope": 3323, + "src": "2189:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1769,10 +2490,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2076, + "id": 3283, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1321:4:4", + "src": "2189:4:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1783,11 +2504,11 @@ }, { "constant": false, - "id": 2079, + "id": 3286, "name": "_trancheFeePercent", "nodeType": "VariableDeclaration", - "scope": 2102, - "src": "1335:23:4", + "scope": 3323, + "src": "2203:23:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1795,10 +2516,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2078, + "id": 3285, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1335:4:4", + "src": "2203:4:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1806,28 +2527,56 @@ }, "value": null, "visibility": "internal" + }, + { + "constant": false, + "id": 3288, + "name": "_rates", + "nodeType": "VariableDeclaration", + "scope": 3323, + "src": "2228:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + }, + "typeName": { + "contractScope": null, + "id": 3287, + "name": "IRates", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7015, + "src": "2228:6:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "value": null, + "visibility": "internal" } ], - "src": "1320:39:4" + "src": "2188:54:6" }, "payable": false, "returnParameters": { - "id": 2084, + "id": 3293, "nodeType": "ParameterList", "parameters": [], - "src": "1388:0:4" + "src": "2271:0:6" }, - "scope": 2899, - "src": "1309:226:4", + "scope": 4424, + "src": "2177:304:6", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2133, + "id": 3360, "nodeType": "Block", - "src": "1608:167:4", + "src": "2554:188:6", "statements": [ { "expression": { @@ -1839,21 +2588,21 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2114, + "id": 3335, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2110, + "id": 3331, "name": "_crowdsale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2104, - "src": "1626:10:4", + "referencedDeclaration": 3325, + "src": "2572:10:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } }, @@ -1865,14 +2614,179 @@ { "argumentTypes": null, "hexValue": "30", - "id": 2112, + "id": 3333, + "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": 3332, + "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": 3334, + "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": 3330, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "2564:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3336, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2564:33:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3337, + "nodeType": "ExpressionStatement", + "src": "2564:33:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 3339, + "name": "_crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3325, + "src": "2615:10:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", + "typeString": "contract IW12Crowdsale" + } + }, + "id": 3340, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getWToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 1112, + "src": "2615:20:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_IWToken_$7630_$", + "typeString": "function () view external returns (contract IWToken)" + } + }, + "id": 3341, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2615:22:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3343, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1648:1:4", + "src": "2649:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1888,20 +2802,20 @@ "typeString": "int_const 0" } ], - "id": 2111, + "id": 3342, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1640:7:4", + "src": "2641:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 2113, + "id": 3344, "isConstant": false, "isLValue": false, "isPure": true, @@ -1909,13 +2823,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1640:10:4", + "src": "2641:10:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1626:24:4", + "src": "2615:36:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1929,21 +2843,21 @@ "typeString": "bool" } ], - "id": 2109, + "id": 3338, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "1618:7:4", + "referencedDeclaration": 10045, + "src": "2607:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2115, + "id": 3346, "isConstant": false, "isLValue": false, "isPure": false, @@ -1951,34 +2865,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1618:33:4", + "src": "2607:45:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2116, + "id": 3347, "nodeType": "ExpressionStatement", - "src": "1618:33:4" + "src": "2607:45:6" }, { "expression": { "argumentTypes": null, - "id": 2119, + "id": 3350, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2117, + "id": 3348, "name": "crowdsale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2022, - "src": "1662:9:4", + "referencedDeclaration": 3210, + "src": "2663:9:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } }, @@ -1986,241 +2900,198 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2118, + "id": 3349, "name": "_crowdsale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2104, - "src": "1674:10:4", + "referencedDeclaration": 3325, + "src": "2675:10:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } }, - "src": "1662:22:4", + "src": "2663:22:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } }, - "id": 2120, + "id": 3351, "nodeType": "ExpressionStatement", - "src": "1662:22:4" + "src": "2663:22:6" }, { "expression": { "argumentTypes": null, - "id": 2125, + "id": 3358, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2121, + "id": 3352, "name": "wToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2028, - "src": "1694:6:4", + "referencedDeclaration": 3212, + "src": "2695:6:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { + "arguments": [ + { "argumentTypes": null, - "id": 2122, - "name": "_crowdsale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2104, - "src": "1703:10:4", + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 3354, + "name": "_crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3325, + "src": "2712:10:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", + "typeString": "contract IW12Crowdsale" + } + }, + "id": 3355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getWToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 1112, + "src": "2712:20:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_IWToken_$7630_$", + "typeString": "function () view external returns (contract IWToken)" + } + }, + "id": 3356, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2712:22:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", - "typeString": "contract IW12Crowdsale" + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" } - }, - "id": 2123, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getWToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 4335, - "src": "1703:20:4", + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" + } + ], + "id": 3353, + "name": "IWToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7630, + "src": "2704:7:6", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_WToken_$5925_$", - "typeString": "function () view external returns (contract WToken)" + "typeIdentifier": "t_type$_t_contract$_IWToken_$7630_$", + "typeString": "type(contract IWToken)" } }, - "id": 2124, + "id": 3357, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", + "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1703:22:4", + "src": "2704:31:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" } }, - "src": "1694:31:4", + "src": "2695:40:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" } }, - "id": 2126, + "id": 3359, "nodeType": "ExpressionStatement", - "src": "1694:31:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 2131, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2127, - "name": "tokenDecimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2030, - "src": "1735:13:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 2128, - "name": "wToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2028, - "src": "1751:6:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" - } - }, - "id": 2129, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "decimals", - "nodeType": "MemberAccess", - "referencedDeclaration": 6951, - "src": "1751:15:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", - "typeString": "function () view external returns (uint8)" - } - }, - "id": 2130, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1751:17:4", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "1735:33:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2132, - "nodeType": "ExpressionStatement", - "src": "1735:33:4" + "src": "2695:40:6" } ] }, "documentation": null, - "id": 2134, + "id": 3361, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 2107, + "id": 3328, "modifierName": { "argumentTypes": null, - "id": 2106, + "id": 3327, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6888, - "src": "1589:9:4", + "referencedDeclaration": 9636, + "src": "2535:9:6", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1589:9:4" + "src": "2535:9:6" } ], "name": "setCrowdsale", "nodeType": "FunctionDefinition", "parameters": { - "id": 2105, + "id": 3326, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2104, + "id": 3325, "name": "_crowdsale", "nodeType": "VariableDeclaration", - "scope": 2134, - "src": "1563:24:4", + "scope": 3361, + "src": "2509:24:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" }, "typeName": { "contractScope": null, - "id": 2103, + "id": 3324, "name": "IW12Crowdsale", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4426, - "src": "1563:13:4", + "referencedDeclaration": 1204, + "src": "2509:13:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } }, @@ -2228,26 +3099,26 @@ "visibility": "internal" } ], - "src": "1562:26:4" + "src": "2508:26:6" }, "payable": false, "returnParameters": { - "id": 2108, + "id": 3329, "nodeType": "ParameterList", "parameters": [], - "src": "1608:0:4" + "src": "2554:0:6" }, - "scope": 2899, - "src": "1541:234:4", + "scope": 4424, + "src": "2487:255:6", "stateMutability": "nonpayable", - "superFunction": 4461, + "superFunction": 1212, "visibility": "external" }, { "body": { - "id": 2153, + "id": 3380, "nodeType": "Block", - "src": "1832:68:4", + "src": "2799:68:6", "statements": [ { "expression": { @@ -2259,19 +3130,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2146, + "id": 3373, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2142, + "id": 3369, "name": "_swap", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2136, - "src": "1850:5:4", + "referencedDeclaration": 3363, + "src": "2817:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2285,14 +3156,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 2144, + "id": 3371, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1867:1:4", + "src": "2834:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2308,20 +3179,20 @@ "typeString": "int_const 0" } ], - "id": 2143, + "id": 3370, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1859:7:4", + "src": "2826:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 2145, + "id": 3372, "isConstant": false, "isLValue": false, "isPure": true, @@ -2329,13 +3200,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1859:10:4", + "src": "2826:10:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1850:19:4", + "src": "2817:19:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2349,21 +3220,21 @@ "typeString": "bool" } ], - "id": 2141, + "id": 3368, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "1842:7:4", + "referencedDeclaration": 10045, + "src": "2809:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2147, + "id": 3374, "isConstant": false, "isLValue": false, "isPure": false, @@ -2371,32 +3242,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1842:28:4", + "src": "2809:28:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2148, + "id": 3375, "nodeType": "ExpressionStatement", - "src": "1842:28:4" + "src": "2809:28:6" }, { "expression": { "argumentTypes": null, - "id": 2151, + "id": 3378, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2149, + "id": 3376, "name": "swap", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2024, - "src": "1881:4:4", + "referencedDeclaration": 3216, + "src": "2848:4:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2406,68 +3277,68 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2150, + "id": 3377, "name": "_swap", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2136, - "src": "1888:5:4", + "referencedDeclaration": 3363, + "src": "2855:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1881:12:4", + "src": "2848:12:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2152, + "id": 3379, "nodeType": "ExpressionStatement", - "src": "1881:12:4" + "src": "2848:12:6" } ] }, "documentation": null, - "id": 2154, + "id": 3381, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 2139, + "id": 3366, "modifierName": { "argumentTypes": null, - "id": 2138, + "id": 3365, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6888, - "src": "1813:9:4", + "referencedDeclaration": 9636, + "src": "2780:9:6", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1813:9:4" + "src": "2780:9:6" } ], "name": "setSwap", "nodeType": "FunctionDefinition", "parameters": { - "id": 2137, + "id": 3364, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2136, + "id": 3363, "name": "_swap", "nodeType": "VariableDeclaration", - "scope": 2154, - "src": "1798:13:4", + "scope": 3381, + "src": "2765:13:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2475,10 +3346,10 @@ "typeString": "address" }, "typeName": { - "id": 2135, + "id": 3362, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1798:7:4", + "src": "2765:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2488,26 +3359,26 @@ "visibility": "internal" } ], - "src": "1797:15:4" + "src": "2764:15:6" }, "payable": false, "returnParameters": { - "id": 2140, + "id": 3367, "nodeType": "ParameterList", "parameters": [], - "src": "1832:0:4" + "src": "2799:0:6" }, - "scope": 2899, - "src": "1781:119:4", + "scope": 4424, + "src": "2748:119:6", "stateMutability": "nonpayable", - "superFunction": 4471, + "superFunction": 1222, "visibility": "external" }, { "body": { - "id": 2173, + "id": 3400, "nodeType": "Block", - "src": "1975:95:4", + "src": "2942:95:6", "statements": [ { "expression": { @@ -2519,19 +3390,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2166, + "id": 3393, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2162, + "id": 3389, "name": "_serviceWallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2156, - "src": "1993:14:4", + "referencedDeclaration": 3383, + "src": "2960:14:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2545,14 +3416,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 2164, + "id": 3391, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2019:1:4", + "src": "2986:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2568,20 +3439,20 @@ "typeString": "int_const 0" } ], - "id": 2163, + "id": 3390, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2011:7:4", + "src": "2978:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 2165, + "id": 3392, "isConstant": false, "isLValue": false, "isPure": true, @@ -2589,13 +3460,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2011:10:4", + "src": "2978:10:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1993:28:4", + "src": "2960:28:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2609,21 +3480,21 @@ "typeString": "bool" } ], - "id": 2161, + "id": 3388, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "1985:7:4", + "referencedDeclaration": 10045, + "src": "2952:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2167, + "id": 3394, "isConstant": false, "isLValue": false, "isPure": false, @@ -2631,32 +3502,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1985:37:4", + "src": "2952:37:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2168, + "id": 3395, "nodeType": "ExpressionStatement", - "src": "1985:37:4" + "src": "2952:37:6" }, { "expression": { "argumentTypes": null, - "id": 2171, + "id": 3398, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2169, + "id": 3396, "name": "serviceWallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2026, - "src": "2033:13:4", + "referencedDeclaration": 3218, + "src": "3000:13:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2666,68 +3537,68 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2170, + "id": 3397, "name": "_serviceWallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2156, - "src": "2049:14:4", + "referencedDeclaration": 3383, + "src": "3016:14:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2033:30:4", + "src": "3000:30:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2172, + "id": 3399, "nodeType": "ExpressionStatement", - "src": "2033:30:4" + "src": "3000:30:6" } ] }, "documentation": null, - "id": 2174, + "id": 3401, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 2159, + "id": 3386, "modifierName": { "argumentTypes": null, - "id": 2158, + "id": 3385, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6888, - "src": "1956:9:4", + "referencedDeclaration": 9636, + "src": "2923:9:6", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1956:9:4" + "src": "2923:9:6" } ], "name": "setServiceWallet", "nodeType": "FunctionDefinition", "parameters": { - "id": 2157, + "id": 3384, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2156, + "id": 3383, "name": "_serviceWallet", "nodeType": "VariableDeclaration", - "scope": 2174, - "src": "1932:22:4", + "scope": 3401, + "src": "2899:22:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2735,10 +3606,10 @@ "typeString": "address" }, "typeName": { - "id": 2155, + "id": 3382, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1932:7:4", + "src": "2899:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2748,26 +3619,26 @@ "visibility": "internal" } ], - "src": "1931:24:4" + "src": "2898:24:6" }, "payable": false, "returnParameters": { - "id": 2160, + "id": 3387, "nodeType": "ParameterList", "parameters": [], - "src": "1975:0:4" + "src": "2942:0:6" }, - "scope": 2899, - "src": "1906:164:4", + "scope": 4424, + "src": "2873:164:6", "stateMutability": "nonpayable", - "superFunction": 4466, + "superFunction": 1217, "visibility": "external" }, { "body": { - "id": 2261, + "id": 3547, "nodeType": "Block", - "src": "2170:465:4", + "src": "3547:991:6", "statements": [ { "expression": { @@ -2779,19 +3650,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2187, + "id": 3420, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2185, + "id": 3418, "name": "tokenAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2178, - "src": "2188:11:4", + "referencedDeclaration": 3405, + "src": "3565:11:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2802,14 +3673,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2186, + "id": 3419, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2202:1:4", + "src": "3579:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2817,7 +3688,7 @@ }, "value": "0" }, - "src": "2188:15:4", + "src": "3565:15:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2831,21 +3702,21 @@ "typeString": "bool" } ], - "id": 2184, + "id": 3417, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "2180:7:4", + "referencedDeclaration": 10045, + "src": "3557:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2188, + "id": 3421, "isConstant": false, "isLValue": false, "isPure": false, @@ -2853,15 +3724,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2180:24:4", + "src": "3557:24:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2189, + "id": 3422, "nodeType": "ExpressionStatement", - "src": "2180:24:4" + "src": "3557:24:6" }, { "expression": { @@ -2873,35 +3744,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2194, + "id": 3426, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2191, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "2222:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2222:9:4", + "id": 3424, + "name": "cost", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3409, + "src": "3599:4:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2912,14 +3767,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2193, + "id": 3425, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2234:1:4", + "src": "3606:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2927,7 +3782,7 @@ }, "value": "0" }, - "src": "2222:13:4", + "src": "3599:8:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2941,21 +3796,21 @@ "typeString": "bool" } ], - "id": 2190, + "id": 3423, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "2214:7:4", + "referencedDeclaration": 10045, + "src": "3591:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2195, + "id": 3427, "isConstant": false, "isLValue": false, "isPure": false, @@ -2963,749 +3818,1043 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2214:22:4", + "src": "3591:17:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2196, + "id": 3428, "nodeType": "ExpressionStatement", - "src": "2214:22:4" + "src": "3591:17:6" }, { "expression": { "argumentTypes": null, - "id": 2208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { + "arguments": [ + { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2197, - "name": "buyers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2034, - "src": "2247:6:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_TokenPriceInfo_$2053_storage_$", - "typeString": "mapping(address => struct W12Fund.TokenPriceInfo storage ref)" - } - }, - "id": 2199, - "indexExpression": { - "argumentTypes": null, - "id": 2198, - "name": "buyer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2176, - "src": "2254:5:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, + "id": 3432, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2247:13:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TokenPriceInfo_$2053_storage", - "typeString": "struct W12Fund.TokenPriceInfo storage ref" - } - }, - "id": 2200, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "totalBought", - "nodeType": "MemberAccess", - "referencedDeclaration": 2048, - "src": "2247:25:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { + "leftExpression": { "argumentTypes": null, - "id": 2206, - "name": "tokenAmount", + "id": 3430, + "name": "costUSD", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2178, - "src": "2305:11:4", + "referencedDeclaration": 3411, + "src": "3626:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2201, - "name": "buyers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2034, - "src": "2275:6:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_TokenPriceInfo_$2053_storage_$", - "typeString": "mapping(address => struct W12Fund.TokenPriceInfo storage ref)" - } - }, - "id": 2203, - "indexExpression": { - "argumentTypes": null, - "id": 2202, - "name": "buyer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2176, - "src": "2282:5:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2275:13:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TokenPriceInfo_$2053_storage", - "typeString": "struct W12Fund.TokenPriceInfo storage ref" - } - }, - "id": 2204, + "hexValue": "30", + "id": 3431, "isConstant": false, - "isLValue": true, - "isPure": false, + "isLValue": false, + "isPure": true, + "kind": "number", "lValueRequested": false, - "memberName": "totalBought", - "nodeType": "MemberAccess", - "referencedDeclaration": 2048, - "src": "2275:25:4", + "nodeType": "Literal", + "src": "3636:1:6", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" }, - "id": 2205, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 6853, - "src": "2275:29:4", + "src": "3626:11: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)" + "typeIdentifier": "t_bool", + "typeString": "bool" } - }, - "id": 2207, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2275:42:4", + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3429, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "3618:7:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" } }, - "src": "2247:70:4", + "id": 3433, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3618:20:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 2209, + "id": 3434, "nodeType": "ExpressionStatement", - "src": "2247:70:4" + "src": "3618:20:6" }, { "expression": { "argumentTypes": null, - "id": 2222, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { + "arguments": [ + { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2210, - "name": "buyers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2034, - "src": "2327:6:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_TokenPriceInfo_$2053_storage_$", - "typeString": "mapping(address => struct W12Fund.TokenPriceInfo storage ref)" - } + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" }, - "id": 2212, - "indexExpression": { + "id": 3440, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, - "id": 2211, - "name": "buyer", + "id": 3436, + "name": "investor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2176, - "src": "2334:5:4", + "referencedDeclaration": 3403, + "src": "3656:8:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2327:13:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TokenPriceInfo_$2053_storage", - "typeString": "struct W12Fund.TokenPriceInfo storage ref" - } - }, - "id": 2213, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "totalFunded", - "nodeType": "MemberAccess", - "referencedDeclaration": 2052, - "src": "2327:25:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3438, + "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": null, - "id": 2219, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "2385:3:4", + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3437, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3668:7:6", "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, - "id": 2220, + "id": 3439, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "typeConversion", "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2385:9:4", + "names": [], + "nodeType": "FunctionCall", + "src": "3668:10:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } + }, + "src": "3656:22:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" } ], - "expression": { - "argumentTypes": [ + "id": 3435, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "3648:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3648:31:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3442, + "nodeType": "ExpressionStatement", + "src": "3648:31:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "argumentTypes": null, + "id": 3446, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3407, + "src": "3713:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } } ], "expression": { - "argumentTypes": null, + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], "expression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2214, - "name": "buyers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2034, - "src": "2355:6:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_TokenPriceInfo_$2053_storage_$", - "typeString": "mapping(address => struct W12Fund.TokenPriceInfo storage ref)" - } - }, - "id": 2216, - "indexExpression": { - "argumentTypes": null, - "id": 2215, - "name": "buyer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2176, - "src": "2362:5:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2355:13:4", + "id": 3444, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3214, + "src": "3697:5:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_TokenPriceInfo_$2053_storage", - "typeString": "struct W12Fund.TokenPriceInfo storage ref" + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" } }, - "id": 2217, + "id": 3445, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "totalFunded", + "memberName": "hasSymbol", "nodeType": "MemberAccess", - "referencedDeclaration": 2052, - "src": "2355:25:4", + "referencedDeclaration": 7037, + "src": "3697:15:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (bytes32) view external returns (bool)" } }, - "id": 2218, + "id": 3447, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 6853, - "src": "2355:29:4", + "names": [], + "nodeType": "FunctionCall", + "src": "3697:23: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)" + "typeIdentifier": "t_bool", + "typeString": "bool" } - }, - "id": 2221, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2355:40:4", + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3443, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "3689:7:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" } }, - "src": "2327:68:4", + "id": 3448, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3689:32:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 2223, + "id": 3449, "nodeType": "ExpressionStatement", - "src": "2327:68:4" + "src": "3689:32:6" }, { - "expression": { + "condition": { "argumentTypes": null, - "id": 2244, + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 3452, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftHandSide": { + "leftExpression": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2224, - "name": "buyers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2034, - "src": "2405:6:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_TokenPriceInfo_$2053_storage_$", - "typeString": "mapping(address => struct W12Fund.TokenPriceInfo storage ref)" - } - }, - "id": 2226, - "indexExpression": { - "argumentTypes": null, - "id": 2225, - "name": "buyer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2176, - "src": "2412:5:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2405:13:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TokenPriceInfo_$2053_storage", - "typeString": "struct W12Fund.TokenPriceInfo storage ref" - } - }, - "id": 2227, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "averagePrice", - "nodeType": "MemberAccess", - "referencedDeclaration": 2050, - "src": "2405:26:4", + "id": 3450, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3407, + "src": "3761:6:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { "argumentTypes": null, - "arguments": [ - { + "id": 3451, + "name": "METHOD_ETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3203, + "src": "3771:10:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "3761:20:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 3490, + "nodeType": "Block", + "src": "3841:181:6", + "statements": [ + { + "expression": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { + "arguments": [ + { "argumentTypes": null, - "id": 2239, - "name": "buyers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2034, - "src": "2491:6:4", + "arguments": [ + { + "argumentTypes": null, + "id": 3464, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3407, + "src": "3877:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 3462, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3214, + "src": "3863:5:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "id": 3463, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 6992, + "src": "3863:13:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (bytes32) view external returns (bool)" + } + }, + "id": 3465, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3863:21:6", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_TokenPriceInfo_$2053_storage_$", - "typeString": "mapping(address => struct W12Fund.TokenPriceInfo storage ref)" + "typeIdentifier": "t_bool", + "typeString": "bool" } - }, - "id": 2241, - "indexExpression": { - "argumentTypes": null, - "id": 2240, - "name": "buyer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2176, - "src": "2498:5:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2491:13:4", + ], + "id": 3461, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "3855:7:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_TokenPriceInfo_$2053_storage", - "typeString": "struct W12Fund.TokenPriceInfo storage ref" + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" } }, - "id": 2242, + "id": 3466, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "memberName": "totalBought", - "nodeType": "MemberAccess", - "referencedDeclaration": 2048, - "src": "2491:25:4", + "names": [], + "nodeType": "FunctionCall", + "src": "3855:30:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } - ], + }, + "id": 3467, + "nodeType": "ExpressionStatement", + "src": "3855:30:6" + }, + { "expression": { "argumentTypes": null, - "components": [ + "arguments": [ { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { "argumentTypes": null, - "hexValue": "3130", - "id": 2233, + "arguments": [ + { + "argumentTypes": null, + "id": 3477, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10117, + "src": "3962:4:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_W12Fund_$4424", + "typeString": "contract W12Fund" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_W12Fund_$4424", + "typeString": "contract W12Fund" + } + ], + "id": 3476, + "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": 3478, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "number", + "isPure": false, + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "2465:2:4", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "3954:13:6", "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3472, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3407, + "src": "3935:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 3470, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3214, + "src": "3913:5:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "id": 3471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getTokenAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 6985, + "src": "3913:21:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view external returns (address)" + } + }, + "id": 3473, + "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": 3469, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9765, + "src": "3907:5:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$9765_$", + "typeString": "type(contract ERC20)" + } }, - "value": "10" + "id": 3474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3907:36:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$9765", + "typeString": "contract ERC20" + } }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { + "id": 3475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 9779, + "src": "3907:46:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 3479, + "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": 2234, - "name": "tokenDecimals", + "id": 3485, + "name": "cost", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2030, - "src": "2471:13:4", + "referencedDeclaration": 3409, + "src": "4005:4:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "src": "2465:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" } ], "expression": { - "argumentTypes": null, + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], "expression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2228, - "name": "buyers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2034, - "src": "2435:6:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_TokenPriceInfo_$2053_storage_$", - "typeString": "mapping(address => struct W12Fund.TokenPriceInfo storage ref)" + "arguments": [ + { + "argumentTypes": null, + "id": 3482, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3407, + "src": "3993:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } } - }, - "id": 2230, - "indexExpression": { - "argumentTypes": null, - "id": 2229, - "name": "buyer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2176, - "src": "2442:5:4", + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 3480, + "name": "totalFunded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3228, + "src": "3972:11:6", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage", + "typeString": "struct FundAccount.Account storage ref" + } + }, + "id": 3481, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amountOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 4797, + "src": "3972:20:6", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_function_internal_view$_t_struct$_Account_$4698_storage_ptr_$_t_bytes32_$returns$_t_uint256_$bound_to$_t_struct$_Account_$4698_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer,bytes32) view returns (uint256)" } }, + "id": 3483, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2435:13:4", + "names": [], + "nodeType": "FunctionCall", + "src": "3972:28:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_TokenPriceInfo_$2053_storage", - "typeString": "struct W12Fund.TokenPriceInfo storage ref" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 2231, + "id": 3484, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "totalFunded", + "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 2052, - "src": "2435:25:4", + "referencedDeclaration": 9601, + "src": "3972:32:6", "typeDescriptions": { - "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": 2232, + "id": 3486, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 6795, - "src": "2435:29:4", + "names": [], + "nodeType": "FunctionCall", + "src": "3972: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)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 2236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2435:50:4", + "src": "3907:103:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } } ], - "id": 2237, + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3468, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "3899:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3488, "isConstant": false, - "isInlineArray": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "2434:52:4", + "names": [], + "nodeType": "FunctionCall", + "src": "3899:112:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 2238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 6809, - "src": "2434:56:4", - "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": 2243, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2434:83:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "id": 3489, + "nodeType": "ExpressionStatement", + "src": "3899:112:6" } - }, - "src": "2405:112:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + ] }, - "id": 2245, - "nodeType": "ExpressionStatement", - "src": "2405:112:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 2252, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2246, - "name": "totalFunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2040, - "src": "2528:11:4", + "id": 3491, + "nodeType": "IfStatement", + "src": "3757:265:6", + "trueBody": { + "id": 3460, + "nodeType": "Block", + "src": "3784:51:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3457, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3454, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10042, + "src": "3806:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3455, + "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": 3456, + "name": "cost", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3409, + "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": 3453, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "3798:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3458, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3798:26:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3459, + "nodeType": "ExpressionStatement", + "src": "3798:26:6" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 3501, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3492, + "name": "tokenBoughtPerInvestor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3240, + "src": "4069:22:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3494, + "indexExpression": { + "argumentTypes": null, + "id": 3493, + "name": "investor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3403, + "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" @@ -3718,28 +4867,12 @@ "arguments": [ { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2249, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "2558:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2250, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2558:9:4", + "id": 3499, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3405, + "src": "4141:11:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3755,32 +4888,59 @@ ], "expression": { "argumentTypes": null, - "id": 2247, - "name": "totalFunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2040, - "src": "2542:11:4", + "baseExpression": { + "argumentTypes": null, + "id": 3495, + "name": "tokenBoughtPerInvestor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3240, + "src": "4104:22:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3497, + "indexExpression": { + "argumentTypes": null, + "id": 3496, + "name": "investor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3403, + "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": 2248, + "id": 3498, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 6853, - "src": "2542:15:4", + "referencedDeclaration": 9601, + "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": 2251, + "id": 3500, "isConstant": false, "isLValue": false, "isPure": false, @@ -3788,76 +4948,47 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2542:26:4", + "src": "4104:49:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2528:40:4", + "src": "4069:84:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2253, + "id": 3502, "nodeType": "ExpressionStatement", - "src": "2528:40:4" + "src": "4069:84:6" }, { - "eventCall": { + "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 2255, - "name": "buyer", + "id": 3507, + "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2176, - "src": "2598:5:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2256, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "2605:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2257, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2605:9:4", + "referencedDeclaration": 3407, + "src": "4199:6:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, { "argumentTypes": null, - "id": 2258, - "name": "tokenAmount", + "id": 3508, + "name": "cost", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2178, - "src": "2616:11:4", + "referencedDeclaration": 3409, + "src": "4207:4:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3867,30 +4998,69 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], - "id": 2254, - "name": "FundsReceived", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2061, - "src": "2584:13:4", + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3503, + "name": "fundedPerInvestor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3244, + "src": "4163:17:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Account_$4698_storage_$", + "typeString": "mapping(address => struct FundAccount.Account storage ref)" + } + }, + "id": 3505, + "indexExpression": { + "argumentTypes": null, + "id": 3504, + "name": "investor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3403, + "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_$4698_storage", + "typeString": "struct FundAccount.Account storage ref" + } + }, + "id": 3506, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "deposit", + "nodeType": "MemberAccess", + "referencedDeclaration": 4727, + "src": "4163:35:6", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256,uint256)" + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Account_$4698_storage_ptr_$_t_bytes32_$_t_uint256_$returns$__$bound_to$_t_struct$_Account_$4698_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer,bytes32,uint256)" } }, - "id": 2259, + "id": 3509, "isConstant": false, "isLValue": false, "isPure": false, @@ -3898,253 +5068,113 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2584:44:4", + "src": "4163:49:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2260, - "nodeType": "EmitStatement", - "src": "2579:49:4" - } - ] - }, - "documentation": null, - "id": 2262, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 2181, - "name": "crowdsale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2022, - "src": "2159:9:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", - "typeString": "contract IW12Crowdsale" - } - } - ], - "id": 2182, - "modifierName": { - "argumentTypes": null, - "id": 2180, - "name": "onlyFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2898, - "src": "2150:8:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } + "id": 3510, + "nodeType": "ExpressionStatement", + "src": "4163:49:6" }, - "nodeType": "ModifierInvocation", - "src": "2150:19:4" - } - ], - "name": "recordPurchase", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2179, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2176, - "name": "buyer", - "nodeType": "VariableDeclaration", - "scope": 2262, - "src": "2100:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2175, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2100:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2178, - "name": "tokenAmount", - "nodeType": "VariableDeclaration", - "scope": 2262, - "src": "2115:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2177, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2115:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2099:33:4" - }, - "payable": true, - "returnParameters": { - "id": 2183, - "nodeType": "ParameterList", - "parameters": [], - "src": "2170:0:4" - }, - "scope": 2899, - "src": "2076:559:4", - "stateMutability": "payable", - "superFunction": 4483, - "visibility": "external" - }, - { - "body": { - "id": 2289, - "nodeType": "Block", - "src": "2755:118:4", - "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" + "id": 3515, + "name": "METHOD_USD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3208, + "src": "4258:10:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 3516, + "name": "costUSD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3411, + "src": "4270:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" }, - "id": 2276, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { "argumentTypes": null, - "id": 2272, - "name": "buyer", + "id": 3511, + "name": "fundedPerInvestor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2264, - "src": "2773:5:4", + "referencedDeclaration": 3244, + "src": "4222:17:6", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Account_$4698_storage_$", + "typeString": "mapping(address => struct FundAccount.Account storage ref)" } }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { + "id": 3513, + "indexExpression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2274, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2790:1:4", - "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": 2273, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2782:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2275, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2782:10:4", + "id": 3512, + "name": "investor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3403, + "src": "4240:8:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2773:19:4", + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4222:27:6", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_struct$_Account_$4698_storage", + "typeString": "struct FundAccount.Account storage ref" } - ], - "id": 2271, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 7297, - 7298 - ], - "referencedDeclaration": 7297, - "src": "2765:7:4", + }, + "id": 3514, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "deposit", + "nodeType": "MemberAccess", + "referencedDeclaration": 4727, + "src": "4222:35:6", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Account_$4698_storage_ptr_$_t_bytes32_$_t_uint256_$returns$__$bound_to$_t_struct$_Account_$4698_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer,bytes32,uint256)" } }, - "id": 2277, + "id": 3517, "isConstant": false, "isLValue": false, "isPure": false, @@ -4152,172 +5182,448 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2765:28:4", + "src": "4222:56:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2278, + "id": 3518, "nodeType": "ExpressionStatement", - "src": "2765:28:4" + "src": "4222:56:6" }, { "expression": { "argumentTypes": null, - "components": [ - { - "argumentTypes": null, + "id": 3524, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3519, + "name": "totalTokenBought", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3234, + "src": "4320:16:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3522, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3405, + "src": "4360:11:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], "expression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2279, - "name": "buyers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2034, - "src": "2812:6:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_TokenPriceInfo_$2053_storage_$", - "typeString": "mapping(address => struct W12Fund.TokenPriceInfo storage ref)" - } - }, - "id": 2281, - "indexExpression": { - "argumentTypes": null, - "id": 2280, - "name": "buyer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2264, - "src": "2819:5:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2812:13:4", + "id": 3520, + "name": "totalTokenBought", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3234, + "src": "4339:16:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_TokenPriceInfo_$2053_storage", - "typeString": "struct W12Fund.TokenPriceInfo storage ref" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 2282, + "id": 3521, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "totalBought", + "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 2048, - "src": "2812:25:4", + "referencedDeclaration": 9601, + "src": "4339:20:6", "typeDescriptions": { - "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)" } }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2283, - "name": "buyers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2034, - "src": "2839:6:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_TokenPriceInfo_$2053_storage_$", - "typeString": "mapping(address => struct W12Fund.TokenPriceInfo storage ref)" - } - }, - "id": 2285, - "indexExpression": { - "argumentTypes": null, - "id": 2284, - "name": "buyer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2264, - "src": "2846:5:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2839:13:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TokenPriceInfo_$2053_storage", - "typeString": "struct W12Fund.TokenPriceInfo storage ref" - } + "id": 3523, + "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": 3525, + "nodeType": "ExpressionStatement", + "src": "4320:52:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3529, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3407, + "src": "4402:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 3530, + "name": "cost", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3409, + "src": "4410:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" }, - "id": 2286, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "averagePrice", - "nodeType": "MemberAccess", - "referencedDeclaration": 2050, - "src": "2839:26:4", + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 3526, + "name": "totalFunded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3228, + "src": "4382:11:6", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage", + "typeString": "struct FundAccount.Account storage ref" + } + }, + "id": 3528, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "deposit", + "nodeType": "MemberAccess", + "referencedDeclaration": 4727, + "src": "4382:19:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Account_$4698_storage_ptr_$_t_bytes32_$_t_uint256_$returns$__$bound_to$_t_struct$_Account_$4698_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer,bytes32,uint256)" + } + }, + "id": 3531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4382:33:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3532, + "nodeType": "ExpressionStatement", + "src": "4382:33:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3536, + "name": "METHOD_USD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3208, + "src": "4445:10:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 3537, + "name": "costUSD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3411, + "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": 3533, + "name": "totalFunded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3228, + "src": "4425:11:6", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage", + "typeString": "struct FundAccount.Account storage ref" + } + }, + "id": 3535, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "deposit", + "nodeType": "MemberAccess", + "referencedDeclaration": 4727, + "src": "4425:19:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Account_$4698_storage_ptr_$_t_bytes32_$_t_uint256_$returns$__$bound_to$_t_struct$_Account_$4698_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer,bytes32,uint256)" + } + }, + "id": 3538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4425:40:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3539, + "nodeType": "ExpressionStatement", + "src": "4425:40:6" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3541, + "name": "investor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3403, + "src": "4495:8:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3542, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3405, + "src": "4505:11:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3543, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3407, + "src": "4518:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 3544, + "name": "cost", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3409, + "src": "4526:4:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 2287, + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3540, + "name": "FundsReceived", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3254, + "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": 3545, "isConstant": false, - "isInlineArray": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "2811:55:4", + "names": [], + "nodeType": "FunctionCall", + "src": "4481:50:6", "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "functionReturnParameters": 2270, - "id": 2288, - "nodeType": "Return", - "src": "2804:62:4" + "id": 3546, + "nodeType": "EmitStatement", + "src": "4476:55:6" } ] }, - "documentation": null, - "id": 2290, + "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": 3548, "implemented": true, "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getInvestmentsInfo", + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 3414, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3210, + "src": "3532:9:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", + "typeString": "contract IW12Crowdsale" + } + } + ], + "id": 3415, + "modifierName": { + "argumentTypes": null, + "id": 3413, + "name": "onlyFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4423, + "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": 2265, + "id": 3412, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2264, - "name": "buyer", + "id": 3403, + "name": "investor", "nodeType": "VariableDeclaration", - "scope": 2290, - "src": "2669:13:4", + "scope": 3548, + "src": "3384:16:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4325,10 +5631,10 @@ "typeString": "address" }, "typeName": { - "id": 2263, + "id": 3402, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2669:7:4", + "src": "3384:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4336,22 +5642,66 @@ }, "value": null, "visibility": "internal" - } - ], - "src": "2668:15:4" - }, - "payable": false, - "returnParameters": { - "id": 2270, - "nodeType": "ParameterList", - "parameters": [ + }, { "constant": false, - "id": 2267, - "name": "totalTokensBought", + "id": 3405, + "name": "tokenAmount", + "nodeType": "VariableDeclaration", + "scope": 3548, + "src": "3410:16:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3404, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3410:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3407, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 3548, + "src": "3436:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3406, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3436:7:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3409, + "name": "cost", "nodeType": "VariableDeclaration", - "scope": 2290, - "src": "2707:22:4", + "scope": 3548, + "src": "3460:9:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4359,10 +5709,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2266, + "id": 3408, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2707:4:4", + "src": "3460:4:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4373,11 +5723,11 @@ }, { "constant": false, - "id": 2269, - "name": "averageTokenPrice", + "id": 3411, + "name": "costUSD", "nodeType": "VariableDeclaration", - "scope": 2290, - "src": "2731:22:4", + "scope": 3548, + "src": "3479:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4385,10 +5735,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2268, + "id": 3410, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2731:4:4", + "src": "3479:4:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4398,423 +5748,301 @@ "visibility": "internal" } ], - "src": "2706:48:4" + "src": "3374:123:6" }, - "scope": 2899, - "src": "2641:232:4", - "stateMutability": "view", - "superFunction": null, + "payable": true, + "returnParameters": { + "id": 3416, + "nodeType": "ParameterList", + "parameters": [], + "src": "3547:0:6" + }, + "scope": 4424, + "src": "3351:1187:6", + "stateMutability": "payable", + "superFunction": 1240, "visibility": "external" }, { "body": { - "id": 2418, + "id": 3564, "nodeType": "Block", - "src": "3192:829:4", + "src": "4639:70:6", "statements": [ { - "assignments": [ - 2298 - ], - "declarations": [ - { - "constant": false, - "id": 2298, - "name": "exp", - "nodeType": "VariableDeclaration", - "scope": 2419, - "src": "3202:8:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2297, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3202:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2311, - "initialValue": { + "expression": { "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2304, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "arguments": [ + { "argumentTypes": null, - "id": 2299, - "name": "tokenDecimals", + "id": 3561, + "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2030, - "src": "3213:13:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "38", - "id": 2302, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3247:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - } - ], - "expression": { - "argumentTypes": null, - "id": 2300, - "name": "tokenDecimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2030, - "src": "3229:13:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2301, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 6853, - "src": "3229:17:4", - "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": 2303, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3229:20:4", + "referencedDeclaration": 3552, + "src": "4694:7:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } - }, - "src": "3213:36:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "id": 2309, - "name": "tokenDecimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2030, - "src": "3275:13:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" } - }, - "id": 2310, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "3213:75:4", - "trueExpression": { - "argumentTypes": null, - "arguments": [ + ], + "expression": { + "argumentTypes": [ { - "argumentTypes": null, - "hexValue": "38", - "id": 2307, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3270:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } ], "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3557, + "name": "fundedPerInvestor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3244, + "src": "4656:17:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Account_$4698_storage_$", + "typeString": "mapping(address => struct FundAccount.Account storage ref)" } - ], - "expression": { + }, + "id": 3559, + "indexExpression": { "argumentTypes": null, - "id": 2305, - "name": "tokenDecimals", + "id": 3558, + "name": "_investor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2030, - "src": "3252:13:4", + "referencedDeclaration": 3550, + "src": "4674:9:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 2306, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 6853, - "src": "3252:17:4", + "nodeType": "IndexAccess", + "src": "4656:28: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)" + "typeIdentifier": "t_struct$_Account_$4698_storage", + "typeString": "struct FundAccount.Account storage ref" } }, - "id": 2308, + "id": 3560, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3252:20:4", + "memberName": "amountOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 4797, + "src": "4656:37:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_internal_view$_t_struct$_Account_$4698_storage_ptr_$_t_bytes32_$returns$_t_uint256_$bound_to$_t_struct$_Account_$4698_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer,bytes32) view returns (uint256)" } }, + "id": 3562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4656:46:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "nodeType": "VariableDeclarationStatement", - "src": "3202:86:4" + "functionReturnParameters": 3556, + "id": 3563, + "nodeType": "Return", + "src": "4649:53:6" + } + ] + }, + "documentation": null, + "id": 3565, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getInvestorFundedAmount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3553, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3550, + "name": "_investor", + "nodeType": "VariableDeclaration", + "scope": 3565, + "src": "4577:17:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3549, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4577:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" }, { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2320, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2318, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2315, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "-", - "prefix": true, - "src": "3312:3:4", - "subExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 2314, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3314:1:4", - "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": 2313, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3307:4:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint" - }, - "id": 2316, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3307:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 2317, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3319:2:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "src": "3307:14:4", + "constant": false, + "id": 3552, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 3565, + "src": "4596:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3551, + "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": 3556, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3555, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3565, + "src": "4633:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3554, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4633:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4632:6:6" + }, + "scope": 4424, + "src": "4544:165:6", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3579, + "nodeType": "Block", + "src": "4805:66:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3573, + "name": "fundedPerInvestor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3244, + "src": "4822:17:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Account_$4698_storage_$", + "typeString": "mapping(address => struct FundAccount.Account storage ref)" } }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { + "id": 3575, + "indexExpression": { "argumentTypes": null, - "id": 2319, - "name": "exp", + "id": 3574, + "name": "_investor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2298, - "src": "3325:3:4", + "referencedDeclaration": 3567, + "src": "4840:9:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "src": "3307:21:4", + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4822:28:6", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_struct$_Account_$4698_storage", + "typeString": "struct FundAccount.Account storage ref" } - ], - "id": 2312, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 7297, - 7298 - ], - "referencedDeclaration": 7297, - "src": "3299:7:4", + }, + "id": 3576, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "symbolsList", + "nodeType": "MemberAccess", + "referencedDeclaration": 4809, + "src": "4822:40:6", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Account_$4698_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$bound_to$_t_struct$_Account_$4698_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer) view returns (bytes32[] memory)" } }, - "id": 2321, + "id": 3577, "isConstant": false, "isLValue": false, "isPure": false, @@ -4822,791 +6050,742 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3299:30:4", + "src": "4822:42:6", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[] memory" } }, - "id": 2322, - "nodeType": "ExpressionStatement", - "src": "3299:30:4" - }, + "functionReturnParameters": 3572, + "id": 3578, + "nodeType": "Return", + "src": "4815:49:6" + } + ] + }, + "documentation": null, + "id": 3580, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getInvestorFundedAssetsSymbols", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3568, + "nodeType": "ParameterList", + "parameters": [ { - "assignments": [ - 2324 - ], - "declarations": [ - { - "constant": false, - "id": 2324, - "name": "max", - "nodeType": "VariableDeclaration", - "scope": 2419, - "src": "3340:8:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2323, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3340:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" + "constant": false, + "id": 3567, + "name": "_investor", + "nodeType": "VariableDeclaration", + "scope": 3580, + "src": "4755:17:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3566, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4755:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" } - ], - "id": 2333, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4754:19:6" + }, + "payable": false, + "returnParameters": { + "id": 3572, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3571, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3580, + "src": "4794:9:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 3569, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4794:7:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } }, - "id": 2332, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2327, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "-", - "prefix": true, - "src": "3356:2:4", - "subExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 2326, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3357:1:4", - "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": 2325, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3351:4:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint" - }, - "id": 2328, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3351:8:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2331, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 2329, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3362:2:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "id": 2330, - "name": "exp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2298, - "src": "3368:3:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3362:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3351:20:4", + "id": 3570, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4794:9:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" } }, - "nodeType": "VariableDeclarationStatement", - "src": "3340:31:4" - }, + "value": null, + "visibility": "internal" + } + ], + "src": "4793:11:6" + }, + "scope": 4424, + "src": "4715:156:6", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3591, + "nodeType": "Block", + "src": "4961:57:6", + "statements": [ { - "assignments": [ - 2335 - ], - "declarations": [ - { - "constant": false, - "id": 2335, - "name": "buyer", - "nodeType": "VariableDeclaration", - "scope": 2419, - "src": "3381:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2334, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3381:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2338, - "initialValue": { + "expression": { "argumentTypes": null, - "expression": { + "baseExpression": { + "argumentTypes": null, + "id": 3587, + "name": "tokenBoughtPerInvestor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3240, + "src": "4978:22:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3589, + "indexExpression": { "argumentTypes": null, - "id": 2336, - "name": "msg", + "id": 3588, + "name": "_investor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "3397:3:4", + "referencedDeclaration": 3582, + "src": "5001:9:6", "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 2337, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3397:10:4", + "nodeType": "IndexAccess", + "src": "4978:33:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3586, + "id": 3590, + "nodeType": "Return", + "src": "4971:40:6" + } + ] + }, + "documentation": null, + "id": 3592, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getInvestorTokenBoughtAmount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3583, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3582, + "name": "_investor", + "nodeType": "VariableDeclaration", + "scope": 3592, + "src": "4915:17:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3581, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4915:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "nodeType": "VariableDeclarationStatement", - "src": "3381:26:4" - }, + "value": null, + "visibility": "internal" + } + ], + "src": "4914:19:6" + }, + "payable": false, + "returnParameters": { + "id": 3586, + "nodeType": "ParameterList", + "parameters": [ { - "condition": { + "constant": false, + "id": 3585, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3592, + "src": "4955:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3584, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4955:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4954:6:6" + }, + "scope": 4424, + "src": "4877:141:6", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3604, + "nodeType": "Block", + "src": "5098:53:6", + "statements": [ + { + "expression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "arguments": [ + { + "argumentTypes": null, + "id": 3601, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3594, + "src": "5136:7:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 3599, + "name": "totalFunded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3228, + "src": "5115:11:6", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage", + "typeString": "struct FundAccount.Account storage ref" + } + }, + "id": 3600, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amountOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 4797, + "src": "5115:20:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Account_$4698_storage_ptr_$_t_bytes32_$returns$_t_uint256_$bound_to$_t_struct$_Account_$4698_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer,bytes32) view returns (uint256)" + } }, - "id": 2369, + "id": 3602, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2362, - "isConstant": false, - "isLValue": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5115:29:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3598, + "id": 3603, + "nodeType": "Return", + "src": "5108:36:6" + } + ] + }, + "documentation": null, + "id": 3605, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getTotalFundedAmount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3595, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3594, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 3605, + "src": "5054:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3593, + "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": 3598, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3597, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3605, + "src": "5092:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3596, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5092:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5091:6:6" + }, + "scope": 4424, + "src": "5024:127:6", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3615, + "nodeType": "Block", + "src": "5228:49:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 3611, + "name": "totalFunded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3228, + "src": "5245:11:6", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage", + "typeString": "struct FundAccount.Account storage ref" + } + }, + "id": 3612, + "isConstant": false, + "isLValue": true, "isPure": false, "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2355, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2348, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2341, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2339, - "name": "wtokensToRefund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2292, - "src": "3421:15:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2340, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3440:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3421:20:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2342, - "name": "buyers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2034, - "src": "3457:6:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_TokenPriceInfo_$2053_storage_$", - "typeString": "mapping(address => struct W12Fund.TokenPriceInfo storage ref)" - } - }, - "id": 2344, - "indexExpression": { - "argumentTypes": null, - "id": 2343, - "name": "buyer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2335, - "src": "3464:5:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3457:13:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TokenPriceInfo_$2053_storage", - "typeString": "struct W12Fund.TokenPriceInfo storage ref" - } - }, - "id": 2345, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "totalBought", - "nodeType": "MemberAccess", - "referencedDeclaration": 2048, - "src": "3457:25:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2346, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3486:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3457:30:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "3421:66:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2350, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7343, - "src": "3511:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_W12Fund_$2899", - "typeString": "contract W12Fund" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_W12Fund_$2899", - "typeString": "contract W12Fund" - } - ], - "id": 2349, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3503:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2351, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3503:13:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2352, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3503:21:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2353, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3528:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3503:26:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "3421:108:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2361, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2358, - "name": "buyer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2335, - "src": "3562:5:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2356, - "name": "wToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2028, - "src": "3545:6:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" - } - }, - "id": 2357, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 5276, - "src": "3545:16:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 2359, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3545:23:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 2360, - "name": "wtokensToRefund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2292, - "src": "3571:15:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3545:41:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "3421:165:4", + "memberName": "symbolsList", + "nodeType": "MemberAccess", + "referencedDeclaration": 4809, + "src": "5245:23:6", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Account_$4698_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$bound_to$_t_struct$_Account_$4698_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer) view returns (bytes32[] memory)" } }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2368, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2363, - "name": "buyers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2034, - "src": "3602:6:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_TokenPriceInfo_$2053_storage_$", - "typeString": "mapping(address => struct W12Fund.TokenPriceInfo storage ref)" - } - }, - "id": 2365, - "indexExpression": { - "argumentTypes": null, - "id": 2364, - "name": "buyer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2335, - "src": "3609:5:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3602:13:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TokenPriceInfo_$2053_storage", - "typeString": "struct W12Fund.TokenPriceInfo storage ref" - } - }, - "id": 2366, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "totalBought", - "nodeType": "MemberAccess", - "referencedDeclaration": 2048, - "src": "3602:25:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 2367, - "name": "wtokensToRefund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2292, - "src": "3630:15:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3602:43:4", + "id": 3613, + "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": 3610, + "id": 3614, + "nodeType": "Return", + "src": "5238:32:6" + } + ] + }, + "documentation": null, + "id": 3616, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getTotalFundedAssetsSymbols", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3606, + "nodeType": "ParameterList", + "parameters": [], + "src": "5193:2:6" + }, + "payable": false, + "returnParameters": { + "id": 3610, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3609, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3616, + "src": "5217:9:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 3607, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5217:7:6", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, - "src": "3421:224:4", + "id": 3608, + "length": null, + "nodeType": "ArrayTypeName", + "src": "5217:9:6", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" } }, - "falseBody": null, - "id": 2371, - "nodeType": "IfStatement", - "src": "3418:245:4", - "trueBody": { - "expression": null, - "functionReturnParameters": 2296, - "id": 2370, - "nodeType": "Return", - "src": "3656:7:4" - } - }, - { - "assignments": [ - 2373 - ], + "value": null, + "visibility": "internal" + } + ], + "src": "5216:11:6" + }, + "scope": 4424, + "src": "5157:120:6", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3627, + "nodeType": "Block", + "src": "5359:52:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3623, + "name": "totalFundedReleased", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3232, + "src": "5376:19:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 3625, + "indexExpression": { + "argumentTypes": null, + "id": 3624, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3618, + "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": 3622, + "id": 3626, + "nodeType": "Return", + "src": "5369:35:6" + } + ] + }, + "documentation": null, + "id": 3628, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getTotalFundedReleased", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3619, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3618, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 3628, + "src": "5315:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3617, + "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": 3622, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3621, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3628, + "src": "5353:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3620, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5353:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5352:6:6" + }, + "scope": 4424, + "src": "5283:128:6", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3745, + "nodeType": "Block", + "src": "5632:1102:6", + "statements": [ + { + "condition": { + "argumentTypes": null, + "id": 3637, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "5646:25:6", + "subExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3635, + "name": "trancheTransferAllowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4371, + "src": "5647:22:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", + "typeString": "function () view returns (bool)" + } + }, + "id": 3636, + "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": 3639, + "nodeType": "IfStatement", + "src": "5642:38:6", + "trueBody": { + "expression": null, + "functionReturnParameters": 3634, + "id": 3638, + "nodeType": "Return", + "src": "5673:7:6" + } + }, + { + "assignments": [ + 3641, + null + ], "declarations": [ { "constant": false, - "id": 2373, - "name": "allowedFund", + "id": 3641, + "name": "index", "nodeType": "VariableDeclaration", - "scope": 2419, - "src": "3673:16:4", + "scope": 3746, + "src": "5691:10:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5614,10 +6793,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2372, + "id": 3640, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3673:4:4", + "src": "5691:4:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5625,210 +6804,127 @@ }, "value": null, "visibility": "internal" - } + }, + null ], - "id": 2387, + "id": 3645, "initialValue": { "argumentTypes": null, - "arguments": [ - { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2383, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7343, - "src": "3747:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_W12Fund_$2899", - "typeString": "contract W12Fund" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_W12Fund_$2899", - "typeString": "contract W12Fund" - } - ], - "id": 2382, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3739:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2384, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3739:13:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2385, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3739:21:4", + "id": 3642, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3210, + "src": "5721:9:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", + "typeString": "contract IW12Crowdsale" } + }, + "id": 3643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getCurrentMilestoneIndex", + "nodeType": "MemberAccess", + "referencedDeclaration": 1155, + "src": "5721:34:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$_t_bool_$", + "typeString": "function () view external returns (uint256,bool)" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2379, - "name": "totalFunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2040, - "src": "3722:11:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2374, - "name": "buyers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2034, - "src": "3692:6:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_TokenPriceInfo_$2053_storage_$", - "typeString": "mapping(address => struct W12Fund.TokenPriceInfo storage ref)" - } - }, - "id": 2376, - "indexExpression": { - "argumentTypes": null, - "id": 2375, - "name": "buyer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2335, - "src": "3699:5:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3692:13:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TokenPriceInfo_$2053_storage", - "typeString": "struct W12Fund.TokenPriceInfo storage ref" - } - }, - "id": 2377, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "totalFunded", - "nodeType": "MemberAccess", - "referencedDeclaration": 2052, - "src": "3692:25:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2378, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 6795, - "src": "3692:29:4", - "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": 2380, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3692:42:4", + }, + "id": 3644, + "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": [ + 3647, + null + ], + "declarations": [ + { + "constant": false, + "id": 3647, + "name": "lastIndex", + "nodeType": "VariableDeclaration", + "scope": 3746, + "src": "5768:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3646, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5768:4:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2381, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 3651, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 3648, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3210, + "src": "5802:9:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", + "typeString": "contract IW12Crowdsale" + } + }, + "id": 3649, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "div", + "memberName": "getLastMilestoneIndex", "nodeType": "MemberAccess", - "referencedDeclaration": 6809, - "src": "3692:46:4", + "referencedDeclaration": 1162, + "src": "5802: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)" + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$_t_bool_$", + "typeString": "function () view external returns (uint256,bool)" } }, - "id": 2386, + "id": 3650, "isConstant": false, "isLValue": false, "isPure": false, @@ -5836,194 +6932,142 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3692:69:4", + "src": "5802:33:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", + "typeString": "tuple(uint256,bool)" } }, "nodeType": "VariableDeclarationStatement", - "src": "3673:88:4" + "src": "5767:68:6" }, { "assignments": [ - 2389 + null, + null, + null, + 3653, + null, + null ], "declarations": [ + null, + null, + null, { "constant": false, - "id": 2389, - "name": "precisionComponent", + "id": 3653, + "name": "lastWithdrawalWindow", "nodeType": "VariableDeclaration", - "scope": 2419, - "src": "3771:23:4", + "scope": 3746, + "src": "5851:27:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_uint32", + "typeString": "uint32" }, "typeName": { - "id": 2388, - "name": "uint", + "id": 3652, + "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "3771:4:4", + "src": "5851:6:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_uint32", + "typeString": "uint32" } }, "value": null, "visibility": "internal" - } + }, + null, + null ], - "id": 2398, + "id": 3658, "initialValue": { "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2392, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "arguments": [ + { "argumentTypes": null, - "id": 2390, - "name": "allowedFund", + "id": 3656, + "name": "lastIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2373, - "src": "3797:11:4", + "referencedDeclaration": 3647, + "src": "5907:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { "argumentTypes": null, - "id": 2391, - "name": "max", + "id": 3654, + "name": "crowdsale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2324, - "src": "3812:3:4", + "referencedDeclaration": 3210, + "src": "5884:9:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", + "typeString": "contract IW12Crowdsale" } }, - "src": "3797:18:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2396, + "id": 3655, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 2394, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3822:2:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "id": 2395, - "name": "exp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2298, - "src": "3828:3:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3822:9:4", + "memberName": "getMilestone", + "nodeType": "MemberAccess", + "referencedDeclaration": 1129, + "src": "5884:22:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "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": 2397, + "id": 3657, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "Conditional", - "src": "3797:34:4", - "trueExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 2393, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3818:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, + "names": [], + "nodeType": "FunctionCall", + "src": "5884:33:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "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": "3771:60:4" + "src": "5846:71:6" }, { "expression": { "argumentTypes": null, - "id": 2416, + "id": 3672, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2399, - "name": "result", + "id": 3659, + "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2295, - "src": "3842:6:4", + "referencedDeclaration": 3641, + "src": "5971:5:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6033,381 +7077,223 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "arguments": [ - { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3666, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, - "id": 2414, - "name": "precisionComponent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2389, - "src": "3995:18:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { + "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2411, - "name": "wtokensToRefund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2292, - "src": "3961:15:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + }, + "id": 3662, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3660, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3641, + "src": "5979:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2405, - "name": "buyers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2034, - "src": "3917:6:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_TokenPriceInfo_$2053_storage_$", - "typeString": "mapping(address => struct W12Fund.TokenPriceInfo storage ref)" - } - }, - "id": 2407, - "indexExpression": { - "argumentTypes": null, - "id": 2406, - "name": "buyer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2335, - "src": "3924:5:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3917:13:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TokenPriceInfo_$2053_storage", - "typeString": "struct W12Fund.TokenPriceInfo storage ref" - } - }, - "id": 2408, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "totalBought", - "nodeType": "MemberAccess", - "referencedDeclaration": 2048, - "src": "3917:25:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2402, - "name": "precisionComponent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2389, - "src": "3880:18:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2400, - "name": "allowedFund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2373, - "src": "3851:11:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2401, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 6795, - "src": "3851:28:4", - "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": 2403, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3851:48:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2404, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 6809, - "src": "3851:65:4", - "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": 2409, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3851:92:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2410, + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3661, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "number", "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 6795, - "src": "3851:109:4", + "nodeType": "Literal", + "src": "5988:1:6", + "subdenomination": null, "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_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": 2412, + "id": 3665, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3851:126:4", + "leftExpression": { + "argumentTypes": null, + "id": 3663, + "name": "lastIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3647, + "src": "5993:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 3664, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3641, + "src": "6006:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5993:18:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 2413, + "src": "5979:32:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3670, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 6809, - "src": "3851:143:4", + "leftExpression": { + "argumentTypes": null, + "id": 3668, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3641, + "src": "6022:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 3669, + "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_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": 2415, + "id": 3671, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3851:163:4", + "nodeType": "Conditional", + "src": "5979:52:6", + "trueExpression": { + "argumentTypes": null, + "id": 3667, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3641, + "src": "6014:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3842:172:4", + "src": "5971:60:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2417, + "id": 3673, "nodeType": "ExpressionStatement", - "src": "3842:172:4" - } - ] - }, - "documentation": "a = address(this).balance\nb = totalFunded\nc = buyers[buyer].totalFunded\nd = buyers[buyer].totalBought\ne = wtokensToRefund\n( ( c * (a / b) ) / d ) * e = (refund amount)", - "id": 2419, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getRefundAmount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2293, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2292, - "name": "wtokensToRefund", - "nodeType": "VariableDeclaration", - "scope": 2419, - "src": "3136:20:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2291, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3136:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3135:22:4" - }, - "payable": false, - "returnParameters": { - "id": 2296, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2295, - "name": "result", - "nodeType": "VariableDeclaration", - "scope": 2419, - "src": "3179:11:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2294, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3179:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3178:13:4" - }, - "scope": 2899, - "src": "3111:910:4", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2471, - "nodeType": "Block", - "src": "4089:492:4", - "statements": [ + "src": "5971:60:6" + }, { "assignments": [ - 2425, - 2427, + null, + 3675, + null, + 3677, + null, null ], "declarations": [ + null, { "constant": false, - "id": 2425, + "id": 3675, "name": "tranchePercent", "nodeType": "VariableDeclaration", - "scope": 2472, - "src": "4100:19:4", + "scope": 3746, + "src": "6046:19:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6415,10 +7301,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2424, + "id": 3674, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4100:4:4", + "src": "6046:4:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6427,52 +7313,89 @@ "value": null, "visibility": "internal" }, + null, { "constant": false, - "id": 2427, - "name": "totalTranchePercentBefore", + "id": 3677, + "name": "withdrawalWindow", "nodeType": "VariableDeclaration", - "scope": 2472, - "src": "4121:30:4", + "scope": 3746, + "src": "6069:23:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_uint32", + "typeString": "uint32" }, "typeName": { - "id": 2426, - "name": "uint", + "id": 3676, + "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "4121:4:4", + "src": "6069:6:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_uint32", + "typeString": "uint32" } }, "value": null, "visibility": "internal" }, + null, null ], - "id": 2430, + "id": 3682, "initialValue": { "argumentTypes": null, - "arguments": [], + "arguments": [ + { + "argumentTypes": null, + "id": 3680, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3641, + "src": "6123:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], "expression": { - "argumentTypes": [], - "id": 2428, - "name": "getTrancheParameters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2575, - "src": "4157:20:4", + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 3678, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3210, + "src": "6100:9:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", + "typeString": "contract IW12Crowdsale" + } + }, + "id": 3679, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getMilestone", + "nodeType": "MemberAccess", + "referencedDeclaration": 1129, + "src": "6100:22:6", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_uint256_$_t_uint256_$", - "typeString": "function () view returns (uint256,uint256,uint256)" + "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": 2429, + "id": 3681, "isConstant": false, "isLValue": false, "isPure": false, @@ -6480,282 +7403,129 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4157:22:4", + "src": "6100:29:6", "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256,uint256)" + "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": "4099:80:4" + "src": "6042:87:6" }, { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2444, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { + "assignments": [ + 3684 + ], + "declarations": [ + { + "constant": false, + "id": 3684, + "name": "completed", + "nodeType": "VariableDeclaration", + "scope": 3746, + "src": "6140:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 2437, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2433, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2431, - "name": "tranchePercent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2425, - "src": "4207:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2432, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4225:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4207:19:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2436, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2434, - "name": "totalTranchePercentBefore", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2427, - "src": "4230:25:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2435, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4259:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4230:30:4", + "typeName": { + "id": 3683, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6140:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "4207:53:4", + "value": null, + "visibility": "internal" + } + ], + "id": 3688, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3685, + "name": "completedTranches", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3226, + "src": "6157:17:6", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" } }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { + "id": 3687, + "indexExpression": { "argumentTypes": null, - "commonType": { + "id": 3686, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3641, + "src": "6175:5:6", + "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" - }, - "id": 2443, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2439, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7343, - "src": "4284:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_W12Fund_$2899", - "typeString": "contract W12Fund" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_W12Fund_$2899", - "typeString": "contract W12Fund" - } - ], - "id": 2438, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4276:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2440, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4276:13:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2441, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4276:21:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2442, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4301:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4276:26:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" } }, - "src": "4207:95:4", + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6157:24:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6140:41:6" + }, + { + "condition": { + "argumentTypes": null, + "id": 3689, + "name": "completed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3684, + "src": "6196:9:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 2446, + "id": 3691, "nodeType": "IfStatement", - "src": "4190:130:4", + "src": "6192:22:6", "trueBody": { "expression": null, - "functionReturnParameters": 2423, - "id": 2445, + "functionReturnParameters": 3634, + "id": 3690, "nodeType": "Return", - "src": "4313:7:4" + "src": "6207:7:6" } }, { "assignments": [ - 2448 + 3693 ], "declarations": [ { "constant": false, - "id": 2448, - "name": "allowedFund", + "id": 3693, + "name": "prevIndex", "nodeType": "VariableDeclaration", - "scope": 2472, - "src": "4330:16:4", + "scope": 3746, + "src": "6224:14:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6763,10 +7533,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2447, + "id": 3692, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4330:4:4", + "src": "6224:4:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6776,87 +7546,33 @@ "visibility": "internal" } ], - "id": 2453, + "id": 3695, "initialValue": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2451, - "name": "totalRefunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2042, - "src": "4365:13:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2449, - "name": "totalFunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2040, - "src": "4349:11:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2450, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 6829, - "src": "4349:15:4", - "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": 2452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4349:30:4", + "id": 3694, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3641, + "src": "6241:5:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "4330:49:4" + "src": "6224:22:6" }, { - "assignments": [ - 2455 - ], + "assignments": [], "declarations": [ { "constant": false, - "id": 2455, - "name": "trancheToRelease", + "id": 3697, + "name": "totalTranchePercentBefore", "nodeType": "VariableDeclaration", - "scope": 2472, - "src": "4389:21:4", + "scope": 3746, + "src": "6256:30:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6864,10 +7580,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2454, + "id": 3696, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4389:4:4", + "src": "6256:4:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6877,143 +7593,364 @@ "visibility": "internal" } ], - "id": 2463, - "initialValue": { - "argumentTypes": null, - "arguments": [ + "id": 3698, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "6256:30:6" + }, + { + "body": { + "id": 3719, + "nodeType": "Block", + "src": "6319:208:6", + "statements": [ { - "argumentTypes": null, - "id": 2461, - "name": "totalTranchePercentReleased", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2044, - "src": "4489:27:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { + "expression": { + "argumentTypes": null, + "id": 3703, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "--", + "prefix": false, + "src": "6333:11:6", + "subExpression": { "argumentTypes": null, - "id": 2458, - "name": "totalTranchePercentBefore", + "id": 3702, + "name": "prevIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2427, - "src": "4445:25:4", + "referencedDeclaration": 3693, + "src": "6333:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } + }, + "id": 3704, + "nodeType": "ExpressionStatement", + "src": "6333:11:6" + }, + { + "assignments": [ + null, + 3706, + null, + null, + null, + null ], - "expression": { - "argumentTypes": [ - { + "declarations": [ + null, + { + "constant": false, + "id": 3706, + "name": "_tranchePercent", + "nodeType": "VariableDeclaration", + "scope": 3746, + "src": "6362:20:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" + }, + "typeName": { + "id": 3705, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6362:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + null, + null, + null, + null + ], + "id": 3711, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3709, + "name": "prevIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3693, + "src": "6417:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } } ], "expression": { - "argumentTypes": null, - "id": 2456, - "name": "tranchePercent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2425, - "src": "4413:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2457, - "isConstant": false, - "isLValue": false, - "isPure": false, + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 3707, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3210, + "src": "6394:9:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", + "typeString": "contract IW12Crowdsale" + } + }, + "id": 3708, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getMilestone", + "nodeType": "MemberAccess", + "referencedDeclaration": 1129, + "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": 3710, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 6853, - "src": "4413:31:4", + "names": [], + "nodeType": "FunctionCall", + "src": "6394:33: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)" + "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": 2459, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4413:58:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "nodeType": "VariableDeclarationStatement", + "src": "6359:68:6" }, - "id": 2460, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 6829, - "src": "4413:75:4", - "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": null, + "id": 3717, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3712, + "name": "totalTranchePercentBefore", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3697, + "src": "6442:25:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3715, + "name": "_tranchePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3706, + "src": "6500:15:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 3713, + "name": "totalTranchePercentBefore", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3697, + "src": "6470:25:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3714, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9601, + "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": 3716, + "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": 3718, + "nodeType": "ExpressionStatement", + "src": "6442:74:6" } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - "id": 2462, + "id": 3701, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4413:104:4", + "leftExpression": { + "argumentTypes": null, + "id": 3699, + "name": "prevIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3693, + "src": "6304:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3700, + "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", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "nodeType": "VariableDeclarationStatement", - "src": "4389:128:4" + "id": 3720, + "nodeType": "WhileStatement", + "src": "6297:230:6" }, { "expression": { "argumentTypes": null, - "id": 2469, + "id": 3731, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2464, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2422, - "src": "4528:6:4", + "baseExpression": { + "argumentTypes": null, + "id": 3721, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3633, + "src": "6537:6:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3] memory" + } + }, + "id": 3723, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3722, + "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" @@ -7026,12 +7963,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2467, - "name": "trancheToRelease", + "id": 3729, + "name": "totalTranchePercentReleased", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2455, - "src": "4557:16:4", + "referencedDeclaration": 3222, + "src": "6625:27:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7047,32 +7984,84 @@ ], "expression": { "argumentTypes": null, - "id": 2465, - "name": "allowedFund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2448, - "src": "4537:11:4", + "arguments": [ + { + "argumentTypes": null, + "id": 3726, + "name": "totalTranchePercentBefore", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3697, + "src": "6581:25:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 3724, + "name": "tranchePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3675, + "src": "6549:14:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9601, + "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": 3727, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6549:58:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2466, + "id": 3728, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "percent", + "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 4568, - "src": "4537:19:4", + "referencedDeclaration": 9577, + "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": 2468, + "id": 3730, "isConstant": false, "isLValue": false, "isPure": false, @@ -7080,177 +8069,324 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4537:37:4", + "src": "6549:104:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4528:46:4", + "src": "6537:116:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2470, + "id": 3732, "nodeType": "ExpressionStatement", - "src": "4528:46:4" - } - ] - }, - "documentation": null, - "id": 2472, + "src": "6537:116:6" + }, + { + "expression": { + "argumentTypes": null, + "id": 3737, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3733, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3633, + "src": "6663:6:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3] memory" + } + }, + "id": 3735, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 3734, + "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": 3736, + "name": "totalTranchePercentBefore", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3697, + "src": "6675:25:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6663:37:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3738, + "nodeType": "ExpressionStatement", + "src": "6663:37:6" + }, + { + "expression": { + "argumentTypes": null, + "id": 3743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3739, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3633, + "src": "6710:6:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3] memory" + } + }, + "id": 3741, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 3740, + "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": 3742, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3641, + "src": "6722:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6710:17:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3744, + "nodeType": "ExpressionStatement", + "src": "6710:17:6" + } + ] + }, + "documentation": "@notice Get tranche invoice\n@return uint[3] result:\n[tranchePercent, totalTranchePercentBefore, milestoneIndex]", + "id": 3746, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], - "name": "getTrancheAmount", + "name": "getTrancheInvoice", "nodeType": "FunctionDefinition", "parameters": { - "id": 2420, + "id": 3629, "nodeType": "ParameterList", "parameters": [], - "src": "4052:2:4" + "src": "5592:2:6" }, "payable": false, "returnParameters": { - "id": 2423, + "id": 3634, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2422, + "id": 3633, "name": "result", "nodeType": "VariableDeclaration", - "scope": 2472, - "src": "4076:11:4", + "scope": 3746, + "src": "5616:14:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3]" }, "typeName": { - "id": 2421, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4076:4:4", + "baseType": { + "id": 3630, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5616:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3632, + "length": { + "argumentTypes": null, + "hexValue": "33", + "id": 3631, + "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", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_uint256_$3_storage_ptr", + "typeString": "uint256[3]" } }, "value": null, "visibility": "internal" } ], - "src": "4075:13:4" + "src": "5615:16:6" }, - "scope": 2899, - "src": "4027:554:4", + "scope": 4424, + "src": "5566:1168:6", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2574, + "id": 3812, "nodeType": "Block", - "src": "4684:1013:4", + "src": "6846:458:6", "statements": [ { - "assignments": [ - 2482, - 2484 - ], - "declarations": [ - { - "constant": false, - "id": 2482, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 2575, - "src": "4695:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2481, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4695:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2484, - "name": "found", - "nodeType": "VariableDeclaration", - "scope": 2575, - "src": "4707:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2483, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4707:4:4", + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3754, + "name": "trancheTransferAllowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4371, + "src": "6864:22:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", + "typeString": "function () view returns (bool)" + } + }, + "id": 3755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6864:24:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2488, - "initialValue": { - "argumentTypes": null, - "arguments": [], + } + ], "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 2485, - "name": "crowdsale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2022, - "src": "4721:9:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", - "typeString": "contract IW12Crowdsale" + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" } - }, - "id": 2486, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getCurrentMilestoneIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 4378, - "src": "4721:34:4", + ], + "id": 3753, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "6856:7:6", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$_t_bool_$", - "typeString": "function () view external returns (uint256,bool)" + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" } }, - "id": 2487, + "id": 3756, "isConstant": false, "isLValue": false, "isPure": false, @@ -7258,83 +8394,93 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4721:36:4", + "src": "6856:33:6", "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", - "typeString": "tuple(uint256,bool)" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "nodeType": "VariableDeclarationStatement", - "src": "4694:63:4" + "id": 3757, + "nodeType": "ExpressionStatement", + "src": "6856:33:6" }, { "assignments": [ - 2490, - null + 3762 ], "declarations": [ { "constant": false, - "id": 2490, - "name": "lastIndex", + "id": 3762, + "name": "trancheInvoice", "nodeType": "VariableDeclaration", - "scope": 2575, - "src": "4768:14:4", + "scope": 3813, + "src": "6900:29:6", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3]" }, "typeName": { - "id": 2489, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4768:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, + "baseType": { + "id": 3760, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6900:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3761, + "length": { + "argumentTypes": null, + "hexValue": "33", + "id": 3759, + "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" - }, - null + } ], - "id": 2494, + "id": 3765, "initialValue": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 2491, - "name": "crowdsale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2022, - "src": "4788:9:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", - "typeString": "contract IW12Crowdsale" - } - }, - "id": 2492, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getLastMilestoneIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 4385, - "src": "4788:31:4", + "id": 3763, + "name": "getTrancheInvoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3746, + "src": "6932:17:6", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$_t_bool_$", - "typeString": "function () view external returns (uint256,bool)" + "typeIdentifier": "t_function_internal_view$__$returns$_t_array$_t_uint256_$3_memory_ptr_$", + "typeString": "function () view returns (uint256[3] memory)" } }, - "id": 2493, + "id": 3764, "isConstant": false, "isLValue": false, "isPure": false, @@ -7342,110 +8488,124 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4788:33:4", + "src": "6932:19:6", "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", - "typeString": "tuple(uint256,bool)" + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "4767:54:4" + "src": "6900:51:6" }, { - "assignments": [ - null, - null, - null, - 2496, - null, - null - ], - "declarations": [ - null, - null, - null, - { - "constant": false, - "id": 2496, - "name": "lastWithdrawalWindow", - "nodeType": "VariableDeclaration", - "scope": 2575, - "src": "4836:27:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 2495, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "4836:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - null, - null - ], - "id": 2501, - "initialValue": { + "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 2499, - "name": "lastIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2490, - "src": "4892:9:4", - "typeDescriptions": { + "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" + }, + "id": 3771, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3767, + "name": "trancheInvoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3762, + "src": "6970:14:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3] memory" + } + }, + "id": 3769, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3768, + "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": 3770, + "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", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } ], - "expression": { - "argumentTypes": null, - "id": 2497, - "name": "crowdsale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2022, - "src": "4869:9:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", - "typeString": "contract IW12Crowdsale" - } - }, - "id": 2498, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getMilestone", - "nodeType": "MemberAccess", - "referencedDeclaration": 4352, - "src": "4869:22:4", + "id": 3766, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "6962:7: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)" + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" } }, - "id": 2500, + "id": 3772, "isConstant": false, "isLValue": false, "isPure": false, @@ -7453,466 +8613,436 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4869:33:4", + "src": "6962:30: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)" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "nodeType": "VariableDeclarationStatement", - "src": "4831:71:4" + "id": 3773, + "nodeType": "ExpressionStatement", + "src": "6962:30:6" }, { - "condition": { + "expression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2507, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2503, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "4917:6:4", - "subExpression": { - "argumentTypes": null, - "id": 2502, - "name": "found", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2484, - "src": "4918:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "id": 2506, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "4927:25:4", - "subExpression": { + "arguments": [ + { "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2504, - "name": "trancheTransferAllowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2885, - "src": "4928:22:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", - "typeString": "function () view returns (bool)" - } + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - "id": 2505, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4928:24:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "4917:35:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2509, - "nodeType": "IfStatement", - "src": "4913:48:4", - "trueBody": { - "expression": null, - "functionReturnParameters": 2480, - "id": 2508, - "nodeType": "Return", - "src": "4954:7:4" - } - }, - { - "expression": { - "argumentTypes": null, - "id": 2523, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2510, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2482, - "src": "5014:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2517, + "id": 3780, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2513, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2511, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2482, - "src": "5022:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { + "expression": { "argumentTypes": null, - "hexValue": "30", - "id": 2512, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 3775, + "name": "totalFunded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3228, + "src": "7010:11:6", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage", + "typeString": "struct FundAccount.Account storage ref" + } + }, + "id": 3776, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "symbolsList", + "nodeType": "MemberAccess", + "referencedDeclaration": 4809, + "src": "7010:23:6", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Account_$4698_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$bound_to$_t_struct$_Account_$4698_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer) view returns (bytes32[] memory)" + } + }, + "id": 3777, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "number", + "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "Literal", - "src": "5031:1:4", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "7010:25:6", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[] memory" + } }, - "src": "5022:10:4", + "id": 3778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7010:32:6", "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": 2516, + "hexValue": "30", + "id": 3779, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "number", "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2514, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7296, - "src": "5036:3:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 2515, - "name": "lastWithdrawalWindow", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2496, - "src": "5043:20:4", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "5036:27:4", + "nodeType": "Literal", + "src": "7046:1:6", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" }, - "src": "5022:41:4", + "src": "7010:37:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3774, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "7002:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3781, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7002:46:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3782, + "nodeType": "ExpressionStatement", + "src": "7002:46:6" + }, + { + "expression": { + "argumentTypes": null, + "id": 3789, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3783, + "name": "completedTranches", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3226, + "src": "7059:17:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" + } }, - "falseExpression": { + "id": 3787, + "indexExpression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2521, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "baseExpression": { "argumentTypes": null, - "id": 2519, - "name": "index", + "id": 3784, + "name": "trancheInvoice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2482, - "src": "5074:5:4", + "referencedDeclaration": 3762, + "src": "7077:14:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3] memory" } }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { + "id": 3786, + "indexExpression": { "argumentTypes": null, - "hexValue": "31", - "id": 2520, + "hexValue": "32", + "id": 3785, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5082:1:4", + "src": "7092:1:6", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" }, - "value": "1" + "value": "2" }, - "src": "5074:9:4", + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7077:17:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2522, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "5022:61:4", - "trueExpression": { - "argumentTypes": null, - "id": 2518, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2482, - "src": "5066:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7059:36:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "src": "5014:69:4", + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3788, + "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_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 2524, + "id": 3790, "nodeType": "ExpressionStatement", - "src": "5014:69:4" + "src": "7059:43:6" }, { - "assignments": [ - null, - 2526, - null, - 2528, - null, - null - ], - "declarations": [ - null, - { - "constant": false, - "id": 2526, - "name": "tranchePercent", - "nodeType": "VariableDeclaration", - "scope": 2575, - "src": "5098:19:4", - "stateVariable": false, - "storageLocation": "default", + "expression": { + "argumentTypes": null, + "id": 3798, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3791, + "name": "totalTranchePercentReleased", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3222, + "src": "7112:27:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" - }, - "typeName": { - "id": 2525, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5098:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" + } }, - null, - { - "constant": false, - "id": 2528, - "name": "withdrawalWindow", - "nodeType": "VariableDeclaration", - "scope": 2575, - "src": "5121:23:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 2527, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "5121:6:4", + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3794, + "name": "trancheInvoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3762, + "src": "7174:14:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3] memory" + } + }, + "id": 3796, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3795, + "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": 3792, + "name": "totalTranchePercentReleased", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3222, + "src": "7142:27:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3793, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9601, + "src": "7142:31:6", "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" + "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": 3797, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7142:50:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - null, - null - ], - "id": 2533, - "initialValue": { + "src": "7112:80:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3799, + "nodeType": "ExpressionStatement", + "src": "7112:80:6" + }, + { + "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 2531, - "name": "index", + "id": 3801, + "name": "trancheInvoice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2482, - "src": "5175:5:4", + "referencedDeclaration": 3762, + "src": "7220:14:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3] memory" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3] memory" } ], - "expression": { - "argumentTypes": null, - "id": 2529, - "name": "crowdsale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2022, - "src": "5152:9:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", - "typeString": "contract IW12Crowdsale" - } - }, - "id": 2530, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getMilestone", - "nodeType": "MemberAccess", - "referencedDeclaration": 4352, - "src": "5152:22:4", + "id": 3800, + "name": "_transferTranche", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4021, + "src": "7203:16: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)" + "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint256_$3_memory_ptr_$returns$__$", + "typeString": "function (uint256[3] memory)" } }, - "id": 2532, + "id": 3802, "isConstant": false, "isLValue": false, "isPure": false, @@ -7920,129 +9050,221 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5152:29:4", + "src": "7203:32: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)" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "nodeType": "VariableDeclarationStatement", - "src": "5094:87:4" + "id": 3803, + "nodeType": "ExpressionStatement", + "src": "7203:32:6" }, { - "assignments": [ - 2535 - ], - "declarations": [ - { - "constant": false, - "id": 2535, - "name": "completed", - "nodeType": "VariableDeclaration", - "scope": 2575, - "src": "5192:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2534, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5192:4:4", + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3805, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10042, + "src": "7267:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3806, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7267:10:6", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "value": null, - "visibility": "internal" - } - ], - "id": 2539, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2536, - "name": "completedTranches", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2038, - "src": "5209:17:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", - "typeString": "mapping(uint256 => bool)" - } - }, - "id": 2538, - "indexExpression": { - "argumentTypes": null, - "id": 2537, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2482, - "src": "5227:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5209:24:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5192:41:4" - }, - { - "condition": { - "argumentTypes": null, - "id": 2540, - "name": "completed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2535, - "src": "5248:9:4", + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3807, + "name": "trancheInvoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3762, + "src": "7279:14:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3] memory" + } + }, + "id": 3809, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3808, + "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": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3804, + "name": "TrancheReleased", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3282, + "src": "7251:15:6", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 3810, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7251:46:6", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "falseBody": null, - "id": 2542, - "nodeType": "IfStatement", - "src": "5244:22:4", - "trueBody": { - "expression": null, - "functionReturnParameters": 2480, - "id": 2541, - "nodeType": "Return", - "src": "5259:7:4" + "id": 3811, + "nodeType": "EmitStatement", + "src": "7246:51:6" + } + ] + }, + "documentation": "@notice Realise project tranche", + "id": 3813, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 3749, + "modifierName": { + "argumentTypes": null, + "id": 3748, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9636, + "src": "6823:9:6", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "6823:9:6" + }, + { + "arguments": null, + "id": 3751, + "modifierName": { + "argumentTypes": null, + "id": 3750, + "name": "nonReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9330, + "src": "6833:12:6", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" } }, + "nodeType": "ModifierInvocation", + "src": "6833:12:6" + } + ], + "name": "tranche", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3747, + "nodeType": "ParameterList", + "parameters": [], + "src": "6811:2:6" + }, + "payable": false, + "returnParameters": { + "id": 3752, + "nodeType": "ParameterList", + "parameters": [], + "src": "6846:0:6" + }, + "scope": 4424, + "src": "6795:509:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 4020, + "nodeType": "Block", + "src": "7363:1569:6", + "statements": [ { "assignments": [ - 2544 + 3821 ], "declarations": [ { "constant": false, - "id": 2544, - "name": "dIndex", + "id": 3821, + "name": "ln", "nodeType": "VariableDeclaration", - "scope": 2575, - "src": "5276:11:4", + "scope": 4021, + "src": "7373:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8050,130 +9272,2792 @@ "typeString": "uint256" }, "typeName": { - "id": 2543, + "id": 3820, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5276:4:4", + "src": "7373:4:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, - "visibility": "internal" - } - ], - "id": 2546, - "initialValue": { - "argumentTypes": null, - "id": 2545, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2482, - "src": "5290:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5276:19:4" - }, - { - "body": { - "id": 2567, - "nodeType": "Block", - "src": "5325:202:4", - "statements": [ + "value": null, + "visibility": "internal" + } + ], + "id": 3826, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 3822, + "name": "totalFunded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3228, + "src": "7383:11:6", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage", + "typeString": "struct FundAccount.Account storage ref" + } + }, + "id": 3823, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "symbolsList", + "nodeType": "MemberAccess", + "referencedDeclaration": 4809, + "src": "7383:23:6", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Account_$4698_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$bound_to$_t_struct$_Account_$4698_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer) view returns (bytes32[] memory)" + } + }, + "id": 3824, + "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": 3825, + "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": 4018, + "nodeType": "Block", + "src": "7441:1485:6", + "statements": [ + { + "assignments": [ + 3831 + ], + "declarations": [ + { + "constant": false, + "id": 3831, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 4021, + "src": "7455:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3830, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7455:7:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3838, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 3832, + "name": "totalFunded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3228, + "src": "7472:11:6", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage", + "typeString": "struct FundAccount.Account storage ref" + } + }, + "id": 3833, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "symbolsList", + "nodeType": "MemberAccess", + "referencedDeclaration": 4809, + "src": "7472:23:6", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Account_$4698_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$bound_to$_t_struct$_Account_$4698_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer) view returns (bytes32[] memory)" + } + }, + "id": 3834, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7472:25:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[] memory" + } + }, + "id": 3837, + "indexExpression": { + "argumentTypes": null, + "id": 3836, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "--", + "prefix": true, + "src": "7498:4:6", + "subExpression": { + "argumentTypes": null, + "id": 3835, + "name": "ln", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3821, + "src": "7500: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": "7472:31:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7455:48:6" + }, + { + "assignments": [ + 3840 + ], + "declarations": [ + { + "constant": false, + "id": 3840, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 4021, + "src": "7517:11:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3839, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7517:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3845, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3843, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3831, + "src": "7552:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 3841, + "name": "totalFunded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3228, + "src": "7531:11:6", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage", + "typeString": "struct FundAccount.Account storage ref" + } + }, + "id": 3842, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amountOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 4797, + "src": "7531:20:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Account_$4698_storage_ptr_$_t_bytes32_$returns$_t_uint256_$bound_to$_t_struct$_Account_$4698_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer,bytes32) view returns (uint256)" + } + }, + "id": 3844, + "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": 3848, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3846, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3840, + "src": "7578:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3847, + "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": 3850, + "nodeType": "IfStatement", + "src": "7574:25:6", + "trueBody": { + "id": 3849, + "nodeType": "Continue", + "src": "7591:8:6" + } + }, + { + "assignments": [ + 3852 + ], + "declarations": [ + { + "constant": false, + "id": 3852, + "name": "sourceAmount", + "nodeType": "VariableDeclaration", + "scope": 4021, + "src": "7614:17:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3851, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7614:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3859, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3855, + "name": "_invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3817, + "src": "7653:8:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3] memory" + } + }, + "id": 3857, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3856, + "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": 3853, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3840, + "src": "7634:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3854, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 5040, + "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": 3858, + "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": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3861, + "name": "sourceAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3852, + "src": "7688:12:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3862, + "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": 3860, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "7680:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3864, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7680:25:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3865, + "nodeType": "ExpressionStatement", + "src": "7680:25:6" + }, + { + "expression": { + "argumentTypes": null, + "id": 3876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3866, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3840, + "src": "7732:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3871, + "name": "totalTokenRefunded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3236, + "src": "7796:18:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 3869, + "name": "totalTokenBought", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3234, + "src": "7775:16:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9577, + "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": 3872, + "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": 3873, + "name": "sourceAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3852, + "src": "7833:12:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3874, + "name": "totalTokenBought", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3234, + "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": 3867, + "name": "Utils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6060, + "src": "7741:5:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Utils_$6060_$", + "typeString": "type(library Utils)" + } + }, + "id": 3868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeMulDiv", + "nodeType": "MemberAccess", + "referencedDeclaration": 6059, + "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": 3875, + "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" + } + }, + "id": 3877, + "nodeType": "ExpressionStatement", + "src": "7732:161:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3879, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3840, + "src": "7916:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3880, + "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": 3878, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "7908:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7908:19:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3883, + "nodeType": "ExpressionStatement", + "src": "7908:19:6" + }, + { + "expression": { + "argumentTypes": null, + "id": 3893, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3884, + "name": "totalFundedReleased", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3232, + "src": "7942:19:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 3886, + "indexExpression": { + "argumentTypes": null, + "id": 3885, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3831, + "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": 3891, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3840, + "src": "8004:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3887, + "name": "totalFundedReleased", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3232, + "src": "7972:19:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 3889, + "indexExpression": { + "argumentTypes": null, + "id": 3888, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3831, + "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": 3890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9601, + "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": 3892, + "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" + } + }, + "id": 3894, + "nodeType": "ExpressionStatement", + "src": "7942:69:6" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 3897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3895, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3831, + "src": "8042:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 3896, + "name": "METHOD_USD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3208, + "src": "8052:10:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "8042:20:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 3899, + "nodeType": "IfStatement", + "src": "8038:35:6", + "trueBody": { + "id": 3898, + "nodeType": "Continue", + "src": "8065:8:6" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 3902, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3900, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3831, + "src": "8092:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 3901, + "name": "METHOD_ETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3203, + "src": "8102:10:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "8092:20:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 3927, + "nodeType": "IfStatement", + "src": "8088:187:6", + "trueBody": { + "id": 3926, + "nodeType": "Block", + "src": "8114:161:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3906, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3831, + "src": "8154:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 3904, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3214, + "src": "8140:5:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "id": 3905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 6992, + "src": "8140:13:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (bytes32) view external returns (bool)" + } + }, + "id": 3907, + "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": 3903, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "8132:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3908, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8132:30:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3909, + "nodeType": "ExpressionStatement", + "src": "8132:30:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3919, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10117, + "src": "8243:4:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_W12Fund_$4424", + "typeString": "contract W12Fund" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_W12Fund_$4424", + "typeString": "contract W12Fund" + } + ], + "id": 3918, + "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": 3920, + "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": 3914, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3831, + "src": "8216:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 3912, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3214, + "src": "8194:5:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "id": 3913, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getTokenAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 6985, + "src": "8194:21:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view external returns (address)" + } + }, + "id": 3915, + "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": 3911, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9765, + "src": "8188:5:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$9765_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 3916, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8188:36:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$9765", + "typeString": "contract ERC20" + } + }, + "id": 3917, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 9779, + "src": "8188:46:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 3921, + "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": 3922, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3840, + "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": 3910, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "8180:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3924, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8180:80:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3925, + "nodeType": "ExpressionStatement", + "src": "8180:80:6" + } + ] + } + }, + { + "assignments": [ + 3929 + ], + "declarations": [ + { + "constant": false, + "id": 3929, + "name": "fee", + "nodeType": "VariableDeclaration", + "scope": 4021, + "src": "8289:8:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3928, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8289:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3939, + "initialValue": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3930, + "name": "trancheFeePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3220, + "src": "8300:17:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3931, + "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": 3937, + "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": 3938, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "8300:97:6", + "trueExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3935, + "name": "trancheFeePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3220, + "src": "8359:17:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 3933, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3840, + "src": "8340:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3934, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 5040, + "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": 3936, + "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" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3942, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3940, + "name": "trancheFeePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3220, + "src": "8416:17:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3941, + "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": 3949, + "nodeType": "IfStatement", + "src": "8412:43:6", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3946, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3944, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3929, + "src": "8447:3:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3945, + "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": 3943, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "8439:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3947, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8439:16:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3948, + "nodeType": "ExpressionStatement", + "src": "8439:16:6" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 3952, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3950, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3831, + "src": "8474:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 3951, + "name": "METHOD_ETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3203, + "src": "8484:10:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "8474:20:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 4009, + "nodeType": "Block", + "src": "8629:221:6", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3975, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3929, + "src": "8651:3:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3976, + "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": 3991, + "nodeType": "IfStatement", + "src": "8647:87:6", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3986, + "name": "serviceWallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3218, + "src": "8714:13:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3987, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3929, + "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": 3982, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3831, + "src": "8696:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 3980, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3214, + "src": "8674:5:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "id": 3981, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getTokenAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 6985, + "src": "8674:21:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view external returns (address)" + } + }, + "id": 3983, + "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": 3979, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9765, + "src": "8668:5:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$9765_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 3984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8668:36:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$9765", + "typeString": "contract ERC20" + } + }, + "id": 3985, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 9788, + "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": 3988, + "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": 3978, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "8660:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3989, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8660:74:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3990, + "nodeType": "ExpressionStatement", + "src": "8660:74:6" + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4000, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10042, + "src": "8806:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4001, + "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": 4004, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3929, + "src": "8829:3:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 4002, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3840, + "src": "8818:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4003, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9577, + "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": 4005, + "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": 3996, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3831, + "src": "8788:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 3994, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3214, + "src": "8766:5:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "id": 3995, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getTokenAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 6985, + "src": "8766:21:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view external returns (address)" + } + }, + "id": 3997, + "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": 3993, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9765, + "src": "8760:5:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$9765_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 3998, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8760:36:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$9765", + "typeString": "contract ERC20" + } + }, + "id": 3999, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 9788, + "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": 4006, + "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": 3992, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "8752:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8752:83:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4008, + "nodeType": "ExpressionStatement", + "src": "8752:83:6" + } + ] + }, + "id": 4010, + "nodeType": "IfStatement", + "src": "8470:380:6", + "trueBody": { + "id": 3974, + "nodeType": "Block", + "src": "8496:127:6", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3955, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3953, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3929, + "src": "8518:3:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3954, + "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": 3962, + "nodeType": "IfStatement", + "src": "8514:40:6", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3959, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3929, + "src": "8550:3:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 3956, + "name": "serviceWallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3218, + "src": "8527:13:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3958, + "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": 3960, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8527:27:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3961, + "nodeType": "ExpressionStatement", + "src": "8527:27:6" + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3970, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3929, + "src": "8603:3:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 3968, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3840, + "src": "8592:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3969, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9577, + "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": 3971, + "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": 3963, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10042, + "src": "8572:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3966, + "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": 3967, + "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": 3972, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8572:36:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3973, + "nodeType": "ExpressionStatement", + "src": "8572:36:6" + } + ] + } + }, { - "expression": { + "eventCall": { "argumentTypes": null, - "id": 2551, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "5339:8:4", - "subExpression": { - "argumentTypes": null, - "id": 2550, - "name": "dIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2544, - "src": "5339:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2552, - "nodeType": "ExpressionStatement", - "src": "5339:8:4" - }, - { - "assignments": [ - null, - 2554, - null, - null, - null, - null - ], - "declarations": [ - null, - { - "constant": false, - "id": 2554, - "name": "_tranchePercent", - "nodeType": "VariableDeclaration", - "scope": 2575, - "src": "5365:20:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4012, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10042, + "src": "8888:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4013, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8888:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } }, - "typeName": { - "id": 2553, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5365:4:4", + { + "argumentTypes": null, + "id": 4014, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3831, + "src": "8900:6:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, - "value": null, - "visibility": "internal" - }, - null, - null, - null, - null - ], - "id": 2559, - "initialValue": { - "argumentTypes": null, - "arguments": [ { "argumentTypes": null, - "id": 2557, - "name": "dIndex", + "id": 4015, + "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2544, - "src": "5420:6:4", + "referencedDeclaration": 3840, + "src": "8908:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8182,39 +12066,31 @@ ], "expression": { "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], - "expression": { - "argumentTypes": null, - "id": 2555, - "name": "crowdsale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2022, - "src": "5397:9:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", - "typeString": "contract IW12Crowdsale" - } - }, - "id": 2556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getMilestone", - "nodeType": "MemberAccess", - "referencedDeclaration": 4352, - "src": "5397:22:4", + "id": 4011, + "name": "TrancheTransferred", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3276, + "src": "8869:18: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)" + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_uint256_$returns$__$", + "typeString": "function (address,bytes32,uint256)" } }, - "id": 2558, + "id": 4016, "isConstant": false, "isLValue": false, "isPure": false, @@ -8222,112 +12098,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5397:30:4", - "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": "5362:65:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 2565, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2560, - "name": "totalTranchePercentBefore", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2477, - "src": "5442:25:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2563, - "name": "_tranchePercent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2554, - "src": "5500:15:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2561, - "name": "totalTranchePercentBefore", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2477, - "src": "5470:25:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2562, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 6853, - "src": "5470:29:4", - "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": 2564, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5470:46:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5442:74:4", + "src": "8869:46:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 2566, - "nodeType": "ExpressionStatement", - "src": "5442:74:4" + "id": 4017, + "nodeType": "EmitStatement", + "src": "8864:51:6" } ] }, @@ -8337,229 +12116,142 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2549, + "id": 3829, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2547, - "name": "dIndex", + "id": 3827, + "name": "ln", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2544, - "src": "5313:6:4", + "referencedDeclaration": 3821, + "src": "7432:2:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", - "operator": ">", + "operator": "!=", "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2548, + "id": 3828, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5322:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5313:10:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2568, - "nodeType": "WhileStatement", - "src": "5306:221:4" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 2569, - "name": "tranchePercent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2526, - "src": "5558:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2570, - "name": "totalTranchePercentBefore", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2477, - "src": "5636:25:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "src": "7438:1:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" }, - { - "argumentTypes": null, - "id": 2571, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2482, - "src": "5675:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 2572, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "5544:146:4", + "value": "0" + }, + "src": "7432:7:6", "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256,uint256)" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "functionReturnParameters": 2480, - "id": 2573, - "nodeType": "Return", - "src": "5537:153:4" + "id": 4019, + "nodeType": "WhileStatement", + "src": "7426:1500:6" } ] }, "documentation": null, - "id": 2575, + "id": 4021, "implemented": true, "isConstructor": false, - "isDeclaredConst": true, + "isDeclaredConst": false, "modifiers": [], - "name": "getTrancheParameters", + "name": "_transferTranche", "nodeType": "FunctionDefinition", "parameters": { - "id": 2473, - "nodeType": "ParameterList", - "parameters": [], - "src": "4616:2:4" - }, - "payable": false, - "returnParameters": { - "id": 2480, + "id": 3818, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2475, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2575, - "src": "4640:4:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2474, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4640:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2477, - "name": "totalTranchePercentBefore", - "nodeType": "VariableDeclaration", - "scope": 2575, - "src": "4646:30:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2476, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4646:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2479, - "name": "", + "id": 3817, + "name": "_invoice", "nodeType": "VariableDeclaration", - "scope": 2575, - "src": "4678:4:4", + "scope": 4021, + "src": "7336:16:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3]" }, "typeName": { - "id": 2478, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4678:4:4", + "baseType": { + "id": 3814, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7336:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3816, + "length": { + "argumentTypes": null, + "hexValue": "33", + "id": 3815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7341:1:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "3" + }, + "nodeType": "ArrayTypeName", + "src": "7336:7:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_uint256_$3_storage_ptr", + "typeString": "uint256[3]" } }, "value": null, "visibility": "internal" } ], - "src": "4639:44:4" + "src": "7335:18:6" }, - "scope": 2899, - "src": "4587:1110:4", - "stateMutability": "view", + "payable": false, + "returnParameters": { + "id": 3819, + "nodeType": "ParameterList", + "parameters": [], + "src": "7363:0:6" + }, + "scope": 4424, + "src": "7310:1622:6", + "stateMutability": "nonpayable", "superFunction": null, - "visibility": "public" + "visibility": "internal" }, { "body": { - "id": 2664, + "id": 4111, "nodeType": "Block", - "src": "5754:686:4", + "src": "9046:614:6", "statements": [ { "expression": { @@ -8570,18 +12262,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 2583, - "name": "trancheTransferAllowed", + "id": 4029, + "name": "tokenRefundAllowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2885, - "src": "5772:22:4", + "referencedDeclaration": 4346, + "src": "9064:18:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", "typeString": "function () view returns (bool)" } }, - "id": 2584, + "id": 4030, "isConstant": false, "isLValue": false, "isPure": false, @@ -8589,7 +12281,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5772:24:4", + "src": "9064:20:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8603,21 +12295,21 @@ "typeString": "bool" } ], - "id": 2582, + "id": 4028, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "5764:7:4", + "referencedDeclaration": 10045, + "src": "9056:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2585, + "id": 4031, "isConstant": false, "isLValue": false, "isPure": false, @@ -8625,161 +12317,93 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5764:33:4", + "src": "9056:29:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2586, + "id": 4032, "nodeType": "ExpressionStatement", - "src": "5764:33:4" + "src": "9056:29:6" }, { - "assignments": [ - 2588 - ], - "declarations": [ - { - "constant": false, - "id": 2588, - "name": "trancheAmount", - "nodeType": "VariableDeclaration", - "scope": 2665, - "src": "5808:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2587, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5808:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2591, - "initialValue": { + "expression": { "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2589, - "name": "getTrancheAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2472, - "src": "5829:16:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 2590, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5829:18:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5808:39:4" - }, - { - "assignments": [ - 2593, - null, - 2595 - ], - "declarations": [ - { - "constant": false, - "id": 2593, - "name": "tranchePercent", - "nodeType": "VariableDeclaration", - "scope": 2665, - "src": "5858:19:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2592, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5858:4:4", - "typeDescriptions": { + "arguments": [ + { + "argumentTypes": null, + "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - null, - { - "constant": false, - "id": 2595, - "name": "milestoneIndex", - "nodeType": "VariableDeclaration", - "scope": 2665, - "src": "5880:19:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2594, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5880:4:4", + }, + "id": 4036, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4034, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4023, + "src": "9103:11:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4035, + "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_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2598, - "initialValue": { - "argumentTypes": null, - "arguments": [], + } + ], "expression": { - "argumentTypes": [], - "id": 2596, - "name": "getTrancheParameters", + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4033, + "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2575, - "src": "5903:20:4", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "9095:7:6", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_uint256_$_t_uint256_$", - "typeString": "function () view returns (uint256,uint256,uint256)" + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" } }, - "id": 2597, + "id": 4037, "isConstant": false, "isLValue": false, "isPure": false, @@ -8787,14 +12411,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5903:22:4", + "src": "9095:25:6", "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256,uint256)" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "nodeType": "VariableDeclarationStatement", - "src": "5857:68:4" + "id": 4038, + "nodeType": "ExpressionStatement", + "src": "9095:25:6" }, { "expression": { @@ -8806,45 +12431,83 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2602, + "id": 4045, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2600, - "name": "trancheAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2588, - "src": "5944:13:4", + "baseExpression": { + "argumentTypes": null, + "id": 4040, + "name": "tokenBoughtPerInvestor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3240, + "src": "9138:22:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4043, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4041, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10042, + "src": "9161:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4042, + "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": ">", + "operator": ">=", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 2601, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5960:1:4", - "subdenomination": null, + "id": 4044, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4023, + "src": "9176:11:6", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - "src": "5944:17:4", + "src": "9138:49:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8858,21 +12521,21 @@ "typeString": "bool" } ], - "id": 2599, + "id": 4039, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "5936:7:4", + "referencedDeclaration": 10045, + "src": "9130:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2603, + "id": 4046, "isConstant": false, "isLValue": false, "isPure": false, @@ -8880,404 +12543,455 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5936:26:4", + "src": "9130:58:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2604, + "id": 4047, "nodeType": "ExpressionStatement", - "src": "5936:26:4" + "src": "9130:58:6" }, { "expression": { "argumentTypes": null, - "id": 2609, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2605, - "name": "completedTranches", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2038, - "src": "5973:17:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", - "typeString": "mapping(uint256 => bool)" - } - }, - "id": 2607, - "indexExpression": { + "arguments": [ + { "argumentTypes": null, - "id": 2606, - "name": "milestoneIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2595, - "src": "5991:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5973:33:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2608, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6009:4:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "5973:40:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2610, - "nodeType": "ExpressionStatement", - "src": "5973:40:4" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 2612, - "name": "fee", - "nodeType": "VariableDeclaration", - "scope": 2665, - "src": "6024:8:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2611, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6024:4:4", - "typeDescriptions": { + "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2613, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "6024:8:4" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2614, - "name": "trancheFeePercent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2046, - "src": "6047:17:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2615, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6067:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6047:21:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2632, - "nodeType": "IfStatement", - "src": "6043:150:4", - "trueBody": { - "id": 2631, - "nodeType": "Block", - "src": "6070:123:4", - "statements": [ - { - "expression": { + }, + "id": 4055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, - "id": 2622, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2617, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2612, - "src": "6084:3:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2620, - "name": "trancheFeePercent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2046, - "src": "6112:17:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], + "arguments": [ + { + "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2618, - "name": "trancheAmount", + "id": 4051, + "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2588, - "src": "6090:13:4", + "referencedDeclaration": 10042, + "src": "9223:3:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_magic_message", + "typeString": "msg" } }, - "id": 2619, + "id": 4052, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "percent", + "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": 4568, - "src": "6090:21:4", + "referencedDeclaration": null, + "src": "9223:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 4049, + "name": "wToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3212, + "src": "9206:6: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)" + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" } }, - "id": 2621, + "id": 4050, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6090:40:4", + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 9779, + "src": "9206:16:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" } }, - "src": "6084:46:4", + "id": 4053, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9206:28:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2623, - "nodeType": "ExpressionStatement", - "src": "6084:46:4" - }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 4054, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4023, + "src": "9238:11:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9206:43:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4048, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "9198:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9198:52:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4057, + "nodeType": "ExpressionStatement", + "src": "9198:52:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ { - "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, - "id": 2629, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2624, - "name": "trancheAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2588, - "src": "6144:13:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { + "arguments": [ + { + "argumentTypes": null, + "expression": { "argumentTypes": null, - "id": 2627, - "name": "fee", + "id": 4061, + "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2612, - "src": "6178:3:4", + "referencedDeclaration": 10042, + "src": "9285:3:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_magic_message", + "typeString": "msg" } + }, + "id": 4062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9285:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" } - ], - "expression": { - "argumentTypes": [ + }, + { + "argumentTypes": null, + "arguments": [ { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "argumentTypes": null, + "id": 4064, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10117, + "src": "9305:4:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_W12Fund_$4424", + "typeString": "contract W12Fund" + } } ], "expression": { - "argumentTypes": null, - "id": 2625, - "name": "trancheAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2588, - "src": "6160:13:4", + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_W12Fund_$4424", + "typeString": "contract W12Fund" + } + ], + "id": 4063, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9297:7:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, - "id": 2626, + "id": 4065, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "typeConversion", "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 6829, - "src": "6160:17:4", + "names": [], + "nodeType": "FunctionCall", + "src": "9297:13: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)" + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 4059, + "name": "wToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3212, + "src": "9268:6:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" } }, - "id": 2628, + "id": 4060, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6160:22:4", + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 9736, + "src": "9268:16:6", "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)" } }, - "src": "6144:38:4", + "id": 4066, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9268:43:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2630, - "nodeType": "ExpressionStatement", - "src": "6144:38:4" + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 4067, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4023, + "src": "9315:11:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9268:58:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4058, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "9260:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4069, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9260:67:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4070, + "nodeType": "ExpressionStatement", + "src": "9260:67:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4072, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4023, + "src": "9352:11:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } } - ] - } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4071, + "name": "_refundAssets", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4310, + "src": "9338:13:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 4073, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9338:26:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4074, + "nodeType": "ExpressionStatement", + "src": "9338:26:6" }, { "expression": { "argumentTypes": null, - "id": 2638, + "id": 4080, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2633, - "name": "totalTranchePercentReleased", + "id": 4075, + "name": "totalTokenRefunded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2044, - "src": "6203:27:4", + "referencedDeclaration": 3236, + "src": "9375:18:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9290,12 +13004,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2636, - "name": "tranchePercent", + "id": 4078, + "name": "tokenAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2593, - "src": "6265:14:4", + "referencedDeclaration": 4023, + "src": "9419:11:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9311,32 +13025,32 @@ ], "expression": { "argumentTypes": null, - "id": 2634, - "name": "totalTranchePercentReleased", + "id": 4076, + "name": "totalTokenRefunded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2044, - "src": "6233:27:4", + "referencedDeclaration": 3236, + "src": "9396:18:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2635, + "id": 4077, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 6853, - "src": "6233:31:4", + "referencedDeclaration": 9601, + "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": 2637, + "id": 4079, "isConstant": false, "isLValue": false, "isPure": false, @@ -9344,89 +13058,99 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6233:47:4", + "src": "9396:35:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6203:77:4", + "src": "9375:56:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2639, + "id": 4081, "nodeType": "ExpressionStatement", - "src": "6203:77:4" + "src": "9375:56:6" }, { - "condition": { + "expression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2642, + "id": 4093, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftExpression": { + "leftHandSide": { "argumentTypes": null, - "id": 2640, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2612, - "src": "6295:3:4", + "baseExpression": { + "argumentTypes": null, + "id": 4082, + "name": "tokenBoughtPerInvestor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3240, + "src": "9441:22:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4085, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4083, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10042, + "src": "9464:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4084, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9464:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9441:34:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2641, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6301:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6295:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2649, - "nodeType": "IfStatement", - "src": "6291:40:4", - "trueBody": { - "expression": { + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 2646, - "name": "fee", + "id": 4091, + "name": "tokenAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2612, - "src": "6327:3:4", + "referencedDeclaration": 4023, + "src": "9517:11:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9442,32 +13166,75 @@ ], "expression": { "argumentTypes": null, - "id": 2643, - "name": "serviceWallet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2026, - "src": "6304:13:4", + "baseExpression": { + "argumentTypes": null, + "id": 4086, + "name": "tokenBoughtPerInvestor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3240, + "src": "9478:22:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4089, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4087, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10042, + "src": "9501:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4088, + "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_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 2645, + "id": 4090, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "transfer", + "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6304:22:4", + "referencedDeclaration": 9577, + "src": "9478:38:6", "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (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": 2647, + "id": 4092, "isConstant": false, "isLValue": false, "isPure": false, @@ -9475,16 +13242,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6304:27:4", + "src": "9478:51:6", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 2648, - "nodeType": "ExpressionStatement", - "src": "6304:27:4" - } + "src": "9441:88:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4094, + "nodeType": "ExpressionStatement", + "src": "9441:88:6" }, { "expression": { @@ -9492,69 +13264,142 @@ "arguments": [ { "argumentTypes": null, - "id": 2655, - "name": "trancheAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2588, - "src": "6361:13:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4098, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10042, + "src": "9568:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4099, + "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": 4100, + "name": "swap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3216, + "src": "9580:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 4101, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4023, + "src": "9586:11:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], "expression": { - "argumentTypes": null, - "id": 2650, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "6341:3:4", + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 4096, + "name": "wToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3212, + "src": "9548:6:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" + } + }, + "id": 4097, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 9747, + "src": "9548:19:6", "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" } }, - "id": 2653, + "id": 4102, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6341:10:4", + "names": [], + "nodeType": "FunctionCall", + "src": "9548:50:6", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bool", + "typeString": "bool" } - }, - "id": 2654, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6341:19:4", + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4095, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "9540:7:6", "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" } }, - "id": 2656, + "id": 4103, "isConstant": false, "isLValue": false, "isPure": false, @@ -9562,15 +13407,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6341:34:4", + "src": "9540:59:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2657, + "id": 4104, "nodeType": "ExpressionStatement", - "src": "6341:34:4" + "src": "9540:59:6" }, { "eventCall": { @@ -9580,18 +13425,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2659, + "id": 4106, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "6407:3:4", + "referencedDeclaration": 10042, + "src": "9629:3:6", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2660, + "id": 4107, "isConstant": false, "isLValue": false, "isPure": false, @@ -9599,7 +13444,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6407:10:4", + "src": "9629:10:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9607,12 +13452,12 @@ }, { "argumentTypes": null, - "id": 2661, - "name": "trancheAmount", + "id": 4108, + "name": "tokenAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2588, - "src": "6419:13:4", + "referencedDeclaration": 4023, + "src": "9641:11:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9630,18 +13475,18 @@ "typeString": "uint256" } ], - "id": 2658, - "name": "TrancheReleased", + "id": 4105, + "name": "TokenRefunded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2075, - "src": "6391:15:4", + "referencedDeclaration": 3268, + "src": "9615:13:6", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 2662, + "id": 4109, "isConstant": false, "isLValue": false, "isPure": false, @@ -9649,522 +13494,1408 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6391:42:4", + "src": "9615:38:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2663, + "id": 4110, "nodeType": "EmitStatement", - "src": "6386:47:4" + "src": "9610:43:6" } ] }, - "documentation": null, - "id": 2665, + "documentation": "@notice Refund bought tokens", + "id": 4112, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 2578, - "modifierName": { - "argumentTypes": null, - "id": 2577, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6888, - "src": "5731:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "5731:9:4" - }, - { - "arguments": null, - "id": 2580, + "id": 4026, "modifierName": { "argumentTypes": null, - "id": 2579, + "id": 4025, "name": "nonReentrant", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6689, - "src": "5741:12:4", + "referencedDeclaration": 9330, + "src": "9033:12:6", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "5741:12:4" + "src": "9033:12:6" } ], - "name": "tranche", + "name": "refund", "nodeType": "FunctionDefinition", "parameters": { - "id": 2576, + "id": 4024, "nodeType": "ParameterList", - "parameters": [], - "src": "5719:2:4" + "parameters": [ + { + "constant": false, + "id": 4023, + "name": "tokenAmount", + "nodeType": "VariableDeclaration", + "scope": 4112, + "src": "9006:16:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4022, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "9006:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9005:18:6" }, "payable": false, "returnParameters": { - "id": 2581, + "id": 4027, "nodeType": "ParameterList", "parameters": [], - "src": "5754:0:4" + "src": "9046:0:6" }, - "scope": 2899, - "src": "5703:737:4", + "scope": 4424, + "src": "8990:670:6", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" }, { "body": { - "id": 2796, + "id": 4309, "nodeType": "Block", - "src": "6506:962:4", + "src": "9716:1798:6", "statements": [ { "assignments": [ - 2673 + 4118 ], "declarations": [ { "constant": false, - "id": 2673, - "name": "buyer", + "id": 4118, + "name": "ln", "nodeType": "VariableDeclaration", - "scope": 2797, - "src": "6516:13:4", + "scope": 4310, + "src": "9726:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 2672, - "name": "address", + "id": 4117, + "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6516:7:4", + "src": "9726:4:6", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4126, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4119, + "name": "fundedPerInvestor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3244, + "src": "9736:17:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Account_$4698_storage_$", + "typeString": "mapping(address => struct FundAccount.Account storage ref)" + } + }, + "id": 4122, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4120, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10042, + "src": "9754:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4121, + "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", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage", + "typeString": "struct FundAccount.Account storage ref" + } + }, + "id": 4123, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "symbolsList", + "nodeType": "MemberAccess", + "referencedDeclaration": 4809, + "src": "9736:41:6", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Account_$4698_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$bound_to$_t_struct$_Account_$4698_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer) view returns (bytes32[] memory)" } }, - "value": null, - "visibility": "internal" - } - ], - "id": 2676, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2674, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "6532:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2675, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6532:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6516:26:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ + "id": 4124, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9736:43:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[] memory" + } + }, + "id": 4125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9736:50:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9726:60:6" + }, + { + "body": { + "id": 4307, + "nodeType": "Block", + "src": "9813:1695:6", + "statements": [ + { + "assignments": [ + 4131 + ], + "declarations": [ + { + "constant": false, + "id": 4131, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 4310, + "src": "9827:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4130, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "9827:7:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4141, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4132, + "name": "fundedPerInvestor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3244, + "src": "9844:17:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Account_$4698_storage_$", + "typeString": "mapping(address => struct FundAccount.Account storage ref)" + } + }, + "id": 4135, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4133, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10042, + "src": "9862:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4134, + "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_$4698_storage", + "typeString": "struct FundAccount.Account storage ref" + } + }, + "id": 4136, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "symbolsList", + "nodeType": "MemberAccess", + "referencedDeclaration": 4809, + "src": "9844:41:6", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Account_$4698_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$bound_to$_t_struct$_Account_$4698_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer) view returns (bytes32[] memory)" + } + }, + "id": 4137, + "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": 4140, + "indexExpression": { + "argumentTypes": null, + "id": 4139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "--", + "prefix": true, + "src": "9888:4:6", + "subExpression": { + "argumentTypes": null, + "id": 4138, + "name": "ln", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4118, + "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" + }, { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2678, - "name": "refundAllowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2833, - "src": "6561:13:4", + "assignments": [ + 4143 + ], + "declarations": [ + { + "constant": false, + "id": 4143, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 4310, + "src": "9907:11:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4142, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "9907:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4151, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4149, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4131, + "src": "9960:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4144, + "name": "fundedPerInvestor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3244, + "src": "9921:17:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Account_$4698_storage_$", + "typeString": "mapping(address => struct FundAccount.Account storage ref)" + } + }, + "id": 4147, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4145, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10042, + "src": "9939:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4146, + "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_$4698_storage", + "typeString": "struct FundAccount.Account storage ref" + } + }, + "id": 4148, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amountOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 4797, + "src": "9921:38:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Account_$4698_storage_ptr_$_t_bytes32_$returns$_t_uint256_$bound_to$_t_struct$_Account_$4698_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer,bytes32) view returns (uint256)" + } + }, + "id": 4150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9921:46:6", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", - "typeString": "function () view returns (bool)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 2679, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6561:15:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2677, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 7297, - 7298 - ], - "referencedDeclaration": 7297, - "src": "6553:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2680, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6553:24:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2681, - "nodeType": "ExpressionStatement", - "src": "6553:24:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ + "nodeType": "VariableDeclarationStatement", + "src": "9907:60:6" + }, { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4154, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4152, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4143, + "src": "9986:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4153, + "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" + } }, - "id": 2685, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "falseBody": null, + "id": 4156, + "nodeType": "IfStatement", + "src": "9982:25:6", + "trueBody": { + "id": 4155, + "nodeType": "Continue", + "src": "9999:8:6" + } + }, + { + "assignments": [ + 4158 + ], + "declarations": [ + { + "constant": false, + "id": 4158, + "name": "sourceAmount", + "nodeType": "VariableDeclaration", + "scope": 4310, + "src": "10055:17:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4157, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "10055:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4168, + "initialValue": { "argumentTypes": null, - "id": 2683, - "name": "wtokensToRefund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2667, - "src": "6595:15:4", + "arguments": [ + { + "argumentTypes": null, + "id": 4161, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4114, + "src": "10109:11:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 4162, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4143, + "src": "10138:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4163, + "name": "tokenBoughtPerInvestor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3240, + "src": "10162:22:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4166, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4164, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10042, + "src": "10185:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4165, + "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": 4159, + "name": "Utils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6060, + "src": "10075:5:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Utils_$6060_$", + "typeString": "type(library Utils)" + } + }, + "id": 4160, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeMulDiv", + "nodeType": "MemberAccess", + "referencedDeclaration": 6059, + "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": 4167, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10075:135:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { + "nodeType": "VariableDeclarationStatement", + "src": "10055:155:6" + }, + { + "expression": { "argumentTypes": null, - "hexValue": "30", - "id": 2684, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4172, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4170, + "name": "sourceAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4158, + "src": "10233:12:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4171, + "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": 4169, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "10225:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4173, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "number", + "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "Literal", - "src": "6613:1:4", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "10225:25:6", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } }, - "src": "6595:19:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2682, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 7297, - 7298 - ], - "referencedDeclaration": 7297, - "src": "6587:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2686, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6587:28:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2687, - "nodeType": "ExpressionStatement", - "src": "6587:28:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ + "id": 4174, + "nodeType": "ExpressionStatement", + "src": "10225:25:6" + }, { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2694, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "assignments": [ + 4176 + ], + "declarations": [ + { + "constant": false, + "id": 4176, + "name": "releasedTranche", + "nodeType": "VariableDeclaration", + "scope": 4310, + "src": "10328:20:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4175, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "10328:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4184, + "initialValue": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { + "arguments": [ + { "argumentTypes": null, - "id": 2689, - "name": "buyers", + "id": 4182, + "name": "totalTranchePercentReleased", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2034, - "src": "6633:6:4", + "referencedDeclaration": 3222, + "src": "10426:27:6", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_TokenPriceInfo_$2053_storage_$", - "typeString": "mapping(address => struct W12Fund.TokenPriceInfo storage ref)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - }, - "id": 2691, - "indexExpression": { + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { "argumentTypes": null, - "id": 2690, - "name": "buyer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2673, - "src": "6640:5:4", + "arguments": [ + { + "argumentTypes": null, + "id": 4179, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4131, + "src": "10389:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 4177, + "name": "totalFunded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3228, + "src": "10351:11:6", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage", + "typeString": "struct FundAccount.Account storage ref" + } + }, + "id": 4178, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amountOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 4797, + "src": "10351:37:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Account_$4698_storage_ptr_$_t_bytes32_$returns$_t_uint256_$bound_to$_t_struct$_Account_$4698_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer,bytes32) view returns (uint256)" + } + }, + "id": 4180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10351:45:6", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, + "id": 4181, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6633:13:4", + "memberName": "safePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 5040, + "src": "10351:74:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_TokenPriceInfo_$2053_storage", - "typeString": "struct W12Fund.TokenPriceInfo 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": 2692, + "id": 4183, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "memberName": "totalBought", - "nodeType": "MemberAccess", - "referencedDeclaration": 2048, - "src": "6633:25:4", + "names": [], + "nodeType": "FunctionCall", + "src": "10351:103:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { + "nodeType": "VariableDeclarationStatement", + "src": "10328:126:6" + }, + { + "expression": { "argumentTypes": null, - "id": 2693, - "name": "wtokensToRefund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2667, - "src": "6662:15:4", + "id": 4201, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4185, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4143, + "src": "10518:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4193, + "name": "releasedTranche", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4176, + "src": "10594:15:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4190, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4131, + "src": "10582:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 4188, + "name": "totalFunded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3228, + "src": "10561:11:6", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage", + "typeString": "struct FundAccount.Account storage ref" + } + }, + "id": 4189, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amountOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 4797, + "src": "10561:20:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Account_$4698_storage_ptr_$_t_bytes32_$returns$_t_uint256_$bound_to$_t_struct$_Account_$4698_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer,bytes32) view returns (uint256)" + } + }, + "id": 4191, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10561:28:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9577, + "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": 4194, + "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": 4195, + "name": "sourceAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4158, + "src": "10628:12:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4198, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4131, + "src": "10679:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 4196, + "name": "totalFunded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3228, + "src": "10658:11:6", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage", + "typeString": "struct FundAccount.Account storage ref" + } + }, + "id": 4197, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amountOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 4797, + "src": "10658:20:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Account_$4698_storage_ptr_$_t_bytes32_$returns$_t_uint256_$bound_to$_t_struct$_Account_$4698_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer,bytes32) view returns (uint256)" + } + }, + "id": 4199, + "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": 4186, + "name": "Utils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6060, + "src": "10527:5:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Utils_$6060_$", + "typeString": "type(library Utils)" + } + }, + "id": 4187, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeMulDiv", + "nodeType": "MemberAccess", + "referencedDeclaration": 6059, + "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": 4200, + "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" } }, - "src": "6633:44:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2688, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 7297, - 7298 - ], - "referencedDeclaration": 7297, - "src": "6625:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2695, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6625:53:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2696, - "nodeType": "ExpressionStatement", - "src": "6625:53:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ + "id": 4202, + "nodeType": "ExpressionStatement", + "src": "10518:182:6" + }, { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2703, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 2700, - "name": "buyer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2673, - "src": "6713:5:4", + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4206, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4204, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4143, + "src": "10723:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4205, + "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_address", - "typeString": "address" + "typeIdentifier": "t_bool", + "typeString": "bool" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bool", + "typeString": "bool" } ], - "expression": { - "argumentTypes": null, - "id": 2698, - "name": "wToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2028, - "src": "6696:6:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" - } - }, - "id": 2699, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 5276, - "src": "6696:16:4", + "id": 4203, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "10715:7:6", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" } }, - "id": 2701, + "id": 4207, "isConstant": false, "isLValue": false, "isPure": false, @@ -10172,211 +14903,281 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6696:23:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 2702, - "name": "wtokensToRefund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2667, - "src": "6723:15:4", + "src": "10715:19:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "src": "6696:42:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2697, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 7297, - 7298 - ], - "referencedDeclaration": 7297, - "src": "6688:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2704, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6688:51:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2705, - "nodeType": "ExpressionStatement", - "src": "6688:51:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ + "id": 4208, + "nodeType": "ExpressionStatement", + "src": "10715:19:6" + }, { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2716, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "expression": { "argumentTypes": null, - "arguments": [ - { + "id": 4218, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { "argumentTypes": null, - "expression": { + "id": 4209, + "name": "totalFundedReleased", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3232, + "src": "10749:19:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 4211, + "indexExpression": { + "argumentTypes": null, + "id": 4210, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4131, + "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": 2709, - "name": "msg", + "id": 4216, + "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "6774:3:4", + "referencedDeclaration": 4143, + "src": "10811:6:6", "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - }, - "id": 2710, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6774:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" } - }, - { - "argumentTypes": null, - "arguments": [ + ], + "expression": { + "argumentTypes": [ { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4212, + "name": "totalFundedReleased", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3232, + "src": "10779:19:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 4214, + "indexExpression": { "argumentTypes": null, - "id": 2712, - "name": "this", + "id": 4213, + "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7343, - "src": "6794:4:4", + "referencedDeclaration": 4131, + "src": "10799:6:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_W12Fund_$2899", - "typeString": "contract W12Fund" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_W12Fund_$2899", - "typeString": "contract W12Fund" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } - ], - "id": 2711, + }, "isConstant": false, - "isLValue": false, - "isPure": true, + "isLValue": true, + "isPure": false, "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6786:7:4", + "nodeType": "IndexAccess", + "src": "10779:27:6", "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - "id": 2713, + "id": 4215, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "typeConversion", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6786:13:4", + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9601, + "src": "10779:31:6", "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": 4217, + "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": 4219, + "nodeType": "ExpressionStatement", + "src": "10749:69:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4225, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4131, + "src": "10873:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 4226, + "name": "sourceAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4158, + "src": "10881:12:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" }, { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], "expression": { "argumentTypes": null, - "id": 2707, - "name": "wToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2028, - "src": "6757:6:4", + "baseExpression": { + "argumentTypes": null, + "id": 4220, + "name": "fundedPerInvestor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3244, + "src": "10832:17:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Account_$4698_storage_$", + "typeString": "mapping(address => struct FundAccount.Account storage ref)" + } + }, + "id": 4223, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4221, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10042, + "src": "10850:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4222, + "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_contract$_WToken_$5925", - "typeString": "contract WToken" + "typeIdentifier": "t_struct$_Account_$4698_storage", + "typeString": "struct FundAccount.Account storage ref" } }, - "id": 2708, + "id": 4224, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, "lValueRequested": false, - "memberName": "allowance", + "memberName": "withdrawal", "nodeType": "MemberAccess", - "referencedDeclaration": 5410, - "src": "6757:16:4", + "referencedDeclaration": 4767, + "src": "10832:40:6", "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_nonpayable$_t_struct$_Account_$4698_storage_ptr_$_t_bytes32_$_t_uint256_$returns$__$bound_to$_t_struct$_Account_$4698_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer,bytes32,uint256)" } }, - "id": 2714, + "id": 4227, "isConstant": false, "isLValue": false, "isPure": false, @@ -10384,1244 +15185,1216 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6757:43:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 2715, - "name": "wtokensToRefund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2667, - "src": "6804:15:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6757:62:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2706, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 7297, - 7298 - ], - "referencedDeclaration": 7297, - "src": "6749:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2717, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6749:71:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2718, - "nodeType": "ExpressionStatement", - "src": "6749:71:4" - }, - { - "assignments": [ - 2720 - ], - "declarations": [ - { - "constant": false, - "id": 2720, - "name": "transferAmount", - "nodeType": "VariableDeclaration", - "scope": 2797, - "src": "6831:19:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2719, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6831:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2724, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2722, - "name": "wtokensToRefund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2667, - "src": "6869:15:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2721, - "name": "getRefundAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2419, - "src": "6853:15:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) view returns (uint256)" - } - }, - "id": 2723, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6853:32:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6831:54:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2728, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2726, - "name": "transferAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2720, - "src": "6904:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "src": "10832:62:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { + "id": 4228, + "nodeType": "ExpressionStatement", + "src": "10832:62:6" + }, + { + "condition": { "argumentTypes": null, - "hexValue": "30", - "id": 2727, + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 4231, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "number", + "isPure": false, "lValueRequested": false, - "nodeType": "Literal", - "src": "6921:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "leftExpression": { + "argumentTypes": null, + "id": 4229, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4131, + "src": "10913:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } }, - "value": "0" - }, - "src": "6904:18:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2725, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 7297, - 7298 - ], - "referencedDeclaration": 7297, - "src": "6896:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2729, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6896:27:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2730, - "nodeType": "ExpressionStatement", - "src": "6896:27:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 2742, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2731, - "name": "buyers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2034, - "src": "6934:6:4", + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 4230, + "name": "METHOD_USD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3208, + "src": "10923:10:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "10913:20:6", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_TokenPriceInfo_$2053_storage_$", - "typeString": "mapping(address => struct W12Fund.TokenPriceInfo storage ref)" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 2733, - "indexExpression": { + "falseBody": null, + "id": 4233, + "nodeType": "IfStatement", + "src": "10909:34:6", + "trueBody": { + "id": 4232, + "nodeType": "Continue", + "src": "10935:8:6" + } + }, + { + "condition": { "argumentTypes": null, - "id": 2732, - "name": "buyer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2673, - "src": "6941:5:4", + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 4236, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4234, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4131, + "src": "10962:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 4235, + "name": "METHOD_ETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3203, + "src": "10972:10:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "10962:20:6", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6934:13:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TokenPriceInfo_$2053_storage", - "typeString": "struct W12Fund.TokenPriceInfo storage ref" + "falseBody": { + "id": 4270, + "nodeType": "Block", + "src": "11151:73:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4267, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4263, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10117, + "src": "11185:4:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_W12Fund_$4424", + "typeString": "contract W12Fund" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_W12Fund_$4424", + "typeString": "contract W12Fund" + } + ], + "id": 4262, + "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": 4264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11177:13:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 4265, + "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": 4266, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4143, + "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": 4261, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "11169:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11169:40:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4269, + "nodeType": "ExpressionStatement", + "src": "11169:40:6" + } + ] + }, + "id": 4271, + "nodeType": "IfStatement", + "src": "10958:266:6", + "trueBody": { + "id": 4260, + "nodeType": "Block", + "src": "10984:161:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4240, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4131, + "src": "11024:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 4238, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3214, + "src": "11010:5:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "id": 4239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 6992, + "src": "11010:13:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (bytes32) view external returns (bool)" + } + }, + "id": 4241, + "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": 4237, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "11002:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4242, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11002:30:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4243, + "nodeType": "ExpressionStatement", + "src": "11002:30:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4257, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4253, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10117, + "src": "11113:4:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_W12Fund_$4424", + "typeString": "contract W12Fund" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_W12Fund_$4424", + "typeString": "contract W12Fund" + } + ], + "id": 4252, + "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": 4254, + "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": 4248, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4131, + "src": "11086:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 4246, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3214, + "src": "11064:5:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "id": 4247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getTokenAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 6985, + "src": "11064:21:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view external returns (address)" + } + }, + "id": 4249, + "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": 4245, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9765, + "src": "11058:5:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$9765_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 4250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11058:36:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$9765", + "typeString": "contract ERC20" + } + }, + "id": 4251, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 9779, + "src": "11058:46:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 4255, + "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": 4256, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4143, + "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": 4244, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "11050:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4258, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11050:80:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4259, + "nodeType": "ExpressionStatement", + "src": "11050:80:6" + } + ] } }, - "id": 2734, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "totalBought", - "nodeType": "MemberAccess", - "referencedDeclaration": 2048, - "src": "6934:25:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2740, - "name": "wtokensToRefund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2667, - "src": "7005:15:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { + { + "condition": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2735, - "name": "buyers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2034, - "src": "6962:6:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_TokenPriceInfo_$2053_storage_$", - "typeString": "mapping(address => struct W12Fund.TokenPriceInfo storage ref)" - } - }, - "id": 2737, - "indexExpression": { - "argumentTypes": null, - "id": 2736, - "name": "buyer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2673, - "src": "6969:5:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6962:13:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TokenPriceInfo_$2053_storage", - "typeString": "struct W12Fund.TokenPriceInfo storage ref" - } + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" }, - "id": 2738, + "id": 4274, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "totalBought", - "nodeType": "MemberAccess", - "referencedDeclaration": 2048, - "src": "6962:25:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2739, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 6829, - "src": "6962:42:4", - "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": 2741, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6962:59:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6934:87:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2743, - "nodeType": "ExpressionStatement", - "src": "6934:87:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 2766, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2744, - "name": "buyers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2034, - "src": "7031:6:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_TokenPriceInfo_$2053_storage_$", - "typeString": "mapping(address => struct W12Fund.TokenPriceInfo storage ref)" - } - }, - "id": 2746, - "indexExpression": { - "argumentTypes": null, - "id": 2745, - "name": "buyer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2673, - "src": "7038:5:4", + "leftExpression": { + "argumentTypes": null, + "id": 4272, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4131, + "src": "11242:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 4273, + "name": "METHOD_ETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3203, + "src": "11252:10:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "11242:20:6", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7031:13:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TokenPriceInfo_$2053_storage", - "typeString": "struct W12Fund.TokenPriceInfo storage ref" - } - }, - "id": 2747, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "totalFunded", - "nodeType": "MemberAccess", - "referencedDeclaration": 2052, - "src": "7031:25:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ + "falseBody": { + "id": 4298, + "nodeType": "Block", + "src": "11330:107:6", + "statements": [ { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2763, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "expression": { "argumentTypes": null, - "hexValue": "3130", - "id": 2761, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4292, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10042, + "src": "11402:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4293, + "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": 4294, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4143, + "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": 4288, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4131, + "src": "11384:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 4286, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3214, + "src": "11362:5:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "id": 4287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getTokenAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 6985, + "src": "11362:21:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view external returns (address)" + } + }, + "id": 4289, + "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": 4285, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9765, + "src": "11356:5:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$9765_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 4290, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11356:36:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$9765", + "typeString": "contract ERC20" + } + }, + "id": 4291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 9788, + "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": 4295, + "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": 4284, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "11348:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4296, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "number", + "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "Literal", - "src": "7154:2:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "id": 2762, - "name": "tokenDecimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2030, - "src": "7160:13:4", + "names": [], + "nodeType": "FunctionCall", + "src": "11348:74:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "src": "7154:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "id": 4297, + "nodeType": "ExpressionStatement", + "src": "11348:74:6" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, + ] + }, + "id": 4299, + "nodeType": "IfStatement", + "src": "11238:199:6", + "trueBody": { + "id": 4283, + "nodeType": "Block", + "src": "11264:60:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4280, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4143, + "src": "11302:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], "expression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2755, - "name": "buyers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2034, - "src": "7122:6:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_TokenPriceInfo_$2053_storage_$", - "typeString": "mapping(address => struct W12Fund.TokenPriceInfo storage ref)" - } - }, - "id": 2757, - "indexExpression": { + "expression": { "argumentTypes": null, - "id": 2756, - "name": "buyer", + "id": 4275, + "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2673, - "src": "7129:5:4", + "referencedDeclaration": 10042, + "src": "11282:3:6", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_magic_message", + "typeString": "msg" } }, + "id": 4278, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7122:13:4", + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11282:10:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_TokenPriceInfo_$2053_storage", - "typeString": "struct W12Fund.TokenPriceInfo storage ref" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 2758, + "id": 4279, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "averagePrice", + "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 2050, - "src": "7122:26:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2753, - "name": "wtokensToRefund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2667, - "src": "7102:15:4", + "referencedDeclaration": null, + "src": "11282:19:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" } }, - "id": 2754, + "id": 4281, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 6795, - "src": "7102:19:4", + "names": [], + "nodeType": "FunctionCall", + "src": "11282:27: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)" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 2759, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7102:47:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2760, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 6809, - "src": "7102:51:4", - "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": 2764, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7102:72:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2748, - "name": "buyers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2034, - "src": "7059:6:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_TokenPriceInfo_$2053_storage_$", - "typeString": "mapping(address => struct W12Fund.TokenPriceInfo storage ref)" - } - }, - "id": 2750, - "indexExpression": { - "argumentTypes": null, - "id": 2749, - "name": "buyer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2673, - "src": "7066:5:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7059:13:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TokenPriceInfo_$2053_storage", - "typeString": "struct W12Fund.TokenPriceInfo storage ref" + "id": 4282, + "nodeType": "ExpressionStatement", + "src": "11282:27:6" } - }, - "id": 2751, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "totalFunded", - "nodeType": "MemberAccess", - "referencedDeclaration": 2052, - "src": "7059:25:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2752, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 6829, - "src": "7059:42:4", - "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": 2765, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7059:116:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7031:144:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2767, - "nodeType": "ExpressionStatement", - "src": "7031:144:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 2773, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2768, - "name": "totalRefunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2042, - "src": "7234:13:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2771, - "name": "transferAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2720, - "src": "7268:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2769, - "name": "totalRefunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2042, - "src": "7250:13:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2770, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 6853, - "src": "7250:17:4", - "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": 2772, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7250:33:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7234:49:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2774, - "nodeType": "ExpressionStatement", - "src": "7234:49:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2778, - "name": "buyer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2673, - "src": "7322:5:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2779, - "name": "swap", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2024, - "src": "7329:4:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2780, - "name": "wtokensToRefund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2667, - "src": "7335:15:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ + "eventCall": { + "argumentTypes": null, + "arguments": [ { - "typeIdentifier": "t_address", - "typeString": "address" + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4301, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10042, + "src": "11470:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4302, + "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": 4303, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4131, + "src": "11482:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } }, { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "argumentTypes": null, + "id": 4304, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4143, + "src": "11490:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } } ], "expression": { - "argumentTypes": null, - "id": 2776, - "name": "wToken", + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4300, + "name": "AssetRefunded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2028, - "src": "7302:6:4", + "referencedDeclaration": 3262, + "src": "11456:13:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_uint256_$returns$__$", + "typeString": "function (address,bytes32,uint256)" } }, - "id": 2777, + "id": 4305, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "memberName": "transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 5366, - "src": "7302:19:4", + "names": [], + "nodeType": "FunctionCall", + "src": "11456:41:6", "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_tuple$__$", + "typeString": "tuple()" } }, - "id": 2781, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7302:49:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2775, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 7297, - 7298 - ], - "referencedDeclaration": 7297, - "src": "7294:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "id": 4306, + "nodeType": "EmitStatement", + "src": "11451:46:6" } - }, - "id": 2782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7294:58:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } + ] }, - "id": 2783, - "nodeType": "ExpressionStatement", - "src": "7294:58:4" - }, - { - "expression": { + "condition": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2787, - "name": "transferAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2720, - "src": "7377:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2784, - "name": "buyer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2673, - "src": "7362:5:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2786, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7362:14:4", - "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - "id": 2788, + "id": 4129, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7362:30:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2789, - "nodeType": "ExpressionStatement", - "src": "7362:30:4" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2791, - "name": "buyer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2673, - "src": "7422:5:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2792, - "name": "transferAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2720, - "src": "7429:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2793, - "name": "wtokensToRefund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2667, - "src": "7445:15:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2790, - "name": "FundsRefunded", + "leftExpression": { + "argumentTypes": null, + "id": 4127, + "name": "ln", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2069, - "src": "7408:13:4", + "referencedDeclaration": 4118, + "src": "9804:2:6", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256,uint256)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 2794, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7408:53:4", + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4128, + "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_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 2795, - "nodeType": "EmitStatement", - "src": "7403:58:4" + "id": 4308, + "nodeType": "WhileStatement", + "src": "9797:1711:6" } ] }, "documentation": null, - "id": 2797, + "id": 4310, "implemented": true, "isConstructor": false, "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 2670, - "modifierName": { - "argumentTypes": null, - "id": 2669, - "name": "nonReentrant", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6689, - "src": "6493:12:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "6493:12:4" - } - ], - "name": "refund", + "modifiers": [], + "name": "_refundAssets", "nodeType": "FunctionDefinition", "parameters": { - "id": 2668, + "id": 4115, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2667, - "name": "wtokensToRefund", + "id": 4114, + "name": "tokenAmount", "nodeType": "VariableDeclaration", - "scope": 2797, - "src": "6462:20:4", + "scope": 4310, + "src": "9689:16:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11629,10 +16402,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2666, + "id": 4113, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6462:4:4", + "src": "9689:4:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11642,40 +16415,40 @@ "visibility": "internal" } ], - "src": "6461:22:4" + "src": "9688:18:6" }, "payable": false, "returnParameters": { - "id": 2671, + "id": 4116, "nodeType": "ParameterList", "parameters": [], - "src": "6506:0:4" + "src": "9716:0:6" }, - "scope": 2899, - "src": "6446:1022:4", + "scope": 4424, + "src": "9666:1848:6", "stateMutability": "nonpayable", "superFunction": null, - "visibility": "external" + "visibility": "internal" }, { "body": { - "id": 2832, + "id": 4345, "nodeType": "Block", - "src": "7526:387:4", + "src": "11577:387:6", "statements": [ { "assignments": [ - 2803, - 2805 + 4316, + 4318 ], "declarations": [ { "constant": false, - "id": 2803, + "id": 4316, "name": "index", "nodeType": "VariableDeclaration", - "scope": 2833, - "src": "7537:10:4", + "scope": 4346, + "src": "11588:10:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11683,10 +16456,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2802, + "id": 4315, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "7537:4:4", + "src": "11588:4:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11697,11 +16470,11 @@ }, { "constant": false, - "id": 2805, + "id": 4318, "name": "found", "nodeType": "VariableDeclaration", - "scope": 2833, - "src": "7549:10:4", + "scope": 4346, + "src": "11600:10:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11709,10 +16482,10 @@ "typeString": "bool" }, "typeName": { - "id": 2804, + "id": 4317, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "7549:4:4", + "src": "11600:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11722,7 +16495,7 @@ "visibility": "internal" } ], - "id": 2809, + "id": 4322, "initialValue": { "argumentTypes": null, "arguments": [], @@ -11730,32 +16503,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 2806, + "id": 4319, "name": "crowdsale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2022, - "src": "7563:9:4", + "referencedDeclaration": 3210, + "src": "11614:9:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } }, - "id": 2807, + "id": 4320, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getCurrentMilestoneIndex", "nodeType": "MemberAccess", - "referencedDeclaration": 4378, - "src": "7563:34:4", + "referencedDeclaration": 1155, + "src": "11614:34:6", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$_t_bool_$", "typeString": "function () view external returns (uint256,bool)" } }, - "id": 2808, + "id": 4321, "isConstant": false, "isLValue": false, "isPure": false, @@ -11763,14 +16536,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7563:36:4", + "src": "11614:36:6", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", "typeString": "tuple(uint256,bool)" } }, "nodeType": "VariableDeclarationStatement", - "src": "7536:63:4" + "src": "11587:63:6" }, { "condition": { @@ -11779,19 +16552,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2812, + "id": 4325, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2810, + "id": 4323, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2803, - "src": "7738:5:4", + "referencedDeclaration": 4316, + "src": "11789:5:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11802,14 +16575,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2811, + "id": 4324, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7747:1:4", + "src": "11798:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -11817,41 +16590,41 @@ }, "value": "0" }, - "src": "7738:10:4", + "src": "11789:10:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 2814, + "id": 4327, "nodeType": "IfStatement", - "src": "7735:22:4", + "src": "11786:22:6", "trueBody": { "expression": null, - "functionReturnParameters": 2801, - "id": 2813, + "functionReturnParameters": 4314, + "id": 4326, "nodeType": "Return", - "src": "7750:7:4" + "src": "11801:7:6" } }, { "assignments": [ - 2816, + 4329, null, null, - 2818, + 4331, null, null ], "declarations": [ { "constant": false, - "id": 2816, + "id": 4329, "name": "endDate", "nodeType": "VariableDeclaration", - "scope": 2833, - "src": "7768:14:4", + "scope": 4346, + "src": "11819:14:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11859,10 +16632,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2815, + "id": 4328, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "7768:6:4", + "src": "11819:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -11875,11 +16648,11 @@ null, { "constant": false, - "id": 2818, + "id": 4331, "name": "withdrawalWindow", "nodeType": "VariableDeclaration", - "scope": 2833, - "src": "7788:23:4", + "scope": 4346, + "src": "11839:23:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11887,10 +16660,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2817, + "id": 4330, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "7788:6:4", + "src": "11839:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -11902,18 +16675,18 @@ null, null ], - "id": 2823, + "id": 4336, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 2821, + "id": 4334, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2803, - "src": "7842:5:4", + "referencedDeclaration": 4316, + "src": "11893:5:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11929,32 +16702,32 @@ ], "expression": { "argumentTypes": null, - "id": 2819, + "id": 4332, "name": "crowdsale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2022, - "src": "7819:9:4", + "referencedDeclaration": 3210, + "src": "11870:9:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } }, - "id": 2820, + "id": 4333, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getMilestone", "nodeType": "MemberAccess", - "referencedDeclaration": 4352, - "src": "7819:22:4", + "referencedDeclaration": 1129, + "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": 2822, + "id": 4335, "isConstant": false, "isLValue": false, "isPure": false, @@ -11962,14 +16735,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7819:29:4", + "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": "7767:81:4" + "src": "11818:81:6" }, { "expression": { @@ -11978,7 +16751,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 2830, + "id": 4343, "isConstant": false, "isLValue": false, "isPure": false, @@ -11989,19 +16762,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2826, + "id": 4339, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2824, + "id": 4337, "name": "endDate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2816, - "src": "7866:7:4", + "referencedDeclaration": 4329, + "src": "11917:7:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -12011,18 +16784,18 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 2825, + "id": 4338, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7296, - "src": "7877:3:4", + "referencedDeclaration": 10044, + "src": "11928:3:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7866:14:4", + "src": "11917:14:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -12036,19 +16809,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2829, + "id": 4342, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2827, + "id": 4340, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7296, - "src": "7884:3:4", + "referencedDeclaration": 10044, + "src": "11935:3:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12058,62 +16831,62 @@ "operator": "<", "rightExpression": { "argumentTypes": null, - "id": 2828, + "id": 4341, "name": "withdrawalWindow", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2818, - "src": "7890:16:4", + "referencedDeclaration": 4331, + "src": "11941:16:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "7884:22:4", + "src": "11935:22:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "7866:40:4", + "src": "11917:40:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 2801, - "id": 2831, + "functionReturnParameters": 4314, + "id": 4344, "nodeType": "Return", - "src": "7859:47:4" + "src": "11910:47:6" } ] }, "documentation": null, - "id": 2833, + "id": 4346, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], - "name": "refundAllowed", + "name": "tokenRefundAllowed", "nodeType": "FunctionDefinition", "parameters": { - "id": 2798, + "id": 4311, "nodeType": "ParameterList", "parameters": [], - "src": "7496:2:4" + "src": "11547:2:6" }, "payable": false, "returnParameters": { - "id": 2801, + "id": 4314, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2800, + "id": 4313, "name": "", "nodeType": "VariableDeclaration", - "scope": 2833, - "src": "7520:4:4", + "scope": 4346, + "src": "11571:4:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12121,10 +16894,10 @@ "typeString": "bool" }, "typeName": { - "id": 2799, + "id": 4312, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "7520:4:4", + "src": "11571:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -12134,33 +16907,33 @@ "visibility": "internal" } ], - "src": "7519:6:4" + "src": "11570:6:6" }, - "scope": 2899, - "src": "7474:439:4", + "scope": 4424, + "src": "11520:444:6", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2884, + "id": 4370, "nodeType": "Block", - "src": "7980:423:4", + "src": "12031:166:6", "statements": [ { "assignments": [ - 2839, - 2841 + 4352, + 4354 ], "declarations": [ { "constant": false, - "id": 2839, + "id": 4352, "name": "index", "nodeType": "VariableDeclaration", - "scope": 2885, - "src": "7991:10:4", + "scope": 4371, + "src": "12042:10:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12168,10 +16941,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2838, + "id": 4351, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "7991:4:4", + "src": "12042:4:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12182,11 +16955,11 @@ }, { "constant": false, - "id": 2841, + "id": 4354, "name": "found", "nodeType": "VariableDeclaration", - "scope": 2885, - "src": "8003:10:4", + "scope": 4371, + "src": "12054:10:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12194,10 +16967,10 @@ "typeString": "bool" }, "typeName": { - "id": 2840, + "id": 4353, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "8003:4:4", + "src": "12054:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -12207,7 +16980,7 @@ "visibility": "internal" } ], - "id": 2845, + "id": 4358, "initialValue": { "argumentTypes": null, "arguments": [], @@ -12215,32 +16988,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 2842, + "id": 4355, "name": "crowdsale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2022, - "src": "8017:9:4", + "referencedDeclaration": 3210, + "src": "12068:9:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } }, - "id": 2843, + "id": 4356, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getCurrentMilestoneIndex", "nodeType": "MemberAccess", - "referencedDeclaration": 4378, - "src": "8017:34:4", + "referencedDeclaration": 1155, + "src": "12068:34:6", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$_t_bool_$", "typeString": "function () view external returns (uint256,bool)" } }, - "id": 2844, + "id": 4357, "isConstant": false, "isLValue": false, "isPure": false, @@ -12248,28 +17021,237 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8017:36:4", + "src": "12068:36:6", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", "typeString": "tuple(uint256,bool)" } }, "nodeType": "VariableDeclarationStatement", - "src": "7990:63:4" + "src": "12041:63:6" + }, + { + "condition": { + "argumentTypes": null, + "id": 4360, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "12118:6:6", + "subExpression": { + "argumentTypes": null, + "id": 4359, + "name": "found", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4354, + "src": "12119:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 4362, + "nodeType": "IfStatement", + "src": "12115:18:6", + "trueBody": { + "expression": null, + "functionReturnParameters": 4350, + "id": 4361, + "nodeType": "Return", + "src": "12126:7:6" + } }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 4368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4365, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4363, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4352, + "src": "12150:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4364, + "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": 4366, + "name": "isWithdrawalWindowActive", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4410, + "src": "12164:24:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", + "typeString": "function () view returns (bool)" + } + }, + "id": 4367, + "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": 4350, + "id": 4369, + "nodeType": "Return", + "src": "12143:47:6" + } + ] + }, + "documentation": null, + "id": 4371, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "trancheTransferAllowed", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4347, + "nodeType": "ParameterList", + "parameters": [], + "src": "12001:2:6" + }, + "payable": false, + "returnParameters": { + "id": 4350, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4349, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4371, + "src": "12025:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4348, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12025:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12024:6:6" + }, + "scope": 4424, + "src": "11970:227:6", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4409, + "nodeType": "Block", + "src": "12266:279:6", + "statements": [ { "assignments": [ - 2847, - null + 4377, + 4379 ], "declarations": [ { "constant": false, - "id": 2847, - "name": "lastIndex", + "id": 4377, + "name": "index", "nodeType": "VariableDeclaration", - "scope": 2885, - "src": "8064:14:4", + "scope": 4410, + "src": "12277:10:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12277,10 +17259,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2846, + "id": 4376, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "8064:4:4", + "src": "12277:4:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12289,9 +17271,34 @@ "value": null, "visibility": "internal" }, - null + { + "constant": false, + "id": 4379, + "name": "found", + "nodeType": "VariableDeclaration", + "scope": 4410, + "src": "12289:10:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4378, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12289:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } ], - "id": 2851, + "id": 4383, "initialValue": { "argumentTypes": null, "arguments": [], @@ -12299,32 +17306,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 2848, + "id": 4380, "name": "crowdsale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2022, - "src": "8084:9:4", + "referencedDeclaration": 3210, + "src": "12303:9:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } }, - "id": 2849, + "id": 4381, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "getLastMilestoneIndex", + "memberName": "getCurrentMilestoneIndex", "nodeType": "MemberAccess", - "referencedDeclaration": 4385, - "src": "8084:31:4", + "referencedDeclaration": 1155, + "src": "12303:34:6", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$_t_bool_$", "typeString": "function () view external returns (uint256,bool)" } }, - "id": 2850, + "id": 4382, "isConstant": false, "isLValue": false, "isPure": false, @@ -12332,154 +17339,143 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8084:33:4", + "src": "12303:36:6", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", "typeString": "tuple(uint256,bool)" } }, "nodeType": "VariableDeclarationStatement", - "src": "8063:54:4" + "src": "12276:63:6" }, { "condition": { "argumentTypes": null, - "id": 2853, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "8131:6:4", - "subExpression": { - "argumentTypes": null, - "id": 2852, - "name": "found", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2841, - "src": "8132:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { + "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" - } - }, - "falseBody": null, - "id": 2855, - "nodeType": "IfStatement", - "src": "8128:18:4", - "trueBody": { - "expression": null, - "functionReturnParameters": 2837, - "id": 2854, - "nodeType": "Return", - "src": "8139:7:4" - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" }, - "id": 2858, + "id": 4389, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2856, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2839, - "src": "8158:5:4", + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4386, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4384, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4377, + "src": "12353:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4385, + "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_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, "nodeType": "BinaryOperation", - "operator": "==", + "operator": "||", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 2857, + "id": 4388, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "number", + "isPure": false, "lValueRequested": false, - "nodeType": "Literal", - "src": "8167:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "12367:6:6", + "subExpression": { + "argumentTypes": null, + "id": 4387, + "name": "found", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4379, + "src": "12368:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } }, - "value": "0" + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } }, - "src": "8158:10:4", + "src": "12353:20:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 2861, + "id": 4391, "nodeType": "IfStatement", - "src": "8155:26:4", + "src": "12350:32:6", "trueBody": { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2859, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8177:4:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 2837, - "id": 2860, + "expression": null, + "functionReturnParameters": 4375, + "id": 4390, "nodeType": "Return", - "src": "8170:11:4" + "src": "12375:7:6" } }, { "assignments": [ - 2863, - null, + 4393, null, null, + 4395, null, null ], "declarations": [ { "constant": false, - "id": 2863, + "id": 4393, "name": "endDate", "nodeType": "VariableDeclaration", - "scope": 2885, - "src": "8193:14:4", + "scope": 4410, + "src": "12393:14:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12487,10 +17483,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2862, + "id": 4392, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "8193:6:4", + "src": "12393:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -12501,99 +17497,13 @@ }, null, null, - null, - null, - null - ], - "id": 2868, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2866, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2839, - "src": "8244:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2864, - "name": "crowdsale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2022, - "src": "8221:9:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", - "typeString": "contract IW12Crowdsale" - } - }, - "id": 2865, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getMilestone", - "nodeType": "MemberAccess", - "referencedDeclaration": 4352, - "src": "8221:22:4", - "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": 2867, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8221:29:4", - "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": "8192:58:4" - }, - { - "assignments": [ - null, - null, - null, - 2870, - null, - null - ], - "declarations": [ - null, - null, - null, { "constant": false, - "id": 2870, + "id": 4395, "name": "lastWithdrawalWindow", "nodeType": "VariableDeclaration", - "scope": 2885, - "src": "8266:27:4", + "scope": 4410, + "src": "12412:27:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12601,10 +17511,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2869, + "id": 4394, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "8266:6:4", + "src": "12412:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -12616,18 +17526,18 @@ null, null ], - "id": 2875, + "id": 4400, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 2873, - "name": "lastIndex", + "id": 4398, + "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2847, - "src": "8324:9:4", + "referencedDeclaration": 4377, + "src": "12470:5:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12643,32 +17553,32 @@ ], "expression": { "argumentTypes": null, - "id": 2871, + "id": 4396, "name": "crowdsale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2022, - "src": "8301:9:4", + "referencedDeclaration": 3210, + "src": "12447:9:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } }, - "id": 2872, + "id": 4397, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getMilestone", "nodeType": "MemberAccess", - "referencedDeclaration": 4352, - "src": "8301:22:4", + "referencedDeclaration": 1129, + "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": 2874, + "id": 4399, "isConstant": false, "isLValue": false, "isPure": false, @@ -12676,14 +17586,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8301:33:4", + "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": "8260:74:4" + "src": "12392:84:6" }, { "expression": { @@ -12692,7 +17602,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 2882, + "id": 4407, "isConstant": false, "isLValue": false, "isPure": false, @@ -12703,19 +17613,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2878, + "id": 4403, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2876, + "id": 4401, "name": "endDate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2863, - "src": "8352:7:4", + "referencedDeclaration": 4393, + "src": "12494:7:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -12725,18 +17635,18 @@ "operator": ">", "rightExpression": { "argumentTypes": null, - "id": 2877, + "id": 4402, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7296, - "src": "8362:3:4", + "referencedDeclaration": 10044, + "src": "12504:3:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "8352:13:4", + "src": "12494:13:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -12750,84 +17660,84 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2881, + "id": 4406, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2879, - "name": "lastWithdrawalWindow", + "id": 4404, + "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2870, - "src": "8369:20:4", + "referencedDeclaration": 10044, + "src": "12511:3:6", "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "nodeType": "BinaryOperation", - "operator": "<=", + "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 2880, - "name": "now", + "id": 4405, + "name": "lastWithdrawalWindow", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7296, - "src": "8393:3:4", + "referencedDeclaration": 4395, + "src": "12518:20:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_uint32", + "typeString": "uint32" } }, - "src": "8369:27:4", + "src": "12511:27:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "8352:44:4", + "src": "12494:44:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 2837, - "id": 2883, + "functionReturnParameters": 4375, + "id": 4408, "nodeType": "Return", - "src": "8345:51:4" + "src": "12487:51:6" } ] }, "documentation": null, - "id": 2885, + "id": 4410, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], - "name": "trancheTransferAllowed", + "name": "isWithdrawalWindowActive", "nodeType": "FunctionDefinition", "parameters": { - "id": 2834, + "id": 4372, "nodeType": "ParameterList", "parameters": [], - "src": "7950:2:4" + "src": "12236:2:6" }, "payable": false, "returnParameters": { - "id": 2837, + "id": 4375, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2836, + "id": 4374, "name": "", "nodeType": "VariableDeclaration", - "scope": 2885, - "src": "7974:4:4", + "scope": 4410, + "src": "12260:4:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12835,10 +17745,10 @@ "typeString": "bool" }, "typeName": { - "id": 2835, + "id": 4373, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "7974:4:4", + "src": "12260:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -12848,19 +17758,19 @@ "visibility": "internal" } ], - "src": "7973:6:4" + "src": "12259:6:6" }, - "scope": 2899, - "src": "7919:484:4", + "scope": 4424, + "src": "12203:342:6", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2897, + "id": 4422, "nodeType": "Block", - "src": "8443:58:4", + "src": "12585:58:6", "statements": [ { "expression": { @@ -12872,7 +17782,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2893, + "id": 4418, "isConstant": false, "isLValue": false, "isPure": false, @@ -12881,18 +17791,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2890, + "id": 4415, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "8461:3:4", + "referencedDeclaration": 10042, + "src": "12603:3:6", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2891, + "id": 4416, "isConstant": false, "isLValue": false, "isPure": false, @@ -12900,7 +17810,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8461:10:4", + "src": "12603:10:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12910,18 +17820,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 2892, + "id": 4417, "name": "sender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2887, - "src": "8475:6:4", + "referencedDeclaration": 4412, + "src": "12617:6:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "8461:20:4", + "src": "12603:20:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -12935,21 +17845,21 @@ "typeString": "bool" } ], - "id": 2889, + "id": 4414, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "8453:7:4", + "referencedDeclaration": 10045, + "src": "12595:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2894, + "id": 4419, "isConstant": false, "isLValue": false, "isPure": false, @@ -12957,38 +17867,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8453:29:4", + "src": "12595:29:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2895, + "id": 4420, "nodeType": "ExpressionStatement", - "src": "8453:29:4" + "src": "12595:29:6" }, { - "id": 2896, + "id": 4421, "nodeType": "PlaceholderStatement", - "src": "8493:1:4" + "src": "12635:1:6" } ] }, "documentation": null, - "id": 2898, + "id": 4423, "name": "onlyFrom", "nodeType": "ModifierDefinition", "parameters": { - "id": 2888, + "id": 4413, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2887, + "id": 4412, "name": "sender", "nodeType": "VariableDeclaration", - "scope": 2898, - "src": "8427:14:4", + "scope": 4423, + "src": "12569:14:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12996,10 +17906,10 @@ "typeString": "address" }, "typeName": { - "id": 2886, + "id": 4411, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8427:7:4", + "src": "12569:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13009,30 +17919,30 @@ "visibility": "internal" } ], - "src": "8426:16:4" + "src": "12568:16:6" }, - "src": "8409:92:4", + "src": "12551:92:6", "visibility": "internal" } ], - "scope": 2900, - "src": "387:8116:4" + "scope": 4425, + "src": "497:12148:6" } ], - "src": "0:8504:4" + "src": "0:12646:6" }, "legacyAST": { - "absolutePath": "/home/circleci/code/contracts/W12Fund.sol", + "absolutePath": "/home/circleci/code/contracts/crowdsale/W12Fund.sol", "exportedSymbols": { "W12Fund": [ - 2899 + 4424 ] }, - "id": 2900, + "id": 4425, "nodeType": "SourceUnit", "nodes": [ { - "id": 1998, + "id": 3170, "literals": [ "solidity", "^", @@ -13040,93 +17950,126 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:4" + "src": "0:24:6" }, { "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 1999, + "id": 3171, "nodeType": "ImportDirective", - "scope": 2900, - "sourceUnit": 6941, - "src": "26:63:4", + "scope": 4425, + "sourceUnit": 9689, + "src": "26:63:6", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "openzeppelin-solidity/contracts/ReentrancyGuard.sol", "file": "openzeppelin-solidity/contracts/ReentrancyGuard.sol", - "id": 2000, + "id": 3172, "nodeType": "ImportDirective", - "scope": 2900, - "sourceUnit": 6691, - "src": "90:61:4", + "scope": 4425, + "sourceUnit": 9332, + "src": "90:61:6", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 2001, + "id": 3173, + "nodeType": "ImportDirective", + "scope": 4425, + "sourceUnit": 9603, + "src": "152:59:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", + "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", + "id": 3174, "nodeType": "ImportDirective", - "scope": 2900, - "sourceUnit": 6855, - "src": "152:59:4", + "scope": 4425, + "sourceUnit": 9766, + "src": "212:63:6", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/home/circleci/code/contracts/token/WToken.sol", - "file": "./token/WToken.sol", - "id": 2002, + "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Crowdsale.sol", + "file": "./IW12Crowdsale.sol", + "id": 3175, "nodeType": "ImportDirective", - "scope": 2900, - "sourceUnit": 5926, - "src": "212:28:4", + "scope": 4425, + "sourceUnit": 1205, + "src": "276:29:6", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/home/circleci/code/contracts/interfaces/IW12Crowdsale.sol", - "file": "./interfaces/IW12Crowdsale.sol", - "id": 2003, + "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Fund.sol", + "file": "./IW12Fund.sol", + "id": 3176, "nodeType": "ImportDirective", - "scope": 2900, - "sourceUnit": 4427, - "src": "241:40:4", + "scope": 4425, + "sourceUnit": 1242, + "src": "306:24:6", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/home/circleci/code/contracts/interfaces/IW12Fund.sol", - "file": "./interfaces/IW12Fund.sol", - "id": 2004, + "absolutePath": "/home/circleci/code/contracts/rates/IRates.sol", + "file": "../rates/IRates.sol", + "id": 3177, "nodeType": "ImportDirective", - "scope": 2900, - "sourceUnit": 4485, - "src": "282:35:4", + "scope": 4425, + "sourceUnit": 7016, + "src": "331:29:6", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/libs/Percent.sol", - "file": "./libs/Percent.sol", - "id": 2005, + "file": "../libs/Percent.sol", + "id": 3178, + "nodeType": "ImportDirective", + "scope": 4425, + "sourceUnit": 5104, + "src": "361:29:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/libs/FundAccount.sol", + "file": "../libs/FundAccount.sol", + "id": 3179, "nodeType": "ImportDirective", - "scope": 2900, - "sourceUnit": 4632, - "src": "318:28:4", + "scope": 4425, + "sourceUnit": 4842, + "src": "391:33:6", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/versioning/Versionable.sol", - "file": "./versioning/Versionable.sol", - "id": 2006, + "file": "../versioning/Versionable.sol", + "id": 3180, + "nodeType": "ImportDirective", + "scope": 4425, + "sourceUnit": 9071, + "src": "425:39:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/token/IWToken.sol", + "file": "../token/IWToken.sol", + "id": 3181, "nodeType": "ImportDirective", - "scope": 2900, - "sourceUnit": 6510, - "src": "347:38:4", + "scope": 4425, + "sourceUnit": 7631, + "src": "465:30:6", "symbolAliases": [], "unitAlias": "" }, @@ -13136,172 +18079,419 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 2007, + "id": 3182, "name": "Versionable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6509, - "src": "407:11:4", + "referencedDeclaration": 9070, + "src": "517:11:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_Versionable_$6509", + "typeIdentifier": "t_contract$_Versionable_$9070", "typeString": "contract Versionable" } }, - "id": 2008, + "id": 3183, "nodeType": "InheritanceSpecifier", - "src": "407:11:4" + "src": "517:11:6" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 2009, + "id": 3184, "name": "IW12Fund", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4484, - "src": "420:8:4", + "referencedDeclaration": 1241, + "src": "530:8:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", + "typeIdentifier": "t_contract$_IW12Fund_$1241", "typeString": "contract IW12Fund" } }, - "id": 2010, + "id": 3185, "nodeType": "InheritanceSpecifier", - "src": "420:8:4" + "src": "530:8:6" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 2011, + "id": 3186, "name": "Ownable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6940, - "src": "430:7:4", + "referencedDeclaration": 9688, + "src": "540:7:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$6940", + "typeIdentifier": "t_contract$_Ownable_$9688", "typeString": "contract Ownable" } }, - "id": 2012, + "id": 3187, "nodeType": "InheritanceSpecifier", - "src": "430:7:4" + "src": "540:7:6" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 2013, + "id": 3188, "name": "ReentrancyGuard", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6690, - "src": "439:15:4", + "referencedDeclaration": 9331, + "src": "549:15:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_ReentrancyGuard_$6690", + "typeIdentifier": "t_contract$_ReentrancyGuard_$9331", "typeString": "contract ReentrancyGuard" } }, - "id": 2014, + "id": 3189, "nodeType": "InheritanceSpecifier", - "src": "439:15:4" + "src": "549:15:6" } ], "contractDependencies": [ - 4484, - 6509, - 6690, - 6940 + 1241, + 9070, + 9331, + 9688 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 2899, + "id": 4424, "linearizedBaseContracts": [ - 2899, - 6690, - 6940, - 4484, - 6509 + 4424, + 9331, + 9688, + 1241, + 9070 ], "name": "W12Fund", "nodeType": "ContractDefinition", "nodes": [ { - "id": 2017, + "id": 3192, "libraryName": { "contractScope": null, - "id": 2015, + "id": 3190, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6854, - "src": "467:8:4", + "referencedDeclaration": 9602, + "src": "577:8:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$9602", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "571:24:6", + "typeName": { + "id": 3191, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "590:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 3195, + "libraryName": { + "contractScope": null, + "id": 3193, + "name": "Percent", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5103, + "src": "606:7:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Percent_$5103", + "typeString": "library Percent" + } + }, + "nodeType": "UsingForDirective", + "src": "600:23:6", + "typeName": { + "id": 3194, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "618:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 3198, + "libraryName": { + "contractScope": null, + "id": 3196, + "name": "FundAccount", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4841, + "src": "634:11:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_FundAccount_$4841", + "typeString": "library FundAccount" + } + }, + "nodeType": "UsingForDirective", + "src": "628:42:6", + "typeName": { + "contractScope": null, + "id": 3197, + "name": "FundAccount.Account", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4698, + "src": "650:19:6", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage_ptr", + "typeString": "struct FundAccount.Account" + } + } + }, + { + "constant": true, + "id": 3203, + "name": "METHOD_ETH", + "nodeType": "VariableDeclaration", + "scope": 4424, + "src": "676:44:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3199, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "676:7:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "455448", + "id": 3201, + "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": 3200, + "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": 3202, + "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": 3208, + "name": "METHOD_USD", + "nodeType": "VariableDeclaration", + "scope": 4424, + "src": "726:44:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3204, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "726:7:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "555344", + "id": 3206, + "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": 3205, + "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": 3207, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "756:14:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$6854", - "typeString": "library SafeMath" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, - "nodeType": "UsingForDirective", - "src": "461:24:4", - "typeName": { - "id": 2016, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "480:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } + "visibility": "internal" }, { - "id": 2020, - "libraryName": { + "constant": false, + "id": 3210, + "name": "crowdsale", + "nodeType": "VariableDeclaration", + "scope": 4424, + "src": "777:30:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", + "typeString": "contract IW12Crowdsale" + }, + "typeName": { "contractScope": null, - "id": 2018, - "name": "Percent", + "id": 3209, + "name": "IW12Crowdsale", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4631, - "src": "496:7:4", + "referencedDeclaration": 1204, + "src": "777:13:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_Percent_$4631", - "typeString": "library Percent" + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", + "typeString": "contract IW12Crowdsale" } }, - "nodeType": "UsingForDirective", - "src": "490:23:4", + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3212, + "name": "wToken", + "nodeType": "VariableDeclaration", + "scope": 4424, + "src": "813:21:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" + }, "typeName": { - "id": 2019, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "508:4:4", + "contractScope": null, + "id": 3211, + "name": "IWToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7630, + "src": "813:7:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" } - } + }, + "value": null, + "visibility": "public" }, { "constant": false, - "id": 2022, - "name": "crowdsale", + "id": 3214, + "name": "rates", "nodeType": "VariableDeclaration", - "scope": 2899, - "src": "519:30:4", + "scope": 4424, + "src": "840:19:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", - "typeString": "contract IW12Crowdsale" + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" }, "typeName": { "contractScope": null, - "id": 2021, - "name": "IW12Crowdsale", + "id": 3213, + "name": "IRates", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4426, - "src": "519:13:4", + "referencedDeclaration": 7015, + "src": "840:6:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", - "typeString": "contract IW12Crowdsale" + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" } }, "value": null, @@ -13309,11 +18499,11 @@ }, { "constant": false, - "id": 2024, + "id": 3216, "name": "swap", "nodeType": "VariableDeclaration", - "scope": 2899, - "src": "555:19:4", + "scope": 4424, + "src": "865:19:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -13321,10 +18511,10 @@ "typeString": "address" }, "typeName": { - "id": 2023, + "id": 3215, "name": "address", "nodeType": "ElementaryTypeName", - "src": "555:7:4", + "src": "865:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13335,11 +18525,11 @@ }, { "constant": false, - "id": 2026, + "id": 3218, "name": "serviceWallet", "nodeType": "VariableDeclaration", - "scope": 2899, - "src": "580:28:4", + "scope": 4424, + "src": "890:28:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -13347,10 +18537,10 @@ "typeString": "address" }, "typeName": { - "id": 2025, + "id": 3217, "name": "address", "nodeType": "ElementaryTypeName", - "src": "580:7:4", + "src": "890:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13361,27 +18551,25 @@ }, { "constant": false, - "id": 2028, - "name": "wToken", + "id": 3220, + "name": "trancheFeePercent", "nodeType": "VariableDeclaration", - "scope": 2899, - "src": "614:20:4", + "scope": 4424, + "src": "956:29:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "contractScope": null, - "id": 2027, - "name": "WToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5925, - "src": "614:6:4", + "id": 3219, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "956:4:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "value": null, @@ -13389,11 +18577,11 @@ }, { "constant": false, - "id": 2030, - "name": "tokenDecimals", + "id": 3222, + "name": "totalTranchePercentReleased", "nodeType": "VariableDeclaration", - "scope": 2899, - "src": "640:25:4", + "scope": 4424, + "src": "1040:39:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -13401,10 +18589,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2029, + "id": 3221, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "640:4:4", + "src": "1040:4:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13415,45 +18603,43 @@ }, { "constant": false, - "id": 2034, - "name": "buyers", + "id": 3226, + "name": "completedTranches", "nodeType": "VariableDeclaration", - "scope": 2899, - "src": "694:47:4", + "scope": 4424, + "src": "1127:47:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_TokenPriceInfo_$2053_storage_$", - "typeString": "mapping(address => struct W12Fund.TokenPriceInfo)" + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" }, "typeName": { - "id": 2033, + "id": 3225, "keyType": { - "id": 2031, - "name": "address", + "id": 3223, + "name": "uint", "nodeType": "ElementaryTypeName", - "src": "703:7:4", + "src": "1136:4:6", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "nodeType": "Mapping", - "src": "694:33:4", + "src": "1127:22:6", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_TokenPriceInfo_$2053_storage_$", - "typeString": "mapping(address => struct W12Fund.TokenPriceInfo)" + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" }, "valueType": { - "contractScope": null, - "id": 2032, - "name": "TokenPriceInfo", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2053, - "src": "712:14:4", + "id": 3224, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1144:4:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_TokenPriceInfo_$2053_storage_ptr", - "typeString": "struct W12Fund.TokenPriceInfo" + "typeIdentifier": "t_bool", + "typeString": "bool" } } }, @@ -13462,56 +18648,84 @@ }, { "constant": false, - "id": 2038, - "name": "completedTranches", + "id": 3228, + "name": "totalFunded", "nodeType": "VariableDeclaration", - "scope": 2899, - "src": "747:47:4", + "scope": 4424, + "src": "1208:31:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", - "typeString": "mapping(uint256 => bool)" + "typeIdentifier": "t_struct$_Account_$4698_storage", + "typeString": "struct FundAccount.Account" + }, + "typeName": { + "contractScope": null, + "id": 3227, + "name": "FundAccount.Account", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4698, + "src": "1208:19:6", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage_ptr", + "typeString": "struct FundAccount.Account" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3232, + "name": "totalFundedReleased", + "nodeType": "VariableDeclaration", + "scope": 4424, + "src": "1373:44:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" }, "typeName": { - "id": 2037, + "id": 3231, "keyType": { - "id": 2035, - "name": "uint", + "id": 3229, + "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "756:4:4", + "src": "1381:7:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "747:22:4", + "src": "1373:24:6", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", - "typeString": "mapping(uint256 => bool)" + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" }, "valueType": { - "id": 2036, - "name": "bool", + "id": 3230, + "name": "uint", "nodeType": "ElementaryTypeName", - "src": "764:4:4", + "src": "1392:4:6", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } } }, "value": null, - "visibility": "public" + "visibility": "internal" }, { "constant": false, - "id": 2040, - "name": "totalFunded", + "id": 3234, + "name": "totalTokenBought", "nodeType": "VariableDeclaration", - "scope": 2899, - "src": "823:23:4", + "scope": 4424, + "src": "1459:28:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -13519,10 +18733,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2039, + "id": 3233, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "823:4:4", + "src": "1459:4:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13533,11 +18747,11 @@ }, { "constant": false, - "id": 2042, - "name": "totalRefunded", + "id": 3236, + "name": "totalTokenRefunded", "nodeType": "VariableDeclaration", - "scope": 2899, - "src": "852:25:4", + "scope": 4424, + "src": "1531:30:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -13545,10 +18759,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2041, + "id": 3235, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "852:4:4", + "src": "1531:4:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13559,273 +18773,1040 @@ }, { "constant": false, - "id": 2044, - "name": "totalTranchePercentReleased", + "id": 3240, + "name": "tokenBoughtPerInvestor", "nodeType": "VariableDeclaration", - "scope": 2899, - "src": "883:39:4", + "scope": 4424, + "src": "1616:48:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" }, "typeName": { - "id": 2043, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "883:4:4", + "id": 3239, + "keyType": { + "id": 3237, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1625:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1616:25:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 3238, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1636:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } } }, "value": null, - "visibility": "public" + "visibility": "internal" }, { "constant": false, - "id": 2046, - "name": "trancheFeePercent", + "id": 3244, + "name": "fundedPerInvestor", "nodeType": "VariableDeclaration", - "scope": 2899, - "src": "928:29:4", + "scope": 4424, + "src": "1714:58:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Account_$4698_storage_$", + "typeString": "mapping(address => struct FundAccount.Account)" }, "typeName": { - "id": 2045, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "928:4:4", + "id": 3243, + "keyType": { + "id": 3241, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1723:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1714:40:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Account_$4698_storage_$", + "typeString": "mapping(address => struct FundAccount.Account)" + }, + "valueType": { + "contractScope": null, + "id": 3242, + "name": "FundAccount.Account", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4698, + "src": "1734:19:6", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage_ptr", + "typeString": "struct FundAccount.Account" + } } }, - "value": null, - "visibility": "public" + "value": null, + "visibility": "internal" + }, + { + "anonymous": false, + "documentation": null, + "id": 3254, + "name": "FundsReceived", + "nodeType": "EventDefinition", + "parameters": { + "id": 3253, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3246, + "indexed": true, + "name": "investor", + "nodeType": "VariableDeclaration", + "scope": 3254, + "src": "1799:24:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3245, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1799:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3248, + "indexed": false, + "name": "tokenAmount", + "nodeType": "VariableDeclaration", + "scope": 3254, + "src": "1825:16:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3247, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1825:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3250, + "indexed": false, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 3254, + "src": "1843:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3249, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1843:7:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3252, + "indexed": false, + "name": "cost", + "nodeType": "VariableDeclaration", + "scope": 3254, + "src": "1859:9:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3251, + "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" }, { - "canonicalName": "W12Fund.TokenPriceInfo", - "id": 2053, - "members": [ - { - "constant": false, - "id": 2048, - "name": "totalBought", - "nodeType": "VariableDeclaration", - "scope": 2053, - "src": "996:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "anonymous": false, + "documentation": null, + "id": 3262, + "name": "AssetRefunded", + "nodeType": "EventDefinition", + "parameters": { + "id": 3261, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3256, + "indexed": true, + "name": "investor", + "nodeType": "VariableDeclaration", + "scope": 3262, + "src": "1895:24:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3255, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1895:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3258, + "indexed": false, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 3262, + "src": "1921:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3257, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1921:7:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" }, - "typeName": { - "id": 2047, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "996:4:4", + { + "constant": false, + "id": 3260, + "indexed": false, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 3262, + "src": "1937:11:6", + "stateVariable": false, + "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2050, - "name": "averagePrice", - "nodeType": "VariableDeclaration", - "scope": 2053, - "src": "1022:17:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + }, + "typeName": { + "id": 3259, + "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": 3268, + "name": "TokenRefunded", + "nodeType": "EventDefinition", + "parameters": { + "id": 3267, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3264, + "indexed": true, + "name": "investor", + "nodeType": "VariableDeclaration", + "scope": 3268, + "src": "1975:24:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3263, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1975:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" }, - "typeName": { - "id": 2049, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1022:4:4", + { + "constant": false, + "id": 3266, + "indexed": false, + "name": "tokenAmount", + "nodeType": "VariableDeclaration", + "scope": 3268, + "src": "2001:16:6", + "stateVariable": false, + "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" - } + }, + "typeName": { + "id": 3265, + "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": 3276, + "name": "TrancheTransferred", + "nodeType": "EventDefinition", + "parameters": { + "id": 3275, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3270, + "indexed": true, + "name": "receiver", + "nodeType": "VariableDeclaration", + "scope": 3276, + "src": "2049:24:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3269, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2049:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2052, - "name": "totalFunded", - "nodeType": "VariableDeclaration", - "scope": 2053, - "src": "1049:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + { + "constant": false, + "id": 3272, + "indexed": false, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 3276, + "src": "2075:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3271, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2075:7:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" }, - "typeName": { - "id": 2051, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1049:4:4", + { + "constant": false, + "id": 3274, + "indexed": false, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 3276, + "src": "2091:11:6", + "stateVariable": false, + "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" - } + }, + "typeName": { + "id": 3273, + "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": 3282, + "name": "TrancheReleased", + "nodeType": "EventDefinition", + "parameters": { + "id": 3281, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3278, + "indexed": true, + "name": "receiver", + "nodeType": "VariableDeclaration", + "scope": 3282, + "src": "2131:24:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3277, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2131:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" }, - "value": null, - "visibility": "internal" - } - ], - "name": "TokenPriceInfo", - "nodeType": "StructDefinition", - "scope": 2899, - "src": "964:108:4", - "visibility": "public" + { + "constant": false, + "id": 3280, + "indexed": false, + "name": "percent", + "nodeType": "VariableDeclaration", + "scope": 3282, + "src": "2157:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3279, + "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" }, { - "anonymous": false, - "documentation": null, - "id": 2061, - "name": "FundsReceived", - "nodeType": "EventDefinition", - "parameters": { - "id": 2060, - "nodeType": "ParameterList", - "parameters": [ + "body": { + "id": 3322, + "nodeType": "Block", + "src": "2271:210:6", + "statements": [ { - "constant": false, - "id": 2055, - "indexed": true, - "name": "buyer", - "nodeType": "VariableDeclaration", - "scope": 2061, - "src": "1098:21:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 3295, + "name": "_trancheFeePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3286, + "src": "2289:18:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isPercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 5058, + "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": 3297, + "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": 3302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 3298, + "name": "_trancheFeePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3286, + "src": "2323:18:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3299, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "fromPercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 5102, + "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": 3300, + "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": 3301, + "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": 3294, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "2281:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2281:81:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } }, - "typeName": { - "id": 2054, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1098:7:4", + "id": 3305, + "nodeType": "ExpressionStatement", + "src": "2281:81:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3311, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3307, + "name": "_rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3288, + "src": "2380:6:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3309, + "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": 3308, + "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": 3310, + "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": 3306, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "2372:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3312, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2372:29:6", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "value": null, - "visibility": "internal" + "id": 3313, + "nodeType": "ExpressionStatement", + "src": "2372:29:6" }, { - "constant": false, - "id": 2057, - "indexed": false, - "name": "weiAmount", - "nodeType": "VariableDeclaration", - "scope": 2061, - "src": "1121:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2056, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1121:4:4", + "expression": { + "argumentTypes": null, + "id": 3316, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3314, + "name": "trancheFeePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3220, + "src": "2412:17:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3315, + "name": "_trancheFeePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3286, + "src": "2432:18:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2412:38:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, - "visibility": "internal" + "id": 3317, + "nodeType": "ExpressionStatement", + "src": "2412:38:6" }, { - "constant": false, - "id": 2059, - "indexed": false, - "name": "tokenAmount", - "nodeType": "VariableDeclaration", - "scope": 2061, - "src": "1137:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2058, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1137:4:4", + "expression": { + "argumentTypes": null, + "id": 3320, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3318, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3214, + "src": "2460:5:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3319, + "name": "_rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3288, + "src": "2468:6:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "src": "2460:14:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" } }, - "value": null, - "visibility": "internal" + "id": 3321, + "nodeType": "ExpressionStatement", + "src": "2460:14:6" } - ], - "src": "1097:57:4" + ] }, - "src": "1078:77:4" - }, - { - "anonymous": false, "documentation": null, - "id": 2069, - "name": "FundsRefunded", - "nodeType": "EventDefinition", + "id": 3323, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 3291, + "name": "version", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3284, + "src": "2255:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3292, + "modifierName": { + "argumentTypes": null, + "id": 3290, + "name": "Versionable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9070, + "src": "2243:11:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Versionable_$9070_$", + "typeString": "type(contract Versionable)" + } + }, + "nodeType": "ModifierInvocation", + "src": "2243:20:6" + } + ], + "name": "", + "nodeType": "FunctionDefinition", "parameters": { - "id": 2068, + "id": 3289, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2063, - "indexed": true, - "name": "buyer", + "id": 3284, + "name": "version", "nodeType": "VariableDeclaration", - "scope": 2069, - "src": "1180:21:4", + "scope": 3323, + "src": "2189:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 2062, - "name": "address", + "id": 3283, + "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1180:7:4", + "src": "2189:4:6", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "value": null, @@ -13833,12 +19814,11 @@ }, { "constant": false, - "id": 2065, - "indexed": false, - "name": "weiAmount", + "id": 3286, + "name": "_trancheFeePercent", "nodeType": "VariableDeclaration", - "scope": 2069, - "src": "1203:14:4", + "scope": 3323, + "src": "2203:23:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13846,10 +19826,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2064, + "id": 3285, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1203:4:4", + "src": "2203:4:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13860,111 +19840,186 @@ }, { "constant": false, - "id": 2067, - "indexed": false, - "name": "tokenAmount", + "id": 3288, + "name": "_rates", "nodeType": "VariableDeclaration", - "scope": 2069, - "src": "1219:16:4", + "scope": 3323, + "src": "2228:13:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" }, "typeName": { - "id": 2066, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1219:4:4", + "contractScope": null, + "id": 3287, + "name": "IRates", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7015, + "src": "2228:6:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" } }, "value": null, "visibility": "internal" } ], - "src": "1179:57:4" + "src": "2188:54:6" + }, + "payable": false, + "returnParameters": { + "id": 3293, + "nodeType": "ParameterList", + "parameters": [], + "src": "2271:0:6" }, - "src": "1160:77:4" + "scope": 4424, + "src": "2177:304:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" }, { - "anonymous": false, - "documentation": null, - "id": 2075, - "name": "TrancheReleased", - "nodeType": "EventDefinition", - "parameters": { - "id": 2074, - "nodeType": "ParameterList", - "parameters": [ + "body": { + "id": 3360, + "nodeType": "Block", + "src": "2554:188:6", + "statements": [ { - "constant": false, - "id": 2071, - "indexed": true, - "name": "receiver", - "nodeType": "VariableDeclaration", - "scope": 2075, - "src": "1264:24:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2070, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1264:7:4", + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3335, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3331, + "name": "_crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3325, + "src": "2572:10:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", + "typeString": "contract IW12Crowdsale" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3333, + "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": 3332, + "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": 3334, + "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": 3330, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "2564:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3336, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2564:33:6", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "value": null, - "visibility": "internal" + "id": 3337, + "nodeType": "ExpressionStatement", + "src": "2564:33:6" }, - { - "constant": false, - "id": 2073, - "indexed": false, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 2075, - "src": "1290:11:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2072, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1290:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1263:39:4" - }, - "src": "1242:61:4" - }, - { - "body": { - "id": 2101, - "nodeType": "Block", - "src": "1388:147:4", - "statements": [ { "expression": { "argumentTypes": null, @@ -13972,10 +20027,10 @@ { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" }, - "id": 2094, + "id": 3345, "isConstant": false, "isLValue": false, "isPure": false, @@ -13987,32 +20042,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 2086, - "name": "_trancheFeePercent", + "id": 3339, + "name": "_crowdsale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2079, - "src": "1406:18:4", + "referencedDeclaration": 3325, + "src": "2615:10:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", + "typeString": "contract IW12Crowdsale" } }, - "id": 2087, + "id": 3340, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "isPercent", + "memberName": "getWToken", "nodeType": "MemberAccess", - "referencedDeclaration": 4586, - "src": "1406:28:4", + "referencedDeclaration": 1112, + "src": "2615:20:6", "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$__$returns$_t_contract$_IWToken_$7630_$", + "typeString": "function () view external returns (contract IWToken)" } }, - "id": 2088, + "id": 3341, "isConstant": false, "isLValue": false, "isPure": false, @@ -14020,98 +20075,71 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1406:30:4", + "src": "2615:22:6", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" } }, "nodeType": "BinaryOperation", - "operator": "&&", + "operator": "!=", "rightExpression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2093, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 2089, - "name": "_trancheFeePercent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2079, - "src": "1440:18:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2090, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3343, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "number", "lValueRequested": false, - "memberName": "fromPercent", - "nodeType": "MemberAccess", - "referencedDeclaration": 4630, - "src": "1440:30:4", + "nodeType": "Literal", + "src": "2649:1:6", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256) pure returns (uint256)" - } - }, - "id": 2091, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1440:32:4", - "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": 2092, + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3342, "isConstant": false, "isLValue": false, "isPure": true, - "kind": "number", "lValueRequested": false, - "nodeType": "Literal", - "src": "1475:3:4", - "subdenomination": null, + "nodeType": "ElementaryTypeNameExpression", + "src": "2641:7:6", "typeDescriptions": { - "typeIdentifier": "t_rational_100_by_1", - "typeString": "int_const 100" + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" }, - "value": "100" + "typeName": "address" }, - "src": "1440:38:4", + "id": 3344, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2641:10:6", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "src": "1406:72:4", + "src": "2615:36:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14125,21 +20153,21 @@ "typeString": "bool" } ], - "id": 2085, + "id": 3338, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "1398:7:4", + "referencedDeclaration": 10045, + "src": "2607:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2095, + "id": 3346, "isConstant": false, "isLValue": false, "isPure": false, @@ -14147,183 +20175,260 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1398:81:4", + "src": "2607:45:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2096, + "id": 3347, "nodeType": "ExpressionStatement", - "src": "1398:81:4" + "src": "2607:45:6" }, { "expression": { "argumentTypes": null, - "id": 2099, + "id": 3350, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2097, - "name": "trancheFeePercent", + "id": 3348, + "name": "crowdsale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2046, - "src": "1490:17:4", + "referencedDeclaration": 3210, + "src": "2663:9:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", + "typeString": "contract IW12Crowdsale" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2098, - "name": "_trancheFeePercent", + "id": 3349, + "name": "_crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3325, + "src": "2675:10:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", + "typeString": "contract IW12Crowdsale" + } + }, + "src": "2663:22:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", + "typeString": "contract IW12Crowdsale" + } + }, + "id": 3351, + "nodeType": "ExpressionStatement", + "src": "2663:22:6" + }, + { + "expression": { + "argumentTypes": null, + "id": 3358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3352, + "name": "wToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2079, - "src": "1510:18:4", + "referencedDeclaration": 3212, + "src": "2695:6:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 3354, + "name": "_crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3325, + "src": "2712:10:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", + "typeString": "contract IW12Crowdsale" + } + }, + "id": 3355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getWToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 1112, + "src": "2712:20:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_IWToken_$7630_$", + "typeString": "function () view external returns (contract IWToken)" + } + }, + "id": 3356, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2712:22:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" + } + ], + "id": 3353, + "name": "IWToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7630, + "src": "2704:7:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IWToken_$7630_$", + "typeString": "type(contract IWToken)" + } + }, + "id": 3357, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2704:31:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" } }, - "src": "1490:38:4", + "src": "2695:40:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" } }, - "id": 2100, + "id": 3359, "nodeType": "ExpressionStatement", - "src": "1490:38:4" + "src": "2695:40:6" } ] }, "documentation": null, - "id": 2102, + "id": 3361, "implemented": true, - "isConstructor": true, + "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { - "arguments": [ - { - "argumentTypes": null, - "id": 2082, - "name": "version", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2077, - "src": "1372:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 2083, + "arguments": null, + "id": 3328, "modifierName": { "argumentTypes": null, - "id": 2081, - "name": "Versionable", + "id": 3327, + "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6509, - "src": "1360:11:4", + "referencedDeclaration": 9636, + "src": "2535:9:6", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Versionable_$6509_$", - "typeString": "type(contract Versionable)" + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1360:20:4" + "src": "2535:9:6" } ], - "name": "", + "name": "setCrowdsale", "nodeType": "FunctionDefinition", "parameters": { - "id": 2080, + "id": 3326, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2077, - "name": "version", - "nodeType": "VariableDeclaration", - "scope": 2102, - "src": "1321:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2076, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1321:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2079, - "name": "_trancheFeePercent", + "id": 3325, + "name": "_crowdsale", "nodeType": "VariableDeclaration", - "scope": 2102, - "src": "1335:23:4", + "scope": 3361, + "src": "2509:24:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", + "typeString": "contract IW12Crowdsale" }, "typeName": { - "id": 2078, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1335:4:4", + "contractScope": null, + "id": 3324, + "name": "IW12Crowdsale", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1204, + "src": "2509:13:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", + "typeString": "contract IW12Crowdsale" } }, "value": null, "visibility": "internal" } ], - "src": "1320:39:4" + "src": "2508:26:6" }, "payable": false, "returnParameters": { - "id": 2084, + "id": 3329, "nodeType": "ParameterList", "parameters": [], - "src": "1388:0:4" + "src": "2554:0:6" }, - "scope": 2899, - "src": "1309:226:4", + "scope": 4424, + "src": "2487:255:6", "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" + "superFunction": 1212, + "visibility": "external" }, { "body": { - "id": 2133, + "id": 3380, "nodeType": "Block", - "src": "1608:167:4", + "src": "2799:68:6", "statements": [ { "expression": { @@ -14335,22 +20440,22 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2114, + "id": 3373, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2110, - "name": "_crowdsale", + "id": 3369, + "name": "_swap", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2104, - "src": "1626:10:4", + "referencedDeclaration": 3363, + "src": "2817:5:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", - "typeString": "contract IW12Crowdsale" + "typeIdentifier": "t_address", + "typeString": "address" } }, "nodeType": "BinaryOperation", @@ -14361,14 +20466,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 2112, + "id": 3371, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1648:1:4", + "src": "2834:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -14384,20 +20489,20 @@ "typeString": "int_const 0" } ], - "id": 2111, + "id": 3370, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1640:7:4", + "src": "2826:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 2113, + "id": 3372, "isConstant": false, "isLValue": false, "isPure": true, @@ -14405,13 +20510,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1640:10:4", + "src": "2826:10:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1626:24:4", + "src": "2817:19:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14425,21 +20530,21 @@ "typeString": "bool" } ], - "id": 2109, + "id": 3368, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "1618:7:4", + "referencedDeclaration": 10045, + "src": "2809:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2115, + "id": 3374, "isConstant": false, "isLValue": false, "isPure": false, @@ -14447,304 +20552,592 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1618:33:4", + "src": "2809:28:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2116, + "id": 3375, "nodeType": "ExpressionStatement", - "src": "1618:33:4" + "src": "2809:28:6" }, { "expression": { "argumentTypes": null, - "id": 2119, + "id": 3378, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2117, - "name": "crowdsale", + "id": 3376, + "name": "swap", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2022, - "src": "1662:9:4", + "referencedDeclaration": 3216, + "src": "2848:4:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", - "typeString": "contract IW12Crowdsale" + "typeIdentifier": "t_address", + "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2118, - "name": "_crowdsale", + "id": 3377, + "name": "_swap", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2104, - "src": "1674:10:4", + "referencedDeclaration": 3363, + "src": "2855:5:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", - "typeString": "contract IW12Crowdsale" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "src": "1662:22:4", + "src": "2848:12:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", - "typeString": "contract IW12Crowdsale" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 2120, + "id": 3379, "nodeType": "ExpressionStatement", - "src": "1662:22:4" + "src": "2848:12:6" + } + ] + }, + "documentation": null, + "id": 3381, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 3366, + "modifierName": { + "argumentTypes": null, + "id": 3365, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9636, + "src": "2780:9:6", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } }, + "nodeType": "ModifierInvocation", + "src": "2780:9:6" + } + ], + "name": "setSwap", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3364, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3363, + "name": "_swap", + "nodeType": "VariableDeclaration", + "scope": 3381, + "src": "2765:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3362, + "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": 3367, + "nodeType": "ParameterList", + "parameters": [], + "src": "2799:0:6" + }, + "scope": 4424, + "src": "2748:119:6", + "stateMutability": "nonpayable", + "superFunction": 1222, + "visibility": "external" + }, + { + "body": { + "id": 3400, + "nodeType": "Block", + "src": "2942:95:6", + "statements": [ { "expression": { "argumentTypes": null, - "id": 2125, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2121, - "name": "wToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2028, - "src": "1694:6:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3393, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, - "id": 2122, - "name": "_crowdsale", + "id": 3389, + "name": "_serviceWallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2104, - "src": "1703:10:4", + "referencedDeclaration": 3383, + "src": "2960:14:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", - "typeString": "contract IW12Crowdsale" + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3391, + "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": 3390, + "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": 3392, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2978:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 2123, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getWToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 4335, - "src": "1703:20:4", + "src": "2960:28:6", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_WToken_$5925_$", - "typeString": "function () view external returns (contract WToken)" + "typeIdentifier": "t_bool", + "typeString": "bool" } - }, - "id": 2124, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1703:22:4", + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3388, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "2952:7:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" } }, - "src": "1694:31:4", + "id": 3394, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2952:37:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 2126, + "id": 3395, "nodeType": "ExpressionStatement", - "src": "1694:31:4" + "src": "2952:37:6" }, { "expression": { "argumentTypes": null, - "id": 2131, + "id": 3398, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2127, - "name": "tokenDecimals", + "id": 3396, + "name": "serviceWallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2030, - "src": "1735:13:4", + "referencedDeclaration": 3218, + "src": "3000:13:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 2128, - "name": "wToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2028, - "src": "1751:6:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" - } - }, - "id": 2129, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "decimals", - "nodeType": "MemberAccess", - "referencedDeclaration": 6951, - "src": "1751:15:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", - "typeString": "function () view external returns (uint8)" - } - }, - "id": 2130, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1751:17:4", + "id": 3397, + "name": "_serviceWallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3383, + "src": "3016:14:6", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "src": "1735:33:4", + "src": "3000:30:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 2132, + "id": 3399, "nodeType": "ExpressionStatement", - "src": "1735:33:4" + "src": "3000:30:6" } ] }, "documentation": null, - "id": 2134, + "id": 3401, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 2107, + "id": 3386, "modifierName": { "argumentTypes": null, - "id": 2106, + "id": 3385, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6888, - "src": "1589:9:4", + "referencedDeclaration": 9636, + "src": "2923:9:6", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1589:9:4" + "src": "2923:9:6" } ], - "name": "setCrowdsale", + "name": "setServiceWallet", "nodeType": "FunctionDefinition", "parameters": { - "id": 2105, + "id": 3384, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2104, - "name": "_crowdsale", + "id": 3383, + "name": "_serviceWallet", "nodeType": "VariableDeclaration", - "scope": 2134, - "src": "1563:24:4", + "scope": 3401, + "src": "2899:22:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", - "typeString": "contract IW12Crowdsale" + "typeIdentifier": "t_address", + "typeString": "address" }, "typeName": { - "contractScope": null, - "id": 2103, - "name": "IW12Crowdsale", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4426, - "src": "1563:13:4", + "id": 3382, + "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": 3387, + "nodeType": "ParameterList", + "parameters": [], + "src": "2942:0:6" + }, + "scope": 4424, + "src": "2873:164:6", + "stateMutability": "nonpayable", + "superFunction": 1217, + "visibility": "external" + }, + { + "body": { + "id": 3547, + "nodeType": "Block", + "src": "3547:991:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3420, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3418, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3405, + "src": "3565:11:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3419, + "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": 3417, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "3557:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3557:24:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3422, + "nodeType": "ExpressionStatement", + "src": "3557:24:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3426, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3424, + "name": "cost", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3409, + "src": "3599:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3425, + "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": 3423, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "3591:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3427, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3591:17:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", - "typeString": "contract IW12Crowdsale" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "value": null, - "visibility": "internal" - } - ], - "src": "1562:26:4" - }, - "payable": false, - "returnParameters": { - "id": 2108, - "nodeType": "ParameterList", - "parameters": [], - "src": "1608:0:4" - }, - "scope": 2899, - "src": "1541:234:4", - "stateMutability": "nonpayable", - "superFunction": 4461, - "visibility": "external" - }, - { - "body": { - "id": 2153, - "nodeType": "Block", - "src": "1832:68:4", - "statements": [ + "id": 3428, + "nodeType": "ExpressionStatement", + "src": "3591:17:6" + }, { "expression": { "argumentTypes": null, @@ -14752,86 +21145,48 @@ { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - "id": 2146, + "id": 3432, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2142, - "name": "_swap", + "id": 3430, + "name": "costUSD", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2136, - "src": "1850:5:4", + "referencedDeclaration": 3411, + "src": "3626:7:6", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "nodeType": "BinaryOperation", - "operator": "!=", + "operator": ">", "rightExpression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2144, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1867:1:4", - "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": 2143, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1859:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2145, + "hexValue": "30", + "id": 3431, "isConstant": false, "isLValue": false, "isPure": true, - "kind": "typeConversion", + "kind": "number", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1859:10:4", + "nodeType": "Literal", + "src": "3636:1:6", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" }, - "src": "1850:19:4", + "src": "3626:11:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14845,21 +21200,21 @@ "typeString": "bool" } ], - "id": 2141, + "id": 3429, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "1842:7:4", + "referencedDeclaration": 10045, + "src": "3618:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2147, + "id": 3433, "isConstant": false, "isLValue": false, "isPure": false, @@ -14867,144 +21222,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1842:28:4", + "src": "3618:20:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2148, - "nodeType": "ExpressionStatement", - "src": "1842:28:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 2151, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2149, - "name": "swap", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2024, - "src": "1881:4:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2150, - "name": "_swap", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2136, - "src": "1888:5:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1881:12:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2152, + "id": 3434, "nodeType": "ExpressionStatement", - "src": "1881:12:4" - } - ] - }, - "documentation": null, - "id": 2154, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 2139, - "modifierName": { - "argumentTypes": null, - "id": 2138, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6888, - "src": "1813:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } + "src": "3618:20:6" }, - "nodeType": "ModifierInvocation", - "src": "1813:9:4" - } - ], - "name": "setSwap", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2137, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2136, - "name": "_swap", - "nodeType": "VariableDeclaration", - "scope": 2154, - "src": "1798:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2135, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1798:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1797:15:4" - }, - "payable": false, - "returnParameters": { - "id": 2140, - "nodeType": "ParameterList", - "parameters": [], - "src": "1832:0:4" - }, - "scope": 2899, - "src": "1781:119:4", - "stateMutability": "nonpayable", - "superFunction": 4471, - "visibility": "external" - }, - { - "body": { - "id": 2173, - "nodeType": "Block", - "src": "1975:95:4", - "statements": [ { "expression": { "argumentTypes": null, @@ -15015,19 +21242,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2166, + "id": 3440, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2162, - "name": "_serviceWallet", + "id": 3436, + "name": "investor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2156, - "src": "1993:14:4", + "referencedDeclaration": 3403, + "src": "3656:8:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15041,14 +21268,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 2164, + "id": 3438, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2019:1:4", + "src": "3676:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -15064,20 +21291,20 @@ "typeString": "int_const 0" } ], - "id": 2163, + "id": 3437, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2011:7:4", + "src": "3668:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 2165, + "id": 3439, "isConstant": false, "isLValue": false, "isPure": true, @@ -15085,13 +21312,122 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2011:10:4", + "src": "3668:10:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1993:28:4", + "src": "3656:22:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3435, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "3648:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3648:31:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3442, + "nodeType": "ExpressionStatement", + "src": "3648:31:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3446, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3407, + "src": "3713:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 3444, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3214, + "src": "3697:5:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "id": 3445, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "hasSymbol", + "nodeType": "MemberAccess", + "referencedDeclaration": 7037, + "src": "3697:15:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (bytes32) view external returns (bool)" + } + }, + "id": 3447, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3697:23:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -15105,21 +21441,21 @@ "typeString": "bool" } ], - "id": 2161, + "id": 3443, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "1985:7:4", + "referencedDeclaration": 10045, + "src": "3689:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2167, + "id": 3448, "isConstant": false, "isLValue": false, "isPure": false, @@ -15127,407 +21463,708 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1985:37:4", + "src": "3689:32:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2168, + "id": 3449, "nodeType": "ExpressionStatement", - "src": "1985:37:4" + "src": "3689:32:6" }, { - "expression": { + "condition": { "argumentTypes": null, - "id": 2171, + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 3452, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftHandSide": { + "leftExpression": { "argumentTypes": null, - "id": 2169, - "name": "serviceWallet", + "id": 3450, + "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2026, - "src": "2033:13:4", + "referencedDeclaration": 3407, + "src": "3761:6:6", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { "argumentTypes": null, - "id": 2170, - "name": "_serviceWallet", + "id": 3451, + "name": "METHOD_ETH", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2156, - "src": "2049:14:4", + "referencedDeclaration": 3203, + "src": "3771:10:6", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, - "src": "2033:30:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2172, - "nodeType": "ExpressionStatement", - "src": "2033:30:4" - } - ] - }, - "documentation": null, - "id": 2174, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 2159, - "modifierName": { - "argumentTypes": null, - "id": 2158, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6888, - "src": "1956:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "1956:9:4" - } - ], - "name": "setServiceWallet", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2157, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2156, - "name": "_serviceWallet", - "nodeType": "VariableDeclaration", - "scope": 2174, - "src": "1932:22:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2155, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1932:7:4", + "src": "3761:20:6", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "value": null, - "visibility": "internal" - } - ], - "src": "1931:24:4" - }, - "payable": false, - "returnParameters": { - "id": 2160, - "nodeType": "ParameterList", - "parameters": [], - "src": "1975:0:4" - }, - "scope": 2899, - "src": "1906:164:4", - "stateMutability": "nonpayable", - "superFunction": 4466, - "visibility": "external" - }, - { - "body": { - "id": 2261, - "nodeType": "Block", - "src": "2170:465:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ + "falseBody": { + "id": 3490, + "nodeType": "Block", + "src": "3841:181:6", + "statements": [ { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2187, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "expression": { "argumentTypes": null, - "id": 2185, - "name": "tokenAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2178, - "src": "2188:11:4", + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3464, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3407, + "src": "3877:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 3462, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3214, + "src": "3863:5:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "id": 3463, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 6992, + "src": "3863:13:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (bytes32) view external returns (bool)" + } + }, + "id": 3465, + "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": 3461, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "3855:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3466, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3855:30:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { + "id": 3467, + "nodeType": "ExpressionStatement", + "src": "3855:30:6" + }, + { + "expression": { "argumentTypes": null, - "hexValue": "30", - "id": 2186, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3477, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10117, + "src": "3962:4:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_W12Fund_$4424", + "typeString": "contract W12Fund" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_W12Fund_$4424", + "typeString": "contract W12Fund" + } + ], + "id": 3476, + "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": 3478, + "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": 3472, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3407, + "src": "3935:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 3470, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3214, + "src": "3913:5:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "id": 3471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getTokenAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 6985, + "src": "3913:21:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view external returns (address)" + } + }, + "id": 3473, + "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": 3469, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9765, + "src": "3907:5:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$9765_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 3474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3907:36:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$9765", + "typeString": "contract ERC20" + } + }, + "id": 3475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 9779, + "src": "3907:46:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 3479, + "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": 3485, + "name": "cost", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3409, + "src": "4005:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3482, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3407, + "src": "3993:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 3480, + "name": "totalFunded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3228, + "src": "3972:11:6", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage", + "typeString": "struct FundAccount.Account storage ref" + } + }, + "id": 3481, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amountOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 4797, + "src": "3972:20:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Account_$4698_storage_ptr_$_t_bytes32_$returns$_t_uint256_$bound_to$_t_struct$_Account_$4698_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer,bytes32) view returns (uint256)" + } + }, + "id": 3483, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3972:28:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3484, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9601, + "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": 3486, + "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": 3468, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "3899:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3488, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "number", + "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "Literal", - "src": "2202:1:4", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "3899:112:6", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } }, - "src": "2188:15:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2184, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 7297, - 7298 - ], - "referencedDeclaration": 7297, - "src": "2180:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "id": 3489, + "nodeType": "ExpressionStatement", + "src": "3899:112:6" } - }, - "id": 2188, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2180:24:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } + ] }, - "id": 2189, - "nodeType": "ExpressionStatement", - "src": "2180:24:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ + "id": 3491, + "nodeType": "IfStatement", + "src": "3757:265:6", + "trueBody": { + "id": 3460, + "nodeType": "Block", + "src": "3784:51:6", + "statements": [ { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2194, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "expression": { "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3457, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3454, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10042, + "src": "3806:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3455, + "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": 3456, + "name": "cost", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3409, + "src": "3819:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3806:17:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], "expression": { - "argumentTypes": null, - "id": 2191, - "name": "msg", + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3453, + "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "2222:3:4", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "3798:7:6", "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" } }, - "id": 2192, + "id": 3458, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2222:9:4", + "names": [], + "nodeType": "FunctionCall", + "src": "3798:26:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2193, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2234:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2222:13:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2190, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 7297, - 7298 - ], - "referencedDeclaration": 7297, - "src": "2214:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "id": 3459, + "nodeType": "ExpressionStatement", + "src": "3798:26:6" } - }, - "id": 2195, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2214:22:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2196, - "nodeType": "ExpressionStatement", - "src": "2214:22:4" + ] + } }, { "expression": { "argumentTypes": null, - "id": 2208, + "id": 3501, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "expression": { + "baseExpression": { + "argumentTypes": null, + "id": 3492, + "name": "tokenBoughtPerInvestor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3240, + "src": "4069:22:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3494, + "indexExpression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2197, - "name": "buyers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2034, - "src": "2247:6:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_TokenPriceInfo_$2053_storage_$", - "typeString": "mapping(address => struct W12Fund.TokenPriceInfo storage ref)" - } - }, - "id": 2199, - "indexExpression": { - "argumentTypes": null, - "id": 2198, - "name": "buyer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2176, - "src": "2254:5:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2247:13:4", + "id": 3493, + "name": "investor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3403, + "src": "4092:8:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_TokenPriceInfo_$2053_storage", - "typeString": "struct W12Fund.TokenPriceInfo storage ref" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 2200, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, - "memberName": "totalBought", - "nodeType": "MemberAccess", - "referencedDeclaration": 2048, - "src": "2247:25:4", + "nodeType": "IndexAccess", + "src": "4069:32:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15540,12 +22177,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2206, + "id": 3499, "name": "tokenAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2178, - "src": "2305:11:4", + "referencedDeclaration": 3405, + "src": "4141:11:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15561,75 +22198,59 @@ ], "expression": { "argumentTypes": null, - "expression": { + "baseExpression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2201, - "name": "buyers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2034, - "src": "2275:6:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_TokenPriceInfo_$2053_storage_$", - "typeString": "mapping(address => struct W12Fund.TokenPriceInfo storage ref)" - } - }, - "id": 2203, - "indexExpression": { - "argumentTypes": null, - "id": 2202, - "name": "buyer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2176, - "src": "2282:5:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2275:13:4", + "id": 3495, + "name": "tokenBoughtPerInvestor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3240, + "src": "4104:22:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3497, + "indexExpression": { + "argumentTypes": null, + "id": 3496, + "name": "investor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3403, + "src": "4127:8:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_TokenPriceInfo_$2053_storage", - "typeString": "struct W12Fund.TokenPriceInfo storage ref" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 2204, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "memberName": "totalBought", - "nodeType": "MemberAccess", - "referencedDeclaration": 2048, - "src": "2275:25:4", + "nodeType": "IndexAccess", + "src": "4104:32:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2205, + "id": 3498, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 6853, - "src": "2275:29:4", + "referencedDeclaration": 9601, + "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": 2207, + "id": 3500, "isConstant": false, "isLValue": false, "isPure": false, @@ -15637,56 +22258,88 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2275:42:4", + "src": "4104:49:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2247:70:4", + "src": "4069:84:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2209, + "id": 3502, "nodeType": "ExpressionStatement", - "src": "2247:70:4" + "src": "4069:84:6" }, { "expression": { "argumentTypes": null, - "id": 2222, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3507, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3407, + "src": "4199:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 3508, + "name": "cost", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3409, + "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": 2210, - "name": "buyers", + "id": 3503, + "name": "fundedPerInvestor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2034, - "src": "2327:6:4", + "referencedDeclaration": 3244, + "src": "4163:17:6", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_TokenPriceInfo_$2053_storage_$", - "typeString": "mapping(address => struct W12Fund.TokenPriceInfo storage ref)" + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Account_$4698_storage_$", + "typeString": "mapping(address => struct FundAccount.Account storage ref)" } }, - "id": 2212, + "id": 3505, "indexExpression": { "argumentTypes": null, - "id": 2211, - "name": "buyer", + "id": 3504, + "name": "investor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2176, - "src": "2334:5:4", + "referencedDeclaration": 3403, + "src": "4181:8:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15697,196 +22350,110 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2327:13:4", + "src": "4163:27:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_TokenPriceInfo_$2053_storage", - "typeString": "struct W12Fund.TokenPriceInfo storage ref" + "typeIdentifier": "t_struct$_Account_$4698_storage", + "typeString": "struct FundAccount.Account storage ref" } }, - "id": 2213, + "id": 3506, "isConstant": false, "isLValue": true, "isPure": false, - "lValueRequested": true, - "memberName": "totalFunded", - "nodeType": "MemberAccess", - "referencedDeclaration": 2052, - "src": "2327:25:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2219, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "2385:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2385:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2214, - "name": "buyers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2034, - "src": "2355:6:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_TokenPriceInfo_$2053_storage_$", - "typeString": "mapping(address => struct W12Fund.TokenPriceInfo storage ref)" - } - }, - "id": 2216, - "indexExpression": { - "argumentTypes": null, - "id": 2215, - "name": "buyer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2176, - "src": "2362:5:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2355:13:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TokenPriceInfo_$2053_storage", - "typeString": "struct W12Fund.TokenPriceInfo storage ref" - } - }, - "id": 2217, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "totalFunded", - "nodeType": "MemberAccess", - "referencedDeclaration": 2052, - "src": "2355:25:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2218, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 6853, - "src": "2355:29:4", - "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": 2221, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2355:40:4", + "memberName": "deposit", + "nodeType": "MemberAccess", + "referencedDeclaration": 4727, + "src": "4163:35:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Account_$4698_storage_ptr_$_t_bytes32_$_t_uint256_$returns$__$bound_to$_t_struct$_Account_$4698_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer,bytes32,uint256)" } }, - "src": "2327:68:4", + "id": 3509, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4163:49:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 2223, + "id": 3510, "nodeType": "ExpressionStatement", - "src": "2327:68:4" + "src": "4163:49:6" }, { "expression": { "argumentTypes": null, - "id": 2244, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3515, + "name": "METHOD_USD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3208, + "src": "4258:10:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 3516, + "name": "costUSD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3411, + "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": 2224, - "name": "buyers", + "id": 3511, + "name": "fundedPerInvestor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2034, - "src": "2405:6:4", + "referencedDeclaration": 3244, + "src": "4222:17:6", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_TokenPriceInfo_$2053_storage_$", - "typeString": "mapping(address => struct W12Fund.TokenPriceInfo storage ref)" + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Account_$4698_storage_$", + "typeString": "mapping(address => struct FundAccount.Account storage ref)" } }, - "id": 2226, + "id": 3513, "indexExpression": { "argumentTypes": null, - "id": 2225, - "name": "buyer", + "id": 3512, + "name": "investor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2176, - "src": "2412:5:4", + "referencedDeclaration": 3403, + "src": "4240:8:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15897,21 +22464,60 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2405:13:4", + "src": "4222:27:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_TokenPriceInfo_$2053_storage", - "typeString": "struct W12Fund.TokenPriceInfo storage ref" + "typeIdentifier": "t_struct$_Account_$4698_storage", + "typeString": "struct FundAccount.Account storage ref" } }, - "id": 2227, + "id": 3514, "isConstant": false, "isLValue": true, "isPure": false, - "lValueRequested": true, - "memberName": "averagePrice", + "lValueRequested": false, + "memberName": "deposit", "nodeType": "MemberAccess", - "referencedDeclaration": 2050, - "src": "2405:26:4", + "referencedDeclaration": 4727, + "src": "4222:35:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Account_$4698_storage_ptr_$_t_bytes32_$_t_uint256_$returns$__$bound_to$_t_struct$_Account_$4698_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer,bytes32,uint256)" + } + }, + "id": 3517, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4222:56:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3518, + "nodeType": "ExpressionStatement", + "src": "4222:56:6" + }, + { + "expression": { + "argumentTypes": null, + "id": 3524, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3519, + "name": "totalTokenBought", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3234, + "src": "4320:16:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15924,55 +22530,12 @@ "arguments": [ { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2239, - "name": "buyers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2034, - "src": "2491:6:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_TokenPriceInfo_$2053_storage_$", - "typeString": "mapping(address => struct W12Fund.TokenPriceInfo storage ref)" - } - }, - "id": 2241, - "indexExpression": { - "argumentTypes": null, - "id": 2240, - "name": "buyer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2176, - "src": "2498:5:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2491:13:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TokenPriceInfo_$2053_storage", - "typeString": "struct W12Fund.TokenPriceInfo storage ref" - } - }, - "id": 2242, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "totalBought", - "nodeType": "MemberAccess", - "referencedDeclaration": 2048, - "src": "2491:25:4", + "id": 3522, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3405, + "src": "4360:11:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15988,181 +22551,32 @@ ], "expression": { "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 2233, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2465:2:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "id": 2234, - "name": "tokenDecimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2030, - "src": "2471:13:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2465:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2228, - "name": "buyers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2034, - "src": "2435:6:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_TokenPriceInfo_$2053_storage_$", - "typeString": "mapping(address => struct W12Fund.TokenPriceInfo storage ref)" - } - }, - "id": 2230, - "indexExpression": { - "argumentTypes": null, - "id": 2229, - "name": "buyer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2176, - "src": "2442:5:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2435:13:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TokenPriceInfo_$2053_storage", - "typeString": "struct W12Fund.TokenPriceInfo storage ref" - } - }, - "id": 2231, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "totalFunded", - "nodeType": "MemberAccess", - "referencedDeclaration": 2052, - "src": "2435:25:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2232, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 6795, - "src": "2435:29:4", - "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": 2236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2435:50:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 2237, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "2434:52:4", + "id": 3520, + "name": "totalTokenBought", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3234, + "src": "4339:16:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2238, + "id": 3521, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "div", + "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 6809, - "src": "2434:56:4", + "referencedDeclaration": 9601, + "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": 2243, + "id": 3523, "isConstant": false, "isLValue": false, "isPure": false, @@ -16170,135 +22584,195 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2434:83:4", + "src": "4339:33:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2405:112:4", + "src": "4320:52:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2245, + "id": 3525, "nodeType": "ExpressionStatement", - "src": "2405:112:4" + "src": "4320:52:6" }, { "expression": { "argumentTypes": null, - "id": 2252, + "arguments": [ + { + "argumentTypes": null, + "id": 3529, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3407, + "src": "4402:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 3530, + "name": "cost", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3409, + "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": 3526, + "name": "totalFunded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3228, + "src": "4382:11:6", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage", + "typeString": "struct FundAccount.Account storage ref" + } + }, + "id": 3528, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "deposit", + "nodeType": "MemberAccess", + "referencedDeclaration": 4727, + "src": "4382:19:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Account_$4698_storage_ptr_$_t_bytes32_$_t_uint256_$returns$__$bound_to$_t_struct$_Account_$4698_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer,bytes32,uint256)" + } + }, + "id": 3531, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2246, - "name": "totalFunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2040, - "src": "2528:11:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2249, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "2558:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2250, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2558:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "names": [], + "nodeType": "FunctionCall", + "src": "4382:33:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3532, + "nodeType": "ExpressionStatement", + "src": "4382:33:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3536, + "name": "METHOD_USD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3208, + "src": "4445:10:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 3537, + "name": "costUSD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3411, + "src": "4457:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2247, - "name": "totalFunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2040, - "src": "2542:11:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2248, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 6853, - "src": "2542:15:4", + "argumentTypes": null, + "id": 3533, + "name": "totalFunded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3228, + "src": "4425:11: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)" + "typeIdentifier": "t_struct$_Account_$4698_storage", + "typeString": "struct FundAccount.Account storage ref" } }, - "id": 2251, + "id": 3535, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2542:26:4", + "memberName": "deposit", + "nodeType": "MemberAccess", + "referencedDeclaration": 4727, + "src": "4425:19:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Account_$4698_storage_ptr_$_t_bytes32_$_t_uint256_$returns$__$bound_to$_t_struct$_Account_$4698_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer,bytes32,uint256)" } }, - "src": "2528:40:4", + "id": 3538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4425:40:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 2253, + "id": 3539, "nodeType": "ExpressionStatement", - "src": "2528:40:4" + "src": "4425:40:6" }, { "eventCall": { @@ -16306,12 +22780,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2255, - "name": "buyer", + "id": 3541, + "name": "investor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2176, - "src": "2598:5:4", + "referencedDeclaration": 3403, + "src": "4495:8:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -16319,28 +22793,12 @@ }, { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2256, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "2605:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2257, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2605:9:4", + "id": 3542, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3405, + "src": "4505:11:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16348,12 +22806,25 @@ }, { "argumentTypes": null, - "id": 2258, - "name": "tokenAmount", + "id": 3543, + "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2178, - "src": "2616:11:4", + "referencedDeclaration": 3407, + "src": "4518:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 3544, + "name": "cost", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3409, + "src": "4526:4:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16370,23 +22841,27 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], - "id": 2254, + "id": 3540, "name": "FundsReceived", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2061, - "src": "2584:13:4", + "referencedDeclaration": 3254, + "src": "4481:13:6", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256,uint256)" + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,bytes32,uint256)" } }, - "id": 2259, + "id": 3545, "isConstant": false, "isLValue": false, "isPure": false, @@ -16394,20 +22869,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2584:44:4", + "src": "4481:50:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2260, + "id": 3546, "nodeType": "EmitStatement", - "src": "2579:49:4" + "src": "4476:55:6" } ] }, - "documentation": null, - "id": 2262, + "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": 3548, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -16416,49 +22891,313 @@ "arguments": [ { "argumentTypes": null, - "id": 2181, + "id": 3414, "name": "crowdsale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2022, - "src": "2159:9:4", + "referencedDeclaration": 3210, + "src": "3532:9:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } } ], - "id": 2182, + "id": 3415, "modifierName": { "argumentTypes": null, - "id": 2180, + "id": 3413, "name": "onlyFrom", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2898, - "src": "2150:8:4", + "referencedDeclaration": 4423, + "src": "3523:8:6", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_address_$", "typeString": "modifier (address)" } }, "nodeType": "ModifierInvocation", - "src": "2150:19:4" + "src": "3523:19:6" } ], "name": "recordPurchase", "nodeType": "FunctionDefinition", "parameters": { - "id": 2179, + "id": 3412, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3403, + "name": "investor", + "nodeType": "VariableDeclaration", + "scope": 3548, + "src": "3384:16:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3402, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3384:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3405, + "name": "tokenAmount", + "nodeType": "VariableDeclaration", + "scope": 3548, + "src": "3410:16:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3404, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3410:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3407, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 3548, + "src": "3436:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3406, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3436:7:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3409, + "name": "cost", + "nodeType": "VariableDeclaration", + "scope": 3548, + "src": "3460:9:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3408, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3460:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3411, + "name": "costUSD", + "nodeType": "VariableDeclaration", + "scope": 3548, + "src": "3479:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3410, + "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": 3416, + "nodeType": "ParameterList", + "parameters": [], + "src": "3547:0:6" + }, + "scope": 4424, + "src": "3351:1187:6", + "stateMutability": "payable", + "superFunction": 1240, + "visibility": "external" + }, + { + "body": { + "id": 3564, + "nodeType": "Block", + "src": "4639:70:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3561, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3552, + "src": "4694:7:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3557, + "name": "fundedPerInvestor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3244, + "src": "4656:17:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Account_$4698_storage_$", + "typeString": "mapping(address => struct FundAccount.Account storage ref)" + } + }, + "id": 3559, + "indexExpression": { + "argumentTypes": null, + "id": 3558, + "name": "_investor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3550, + "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_$4698_storage", + "typeString": "struct FundAccount.Account storage ref" + } + }, + "id": 3560, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amountOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 4797, + "src": "4656:37:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Account_$4698_storage_ptr_$_t_bytes32_$returns$_t_uint256_$bound_to$_t_struct$_Account_$4698_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer,bytes32) view returns (uint256)" + } + }, + "id": 3562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4656:46:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3556, + "id": 3563, + "nodeType": "Return", + "src": "4649:53:6" + } + ] + }, + "documentation": null, + "id": 3565, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getInvestorFundedAmount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3553, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2176, - "name": "buyer", + "id": 3550, + "name": "_investor", "nodeType": "VariableDeclaration", - "scope": 2262, - "src": "2100:13:4", + "scope": 3565, + "src": "4577:17:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16466,10 +23205,10 @@ "typeString": "address" }, "typeName": { - "id": 2175, + "id": 3549, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2100:7:4", + "src": "4577:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -16480,11 +23219,45 @@ }, { "constant": false, - "id": 2178, - "name": "tokenAmount", + "id": 3552, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 3565, + "src": "4596:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3551, + "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": 3556, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3555, + "name": "", "nodeType": "VariableDeclaration", - "scope": 2262, - "src": "2115:16:4", + "scope": 3565, + "src": "4633:4:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16492,10 +23265,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2177, + "id": 3554, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2115:4:4", + "src": "4633:4:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16505,142 +23278,81 @@ "visibility": "internal" } ], - "src": "2099:33:4" - }, - "payable": true, - "returnParameters": { - "id": 2183, - "nodeType": "ParameterList", - "parameters": [], - "src": "2170:0:4" + "src": "4632:6:6" }, - "scope": 2899, - "src": "2076:559:4", - "stateMutability": "payable", - "superFunction": 4483, - "visibility": "external" + "scope": 4424, + "src": "4544:165:6", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" }, { "body": { - "id": 2289, + "id": 3579, "nodeType": "Block", - "src": "2755:118:4", + "src": "4805:66:6", "statements": [ { "expression": { "argumentTypes": null, - "arguments": [ - { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2276, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "baseExpression": { "argumentTypes": null, - "id": 2272, - "name": "buyer", + "id": 3573, + "name": "fundedPerInvestor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2264, - "src": "2773:5:4", + "referencedDeclaration": 3244, + "src": "4822:17:6", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Account_$4698_storage_$", + "typeString": "mapping(address => struct FundAccount.Account storage ref)" } }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { + "id": 3575, + "indexExpression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2274, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2790:1:4", - "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": 2273, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2782:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2275, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2782:10:4", + "id": 3574, + "name": "_investor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3567, + "src": "4840:9:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2773:19:4", + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4822:28:6", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_struct$_Account_$4698_storage", + "typeString": "struct FundAccount.Account storage ref" } - ], - "id": 2271, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 7297, - 7298 - ], - "referencedDeclaration": 7297, - "src": "2765:7:4", + }, + "id": 3576, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "symbolsList", + "nodeType": "MemberAccess", + "referencedDeclaration": 4809, + "src": "4822:40:6", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Account_$4698_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$bound_to$_t_struct$_Account_$4698_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer) view returns (bytes32[] memory)" } }, - "id": 2277, + "id": 3577, "isConstant": false, "isLValue": false, "isPure": false, @@ -16648,172 +23360,183 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2765:28:4", + "src": "4822:42:6", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[] memory" } }, - "id": 2278, - "nodeType": "ExpressionStatement", - "src": "2765:28:4" - }, + "functionReturnParameters": 3572, + "id": 3578, + "nodeType": "Return", + "src": "4815:49:6" + } + ] + }, + "documentation": null, + "id": 3580, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getInvestorFundedAssetsSymbols", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3568, + "nodeType": "ParameterList", + "parameters": [ { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2279, - "name": "buyers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2034, - "src": "2812:6:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_TokenPriceInfo_$2053_storage_$", - "typeString": "mapping(address => struct W12Fund.TokenPriceInfo storage ref)" - } - }, - "id": 2281, - "indexExpression": { - "argumentTypes": null, - "id": 2280, - "name": "buyer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2264, - "src": "2819:5:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2812:13:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TokenPriceInfo_$2053_storage", - "typeString": "struct W12Fund.TokenPriceInfo storage ref" - } - }, - "id": 2282, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "totalBought", - "nodeType": "MemberAccess", - "referencedDeclaration": 2048, - "src": "2812:25:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2283, - "name": "buyers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2034, - "src": "2839:6:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_TokenPriceInfo_$2053_storage_$", - "typeString": "mapping(address => struct W12Fund.TokenPriceInfo storage ref)" - } - }, - "id": 2285, - "indexExpression": { - "argumentTypes": null, - "id": 2284, - "name": "buyer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2264, - "src": "2846:5:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2839:13:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TokenPriceInfo_$2053_storage", - "typeString": "struct W12Fund.TokenPriceInfo storage ref" - } - }, - "id": 2286, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "averagePrice", - "nodeType": "MemberAccess", - "referencedDeclaration": 2050, - "src": "2839:26:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "constant": false, + "id": 3567, + "name": "_investor", + "nodeType": "VariableDeclaration", + "scope": 3580, + "src": "4755:17:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3566, + "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": 3572, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3571, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3580, + "src": "4794:9:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 3569, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4794:7:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } - ], - "id": 2287, + }, + "id": 3570, + "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": 4424, + "src": "4715:156:6", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3591, + "nodeType": "Block", + "src": "4961:57:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3587, + "name": "tokenBoughtPerInvestor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3240, + "src": "4978:22:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3589, + "indexExpression": { + "argumentTypes": null, + "id": 3588, + "name": "_investor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3582, + "src": "5001:9:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, "isConstant": false, - "isInlineArray": false, - "isLValue": false, + "isLValue": true, "isPure": false, "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "2811:55:4", + "nodeType": "IndexAccess", + "src": "4978:33:6", "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "functionReturnParameters": 2270, - "id": 2288, + "functionReturnParameters": 3586, + "id": 3590, "nodeType": "Return", - "src": "2804:62:4" + "src": "4971:40:6" } ] }, "documentation": null, - "id": 2290, + "id": 3592, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], - "name": "getInvestmentsInfo", + "name": "getInvestorTokenBoughtAmount", "nodeType": "FunctionDefinition", "parameters": { - "id": 2265, + "id": 3583, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2264, - "name": "buyer", + "id": 3582, + "name": "_investor", "nodeType": "VariableDeclaration", - "scope": 2290, - "src": "2669:13:4", + "scope": 3592, + "src": "4915:17:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16821,10 +23544,10 @@ "typeString": "address" }, "typeName": { - "id": 2263, + "id": 3581, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2669:7:4", + "src": "4915:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -16834,46 +23557,20 @@ "visibility": "internal" } ], - "src": "2668:15:4" + "src": "4914:19:6" }, "payable": false, "returnParameters": { - "id": 2270, + "id": 3586, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2267, - "name": "totalTokensBought", - "nodeType": "VariableDeclaration", - "scope": 2290, - "src": "2707:22:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2266, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2707:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2269, - "name": "averageTokenPrice", + "id": 3585, + "name": "", "nodeType": "VariableDeclaration", - "scope": 2290, - "src": "2731:22:4", + "scope": 3592, + "src": "4955:4:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16881,10 +23578,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2268, + "id": 3584, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2731:4:4", + "src": "4955:4:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16894,452 +23591,511 @@ "visibility": "internal" } ], - "src": "2706:48:4" + "src": "4954:6:6" }, - "scope": 2899, - "src": "2641:232:4", + "scope": 4424, + "src": "4877:141:6", "stateMutability": "view", "superFunction": null, - "visibility": "external" + "visibility": "public" }, { "body": { - "id": 2418, + "id": 3604, "nodeType": "Block", - "src": "3192:829:4", + "src": "5098:53:6", "statements": [ { - "assignments": [ - 2298 - ], - "declarations": [ - { - "constant": false, - "id": 2298, - "name": "exp", - "nodeType": "VariableDeclaration", - "scope": 2419, - "src": "3202:8:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2297, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3202:4:4", + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3601, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3594, + "src": "5136:7:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2311, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2304, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { "argumentTypes": null, - "id": 2299, - "name": "tokenDecimals", + "id": 3599, + "name": "totalFunded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2030, - "src": "3213:13:4", + "referencedDeclaration": 3228, + "src": "5115:11:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_struct$_Account_$4698_storage", + "typeString": "struct FundAccount.Account storage ref" } }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "38", - "id": 2302, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3247:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - } - ], - "expression": { - "argumentTypes": null, - "id": 2300, - "name": "tokenDecimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2030, - "src": "3229:13:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2301, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 6853, - "src": "3229:17:4", - "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": 2303, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3229:20:4", + "id": 3600, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amountOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 4797, + "src": "5115:20:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Account_$4698_storage_ptr_$_t_bytes32_$returns$_t_uint256_$bound_to$_t_struct$_Account_$4698_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer,bytes32) view returns (uint256)" + } + }, + "id": 3602, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5115:29:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3598, + "id": 3603, + "nodeType": "Return", + "src": "5108:36:6" + } + ] + }, + "documentation": null, + "id": 3605, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getTotalFundedAmount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3595, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3594, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 3605, + "src": "5054:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3593, + "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": 3598, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3597, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3605, + "src": "5092:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3596, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5092:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5091:6:6" + }, + "scope": 4424, + "src": "5024:127:6", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3615, + "nodeType": "Block", + "src": "5228:49:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 3611, + "name": "totalFunded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3228, + "src": "5245:11:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_struct$_Account_$4698_storage", + "typeString": "struct FundAccount.Account storage ref" } }, - "src": "3213:36:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "id": 2309, - "name": "tokenDecimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2030, - "src": "3275:13:4", + "id": 3612, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "symbolsList", + "nodeType": "MemberAccess", + "referencedDeclaration": 4809, + "src": "5245:23:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Account_$4698_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$bound_to$_t_struct$_Account_$4698_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer) view returns (bytes32[] memory)" } }, - "id": 2310, + "id": 3613, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "Conditional", - "src": "3213:75:4", - "trueExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "38", - "id": 2307, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3270:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - } - ], - "expression": { - "argumentTypes": null, - "id": 2305, - "name": "tokenDecimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2030, - "src": "3252:13:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2306, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 6853, - "src": "3252:17:4", - "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": 2308, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3252:20:4", + "names": [], + "nodeType": "FunctionCall", + "src": "5245:25:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[] memory" + } + }, + "functionReturnParameters": 3610, + "id": 3614, + "nodeType": "Return", + "src": "5238:32:6" + } + ] + }, + "documentation": null, + "id": 3616, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getTotalFundedAssetsSymbols", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3606, + "nodeType": "ParameterList", + "parameters": [], + "src": "5193:2:6" + }, + "payable": false, + "returnParameters": { + "id": 3610, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3609, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3616, + "src": "5217:9:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 3607, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5217:7:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, + "id": 3608, + "length": null, + "nodeType": "ArrayTypeName", + "src": "5217:9:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" } }, - "nodeType": "VariableDeclarationStatement", - "src": "3202:86:4" - }, + "value": null, + "visibility": "internal" + } + ], + "src": "5216:11:6" + }, + "scope": 4424, + "src": "5157:120:6", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3627, + "nodeType": "Block", + "src": "5359:52:6", + "statements": [ { "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2320, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2318, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2315, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "-", - "prefix": true, - "src": "3312:3:4", - "subExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 2314, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3314:1:4", - "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": 2313, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3307:4:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint" - }, - "id": 2316, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3307:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 2317, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3319:2:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "src": "3307:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 2319, - "name": "exp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2298, - "src": "3325:3:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3307:21:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2312, - "name": "require", + "baseExpression": { + "argumentTypes": null, + "id": 3623, + "name": "totalFundedReleased", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3232, + "src": "5376:19:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 3625, + "indexExpression": { + "argumentTypes": null, + "id": 3624, + "name": "_symbol", "nodeType": "Identifier", - "overloadedDeclarations": [ - 7297, - 7298 - ], - "referencedDeclaration": 7297, - "src": "3299:7:4", + "overloadedDeclarations": [], + "referencedDeclaration": 3618, + "src": "5396:7:6", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, - "id": 2321, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5376:28:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3622, + "id": 3626, + "nodeType": "Return", + "src": "5369:35:6" + } + ] + }, + "documentation": null, + "id": 3628, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getTotalFundedReleased", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3619, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3618, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 3628, + "src": "5315:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3617, + "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": 3622, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3621, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3628, + "src": "5353:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3620, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5353:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5352:6:6" + }, + "scope": 4424, + "src": "5283:128:6", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3745, + "nodeType": "Block", + "src": "5632:1102:6", + "statements": [ + { + "condition": { + "argumentTypes": null, + "id": 3637, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3299:30:4", + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "5646:25:6", + "subExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3635, + "name": "trancheTransferAllowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4371, + "src": "5647:22:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", + "typeString": "function () view returns (bool)" + } + }, + "id": 3636, + "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_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 2322, - "nodeType": "ExpressionStatement", - "src": "3299:30:4" + "falseBody": null, + "id": 3639, + "nodeType": "IfStatement", + "src": "5642:38:6", + "trueBody": { + "expression": null, + "functionReturnParameters": 3634, + "id": 3638, + "nodeType": "Return", + "src": "5673:7:6" + } }, { "assignments": [ - 2324 + 3641, + null ], "declarations": [ { "constant": false, - "id": 2324, - "name": "max", + "id": 3641, + "name": "index", "nodeType": "VariableDeclaration", - "scope": 2419, - "src": "3340:8:4", + "scope": 3746, + "src": "5691:10:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17347,10 +24103,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2323, + "id": 3640, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3340:4:4", + "src": "5691:4:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17358,489 +24114,309 @@ }, "value": null, "visibility": "internal" - } + }, + null ], - "id": 2333, + "id": 3645, "initialValue": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2332, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2327, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "-", - "prefix": true, - "src": "3356:2:4", - "subExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 2326, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3357:1:4", - "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" - } - } - ], + "arguments": [], + "expression": { + "argumentTypes": [], "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_-1_by_1", - "typeString": "int_const -1" - } - ], - "id": 2325, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3351:4:4", + "argumentTypes": null, + "id": 3642, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3210, + "src": "5721:9:6", "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint" + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", + "typeString": "contract IW12Crowdsale" + } }, - "id": 2328, + "id": 3643, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "typeConversion", + "isPure": false, "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3351:8:4", + "memberName": "getCurrentMilestoneIndex", + "nodeType": "MemberAccess", + "referencedDeclaration": 1155, + "src": "5721:34:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$_t_bool_$", + "typeString": "function () view external returns (uint256,bool)" } }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "commonType": { + "id": 3644, + "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": [ + 3647, + null + ], + "declarations": [ + { + "constant": false, + "id": 3647, + "name": "lastIndex", + "nodeType": "VariableDeclaration", + "scope": 3746, + "src": "5768:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2331, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 2329, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3362:2:4", - "subdenomination": null, + "typeName": { + "id": 3646, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5768:4:6", "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { + "value": null, + "visibility": "internal" + }, + null + ], + "id": 3651, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { "argumentTypes": null, - "id": 2330, - "name": "exp", + "id": 3648, + "name": "crowdsale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2298, - "src": "3368:3:4", + "referencedDeclaration": 3210, + "src": "5802:9:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", + "typeString": "contract IW12Crowdsale" } }, - "src": "3362:9:4", + "id": 3649, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getLastMilestoneIndex", + "nodeType": "MemberAccess", + "referencedDeclaration": 1162, + "src": "5802:31:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$_t_bool_$", + "typeString": "function () view external returns (uint256,bool)" } }, - "src": "3351:20:4", + "id": 3650, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5802:33:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", + "typeString": "tuple(uint256,bool)" } }, "nodeType": "VariableDeclarationStatement", - "src": "3340:31:4" + "src": "5767:68:6" }, { "assignments": [ - 2335 + null, + null, + null, + 3653, + null, + null ], "declarations": [ + null, + null, + null, { "constant": false, - "id": 2335, - "name": "buyer", + "id": 3653, + "name": "lastWithdrawalWindow", "nodeType": "VariableDeclaration", - "scope": 2419, - "src": "3381:13:4", + "scope": 3746, + "src": "5851:27:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint32", + "typeString": "uint32" }, "typeName": { - "id": 2334, - "name": "address", + "id": 3652, + "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "3381:7:4", + "src": "5851:6:6", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint32", + "typeString": "uint32" } }, "value": null, "visibility": "internal" - } + }, + null, + null ], - "id": 2338, + "id": 3658, "initialValue": { "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3656, + "name": "lastIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3647, + "src": "5907:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], "expression": { - "argumentTypes": null, - "id": 2336, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "3397:3:4", + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 3654, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3210, + "src": "5884:9:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", + "typeString": "contract IW12Crowdsale" + } + }, + "id": 3655, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getMilestone", + "nodeType": "MemberAccess", + "referencedDeclaration": 1129, + "src": "5884:22:6", "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" + "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": 2337, + "id": 3657, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3397:10:4", + "names": [], + "nodeType": "FunctionCall", + "src": "5884:33:6", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "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": "3381:26:4" + "src": "5846:71:6" }, { - "condition": { + "expression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2369, + "id": 3672, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftExpression": { + "leftHandSide": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2362, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2355, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2348, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2341, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2339, - "name": "wtokensToRefund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2292, - "src": "3421:15:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2340, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3440:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3421:20:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2342, - "name": "buyers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2034, - "src": "3457:6:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_TokenPriceInfo_$2053_storage_$", - "typeString": "mapping(address => struct W12Fund.TokenPriceInfo storage ref)" - } - }, - "id": 2344, - "indexExpression": { - "argumentTypes": null, - "id": 2343, - "name": "buyer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2335, - "src": "3464:5:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3457:13:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TokenPriceInfo_$2053_storage", - "typeString": "struct W12Fund.TokenPriceInfo storage ref" - } - }, - "id": 2345, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "totalBought", - "nodeType": "MemberAccess", - "referencedDeclaration": 2048, - "src": "3457:25:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2346, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3486:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3457:30:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "3421:66:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "id": 3659, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3641, + "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" }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { + "id": 3666, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2354, + "id": 3662, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2350, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7343, - "src": "3511:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_W12Fund_$2899", - "typeString": "contract W12Fund" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_W12Fund_$2899", - "typeString": "contract W12Fund" - } - ], - "id": 2349, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3503:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2351, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3503:13:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2352, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3503:21:4", + "id": 3660, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3641, + "src": "5979:5:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17851,14 +24427,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2353, + "id": 3661, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3528:1:4", + "src": "5988:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -17866,243 +24442,400 @@ }, "value": "0" }, - "src": "3503:26:4", + "src": "5979:10:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3665, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3663, + "name": "lastIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3647, + "src": "5993:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 3664, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3641, + "src": "6006:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5993:18:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3421:108:4", + "src": "5979:32:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { + "falseExpression": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2361, + "id": 3670, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2358, - "name": "buyer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2335, - "src": "3562:5:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2356, - "name": "wToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2028, - "src": "3545:6:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" - } - }, - "id": 2357, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 5276, - "src": "3545:16:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 2359, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3545:23:4", + "id": 3668, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3641, + "src": "6022:5:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", - "operator": "<", + "operator": "-", "rightExpression": { "argumentTypes": null, - "id": 2360, - "name": "wtokensToRefund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2292, - "src": "3571:15:4", + "hexValue": "31", + "id": 3669, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6030:1:6", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" }, - "src": "3545:41:4", + "src": "6022:9:6", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "src": "3421:165:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2368, + "id": 3671, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftExpression": { + "nodeType": "Conditional", + "src": "5979:52:6", + "trueExpression": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2363, - "name": "buyers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2034, - "src": "3602:6:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_TokenPriceInfo_$2053_storage_$", - "typeString": "mapping(address => struct W12Fund.TokenPriceInfo storage ref)" - } - }, - "id": 2365, - "indexExpression": { - "argumentTypes": null, - "id": 2364, - "name": "buyer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2335, - "src": "3609:5:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3602:13:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TokenPriceInfo_$2053_storage", - "typeString": "struct W12Fund.TokenPriceInfo storage ref" - } - }, - "id": 2366, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "totalBought", - "nodeType": "MemberAccess", - "referencedDeclaration": 2048, - "src": "3602:25:4", + "id": 3667, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3641, + "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": 3673, + "nodeType": "ExpressionStatement", + "src": "5971:60:6" + }, + { + "assignments": [ + null, + 3675, + null, + 3677, + null, + null + ], + "declarations": [ + null, + { + "constant": false, + "id": 3675, + "name": "tranchePercent", + "nodeType": "VariableDeclaration", + "scope": 3746, + "src": "6046:19:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3674, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6046:4:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { + "value": null, + "visibility": "internal" + }, + null, + { + "constant": false, + "id": 3677, + "name": "withdrawalWindow", + "nodeType": "VariableDeclaration", + "scope": 3746, + "src": "6069:23:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 3676, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "6069:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + null, + null + ], + "id": 3682, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { "argumentTypes": null, - "id": 2367, - "name": "wtokensToRefund", + "id": 3680, + "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2292, - "src": "3630:15:4", + "referencedDeclaration": 3641, + "src": "6123:5:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 3678, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3210, + "src": "6100:9:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", + "typeString": "contract IW12Crowdsale" + } }, - "src": "3602:43:4", + "id": 3679, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getMilestone", + "nodeType": "MemberAccess", + "referencedDeclaration": 1129, + "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": 3681, + "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)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6042:87:6" + }, + { + "assignments": [ + 3684 + ], + "declarations": [ + { + "constant": false, + "id": 3684, + "name": "completed", + "nodeType": "VariableDeclaration", + "scope": 3746, + "src": "6140:14:6", + "stateVariable": false, + "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" + }, + "typeName": { + "id": 3683, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6140:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3688, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3685, + "name": "completedTranches", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3226, + "src": "6157:17:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" + } + }, + "id": 3687, + "indexExpression": { + "argumentTypes": null, + "id": 3686, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3641, + "src": "6175:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "src": "3421:224:4", + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6157:24:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6140:41:6" + }, + { + "condition": { + "argumentTypes": null, + "id": 3689, + "name": "completed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3684, + "src": "6196:9:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 2371, + "id": 3691, "nodeType": "IfStatement", - "src": "3418:245:4", + "src": "6192:22:6", "trueBody": { "expression": null, - "functionReturnParameters": 2296, - "id": 2370, + "functionReturnParameters": 3634, + "id": 3690, "nodeType": "Return", - "src": "3656:7:4" + "src": "6207:7:6" } }, { "assignments": [ - 2373 + 3693 ], "declarations": [ { "constant": false, - "id": 2373, - "name": "allowedFund", + "id": 3693, + "name": "prevIndex", "nodeType": "VariableDeclaration", - "scope": 2419, - "src": "3673:16:4", + "scope": 3746, + "src": "6224:14:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -18110,10 +24843,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2372, + "id": 3692, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3673:4:4", + "src": "6224:4:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18123,403 +24856,411 @@ "visibility": "internal" } ], - "id": 2387, + "id": 3695, "initialValue": { "argumentTypes": null, - "arguments": [ + "id": 3694, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3641, + "src": "6241:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6224:22:6" + }, + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 3697, + "name": "totalTranchePercentBefore", + "nodeType": "VariableDeclaration", + "scope": 3746, + "src": "6256:30:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3696, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6256:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3698, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "6256:30:6" + }, + { + "body": { + "id": 3719, + "nodeType": "Block", + "src": "6319:208:6", + "statements": [ { - "argumentTypes": null, "expression": { + "argumentTypes": null, + "id": 3703, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "--", + "prefix": false, + "src": "6333:11:6", + "subExpression": { + "argumentTypes": null, + "id": 3702, + "name": "prevIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3693, + "src": "6333:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3704, + "nodeType": "ExpressionStatement", + "src": "6333:11:6" + }, + { + "assignments": [ + null, + 3706, + null, + null, + null, + null + ], + "declarations": [ + null, + { + "constant": false, + "id": 3706, + "name": "_tranchePercent", + "nodeType": "VariableDeclaration", + "scope": 3746, + "src": "6362:20:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3705, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6362:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + null, + null, + null, + null + ], + "id": 3711, + "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 2383, - "name": "this", + "id": 3709, + "name": "prevIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7343, - "src": "3747:4:4", + "referencedDeclaration": 3693, + "src": "6417:9:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_W12Fund_$2899", - "typeString": "contract W12Fund" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_W12Fund_$2899", - "typeString": "contract W12Fund" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], - "id": 2382, + "expression": { + "argumentTypes": null, + "id": 3707, + "name": "crowdsale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3210, + "src": "6394:9:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", + "typeString": "contract IW12Crowdsale" + } + }, + "id": 3708, "isConstant": false, "isLValue": false, - "isPure": true, + "isPure": false, "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3739:7:4", + "memberName": "getMilestone", + "nodeType": "MemberAccess", + "referencedDeclaration": 1129, + "src": "6394:22:6", "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" + "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": 2384, + "id": 3710, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "typeConversion", + "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3739:13:4", + "src": "6394:33:6", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "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": 2385, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3739:21:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { + "nodeType": "VariableDeclarationStatement", + "src": "6359:68:6" + }, + { + "expression": { + "argumentTypes": null, + "id": 3717, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { "argumentTypes": null, - "id": 2379, - "name": "totalFunded", + "id": 3712, + "name": "totalTranchePercentBefore", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2040, - "src": "3722:11:4", + "referencedDeclaration": 3697, + "src": "6442:25:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { + "arguments": [ + { "argumentTypes": null, - "id": 2374, - "name": "buyers", + "id": 3715, + "name": "_tranchePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2034, - "src": "3692:6:4", + "referencedDeclaration": 3706, + "src": "6500:15:6", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_TokenPriceInfo_$2053_storage_$", - "typeString": "mapping(address => struct W12Fund.TokenPriceInfo storage ref)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - }, - "id": 2376, - "indexExpression": { + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { "argumentTypes": null, - "id": 2375, - "name": "buyer", + "id": 3713, + "name": "totalTranchePercentBefore", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2335, - "src": "3699:5:4", + "referencedDeclaration": 3697, + "src": "6470:25:6", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, + "id": 3714, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3692:13:4", + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9601, + "src": "6470:29:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_TokenPriceInfo_$2053_storage", - "typeString": "struct W12Fund.TokenPriceInfo 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": 2377, + "id": 3716, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "memberName": "totalFunded", - "nodeType": "MemberAccess", - "referencedDeclaration": 2052, - "src": "3692:25:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2378, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 6795, - "src": "3692:29:4", - "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": 2380, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3692:42:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2381, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 6809, - "src": "3692:46:4", - "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": 2386, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3692:69:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3673:88:4" - }, - { - "assignments": [ - 2389 - ], - "declarations": [ - { - "constant": false, - "id": 2389, - "name": "precisionComponent", - "nodeType": "VariableDeclaration", - "scope": 2419, - "src": "3771:23:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2388, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3771:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2398, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2392, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2390, - "name": "allowedFund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2373, - "src": "3797:11:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 2391, - "name": "max", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2324, - "src": "3812:3:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3797:18:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2396, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 2394, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3822:2:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "id": 2395, - "name": "exp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2298, - "src": "3828:3:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3822:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "names": [], + "nodeType": "FunctionCall", + "src": "6470:46:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6442:74:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3718, + "nodeType": "ExpressionStatement", + "src": "6442:74:6" } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - "id": 2397, + "id": 3701, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "nodeType": "Conditional", - "src": "3797:34:4", - "trueExpression": { + "leftExpression": { + "argumentTypes": null, + "id": 3699, + "name": "prevIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3693, + "src": "6304:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { "argumentTypes": null, - "hexValue": "31", - "id": 2393, + "hexValue": "30", + "id": 3700, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3818:1:4", + "src": "6316:1:6", "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": "6304:13:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "nodeType": "VariableDeclarationStatement", - "src": "3771:60:4" + "id": 3720, + "nodeType": "WhileStatement", + "src": "6297:230:6" }, { "expression": { "argumentTypes": null, - "id": 2416, + "id": 3731, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2399, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2295, - "src": "3842:6:4", + "baseExpression": { + "argumentTypes": null, + "id": 3721, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3633, + "src": "6537:6:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3] memory" + } + }, + "id": 3723, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3722, + "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" @@ -18532,12 +25273,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2414, - "name": "precisionComponent", + "id": 3729, + "name": "totalTranchePercentReleased", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2389, - "src": "3995:18:4", + "referencedDeclaration": 3222, + "src": "6625:27:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18556,12 +25297,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2411, - "name": "wtokensToRefund", + "id": 3726, + "name": "totalTranchePercentBefore", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2292, - "src": "3961:15:4", + "referencedDeclaration": 3697, + "src": "6581:25:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18577,179 +25318,32 @@ ], "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2405, - "name": "buyers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2034, - "src": "3917:6:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_TokenPriceInfo_$2053_storage_$", - "typeString": "mapping(address => struct W12Fund.TokenPriceInfo storage ref)" - } - }, - "id": 2407, - "indexExpression": { - "argumentTypes": null, - "id": 2406, - "name": "buyer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2335, - "src": "3924:5:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3917:13:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TokenPriceInfo_$2053_storage", - "typeString": "struct W12Fund.TokenPriceInfo storage ref" - } - }, - "id": 2408, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "totalBought", - "nodeType": "MemberAccess", - "referencedDeclaration": 2048, - "src": "3917:25:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2402, - "name": "precisionComponent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2389, - "src": "3880:18:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2400, - "name": "allowedFund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2373, - "src": "3851:11:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2401, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 6795, - "src": "3851:28:4", - "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": 2403, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3851:48:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2404, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 6809, - "src": "3851:65:4", - "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": 2409, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3851:92:4", + "id": 3724, + "name": "tranchePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3675, + "src": "6549:14:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2410, + "id": 3725, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "mul", + "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 6795, - "src": "3851:109:4", + "referencedDeclaration": 9601, + "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": 2412, + "id": 3727, "isConstant": false, "isLValue": false, "isPure": false, @@ -18757,218 +25351,352 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3851:126:4", + "src": "6549:58:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2413, + "id": 3728, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9577, + "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": 3730, + "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", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3732, + "nodeType": "ExpressionStatement", + "src": "6537:116:6" + }, + { + "expression": { + "argumentTypes": null, + "id": 3737, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3733, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3633, + "src": "6663:6:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3] memory" + } + }, + "id": 3735, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 3734, + "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": 3736, + "name": "totalTranchePercentBefore", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3697, + "src": "6675:25:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6663:37:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3738, + "nodeType": "ExpressionStatement", + "src": "6663:37:6" + }, + { + "expression": { + "argumentTypes": null, + "id": 3743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3739, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3633, + "src": "6710:6:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3] memory" + } + }, + "id": 3741, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 3740, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "number", "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 6809, - "src": "3851:143:4", + "nodeType": "Literal", + "src": "6717:1:6", + "subdenomination": null, "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_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" }, - "id": 2415, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3851:163:4", + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6710:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3742, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3641, + "src": "6722:5:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3842:172:4", + "src": "6710:17:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2417, + "id": 3744, "nodeType": "ExpressionStatement", - "src": "3842:172:4" + "src": "6710:17:6" } ] }, - "documentation": "a = address(this).balance\nb = totalFunded\nc = buyers[buyer].totalFunded\nd = buyers[buyer].totalBought\ne = wtokensToRefund\n( ( c * (a / b) ) / d ) * e = (refund amount)", - "id": 2419, + "documentation": "@notice Get tranche invoice\n@return uint[3] result:\n[tranchePercent, totalTranchePercentBefore, milestoneIndex]", + "id": 3746, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], - "name": "getRefundAmount", + "name": "getTrancheInvoice", "nodeType": "FunctionDefinition", "parameters": { - "id": 2293, + "id": 3629, "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2292, - "name": "wtokensToRefund", - "nodeType": "VariableDeclaration", - "scope": 2419, - "src": "3136:20:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2291, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3136:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3135:22:4" + "parameters": [], + "src": "5592:2:6" }, "payable": false, "returnParameters": { - "id": 2296, + "id": 3634, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2295, + "id": 3633, "name": "result", "nodeType": "VariableDeclaration", - "scope": 2419, - "src": "3179:11:4", + "scope": 3746, + "src": "5616:14:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3]" }, "typeName": { - "id": 2294, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3179:4:4", + "baseType": { + "id": 3630, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5616:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3632, + "length": { + "argumentTypes": null, + "hexValue": "33", + "id": 3631, + "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", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_uint256_$3_storage_ptr", + "typeString": "uint256[3]" } }, "value": null, "visibility": "internal" } ], - "src": "3178:13:4" + "src": "5615:16:6" }, - "scope": 2899, - "src": "3111:910:4", + "scope": 4424, + "src": "5566:1168:6", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2471, + "id": 3812, "nodeType": "Block", - "src": "4089:492:4", + "src": "6846:458:6", "statements": [ { - "assignments": [ - 2425, - 2427, - null - ], - "declarations": [ - { - "constant": false, - "id": 2425, - "name": "tranchePercent", - "nodeType": "VariableDeclaration", - "scope": 2472, - "src": "4100:19:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2424, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4100:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2427, - "name": "totalTranchePercentBefore", - "nodeType": "VariableDeclaration", - "scope": 2472, - "src": "4121:30:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2426, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4121:4:4", + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3754, + "name": "trancheTransferAllowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4371, + "src": "6864:22:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", + "typeString": "function () view returns (bool)" + } + }, + "id": 3755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6864:24:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } - }, - "value": null, - "visibility": "internal" - }, - null - ], - "id": 2430, - "initialValue": { - "argumentTypes": null, - "arguments": [], + } + ], "expression": { - "argumentTypes": [], - "id": 2428, - "name": "getTrancheParameters", + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3753, + "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2575, - "src": "4157:20:4", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "6856:7:6", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_uint256_$_t_uint256_$", - "typeString": "function () view returns (uint256,uint256,uint256)" + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" } }, - "id": 2429, + "id": 3756, "isConstant": false, "isLValue": false, "isPure": false, @@ -18976,127 +25704,182 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4157:22:4", + "src": "6856:33:6", "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256,uint256)" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "nodeType": "VariableDeclarationStatement", - "src": "4099:80:4" + "id": 3757, + "nodeType": "ExpressionStatement", + "src": "6856:33:6" }, { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2444, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "assignments": [ + 3762 + ], + "declarations": [ + { + "constant": false, + "id": 3762, + "name": "trancheInvoice", + "nodeType": "VariableDeclaration", + "scope": 3813, + "src": "6900:29:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3]" }, - "id": 2437, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2433, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2431, - "name": "tranchePercent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2425, - "src": "4207:14:4", + "typeName": { + "baseType": { + "id": 3760, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6900:4:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { + "id": 3761, + "length": { "argumentTypes": null, - "hexValue": "30", - "id": 2432, + "hexValue": "33", + "id": 3759, "isConstant": false, "isLValue": false, - "isPure": true, + "isPure": false, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4225:1:4", + "src": "6905:1:6", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "typeIdentifier": null, + "typeString": null }, - "value": "0" + "value": "3" }, - "src": "4207:19:4", + "nodeType": "ArrayTypeName", + "src": "6900:7:6", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_array$_t_uint256_$3_storage_ptr", + "typeString": "uint256[3]" } }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { + "value": null, + "visibility": "internal" + } + ], + "id": 3765, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3763, + "name": "getTrancheInvoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3746, + "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": 3764, + "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" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2436, + "id": 3771, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2434, - "name": "totalTranchePercentBefore", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2427, - "src": "4230:25:4", + "baseExpression": { + "argumentTypes": null, + "id": 3767, + "name": "trancheInvoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3762, + "src": "6970:14:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3] memory" + } + }, + "id": 3769, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3768, + "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": "==", + "operator": ">", "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2435, + "id": 3770, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4259:1:4", + "src": "6990:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -19104,227 +25887,178 @@ }, "value": "0" }, - "src": "4230:30:4", + "src": "6970:21:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - }, - "src": "4207:53:4", + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3766, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "6962:7:6", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" } }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2443, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "id": 3772, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6962:30:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3773, + "nodeType": "ExpressionStatement", + "src": "6962:30:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { "argumentTypes": null, - "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2439, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7343, - "src": "4284:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_W12Fund_$2899", - "typeString": "contract W12Fund" - } - } - ], "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_W12Fund_$2899", - "typeString": "contract W12Fund" + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 3775, + "name": "totalFunded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3228, + "src": "7010:11:6", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage", + "typeString": "struct FundAccount.Account storage ref" + } + }, + "id": 3776, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "symbolsList", + "nodeType": "MemberAccess", + "referencedDeclaration": 4809, + "src": "7010:23:6", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Account_$4698_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$bound_to$_t_struct$_Account_$4698_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer) view returns (bytes32[] memory)" } - ], - "id": 2438, + }, + "id": 3777, "isConstant": false, "isLValue": false, - "isPure": true, + "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4276:7:4", + "names": [], + "nodeType": "FunctionCall", + "src": "7010:25:6", "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[] memory" + } }, - "id": 2440, + "id": 3778, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "typeConversion", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4276:13:4", + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7010:32:6", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 2441, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4276:21:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2442, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4301:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4276:26:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "4207:95:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2446, - "nodeType": "IfStatement", - "src": "4190:130:4", - "trueBody": { - "expression": null, - "functionReturnParameters": 2423, - "id": 2445, - "nodeType": "Return", - "src": "4313:7:4" - } - }, - { - "assignments": [ - 2448 - ], - "declarations": [ - { - "constant": false, - "id": 2448, - "name": "allowedFund", - "nodeType": "VariableDeclaration", - "scope": 2472, - "src": "4330:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2447, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4330:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2453, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2451, - "name": "totalRefunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2042, - "src": "4365:13:4", + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3779, + "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", "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": 2449, - "name": "totalFunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2040, - "src": "4349:11:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2450, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 6829, - "src": "4349:15:4", + "id": 3774, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "7002:7: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)" + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" } }, - "id": 2452, + "id": 3781, "isConstant": false, "isLValue": false, "isPure": false, @@ -19332,184 +26066,142 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4349:30:4", + "src": "7002:46:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "nodeType": "VariableDeclarationStatement", - "src": "4330:49:4" + "id": 3782, + "nodeType": "ExpressionStatement", + "src": "7002:46:6" }, { - "assignments": [ - 2455 - ], - "declarations": [ - { - "constant": false, - "id": 2455, - "name": "trancheToRelease", - "nodeType": "VariableDeclaration", - "scope": 2472, - "src": "4389:21:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2454, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4389:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2463, - "initialValue": { + "expression": { "argumentTypes": null, - "arguments": [ - { + "id": 3789, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { "argumentTypes": null, - "id": 2461, - "name": "totalTranchePercentReleased", + "id": 3783, + "name": "completedTranches", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2044, - "src": "4489:27:4", + "referencedDeclaration": 3226, + "src": "7059:17:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" } - ], - "expression": { + }, + "id": 3787, + "indexExpression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2458, - "name": "totalTranchePercentBefore", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2427, - "src": "4445:25:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "baseExpression": { + "argumentTypes": null, + "id": 3784, + "name": "trancheInvoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3762, + "src": "7077:14:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3] memory" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2456, - "name": "tranchePercent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2425, - "src": "4413:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2457, + }, + "id": 3786, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 3785, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "number", "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 6853, - "src": "4413:31:4", + "nodeType": "Literal", + "src": "7092:1:6", + "subdenomination": null, "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_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" }, - "id": 2459, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4413:58:4", + "nodeType": "IndexAccess", + "src": "7077:17:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2460, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 6829, - "src": "4413:75:4", + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7059: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)" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 2462, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4413:104:4", + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3788, + "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_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "nodeType": "VariableDeclarationStatement", - "src": "4389:128:4" + "id": 3790, + "nodeType": "ExpressionStatement", + "src": "7059:43:6" }, { "expression": { "argumentTypes": null, - "id": 2469, + "id": 3798, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2464, - "name": "result", + "id": 3791, + "name": "totalTranchePercentReleased", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2422, - "src": "4528:6:4", + "referencedDeclaration": 3222, + "src": "7112:27:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19522,12 +26214,44 @@ "arguments": [ { "argumentTypes": null, - "id": 2467, - "name": "trancheToRelease", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2455, - "src": "4557:16:4", + "baseExpression": { + "argumentTypes": null, + "id": 3794, + "name": "trancheInvoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3762, + "src": "7174:14:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3] memory" + } + }, + "id": 3796, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3795, + "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" @@ -19543,32 +26267,32 @@ ], "expression": { "argumentTypes": null, - "id": 2465, - "name": "allowedFund", + "id": 3792, + "name": "totalTranchePercentReleased", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2448, - "src": "4537:11:4", + "referencedDeclaration": 3222, + "src": "7142:27:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2466, + "id": 3793, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "percent", + "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 4568, - "src": "4537:19:4", + "referencedDeclaration": 9601, + "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": 2468, + "id": 3797, "isConstant": false, "isLValue": false, "isPure": false, @@ -19576,177 +26300,59 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4537:37:4", + "src": "7142:50:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "src": "4528:46:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2470, - "nodeType": "ExpressionStatement", - "src": "4528:46:4" - } - ] - }, - "documentation": null, - "id": 2472, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getTrancheAmount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2420, - "nodeType": "ParameterList", - "parameters": [], - "src": "4052:2:4" - }, - "payable": false, - "returnParameters": { - "id": 2423, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2422, - "name": "result", - "nodeType": "VariableDeclaration", - "scope": 2472, - "src": "4076:11:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2421, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4076:4:4", + }, + "src": "7112:80:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, - "visibility": "internal" - } - ], - "src": "4075:13:4" - }, - "scope": 2899, - "src": "4027:554:4", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2574, - "nodeType": "Block", - "src": "4684:1013:4", - "statements": [ + "id": 3799, + "nodeType": "ExpressionStatement", + "src": "7112:80:6" + }, { - "assignments": [ - 2482, - 2484 - ], - "declarations": [ - { - "constant": false, - "id": 2482, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 2575, - "src": "4695:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2481, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4695:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2484, - "name": "found", - "nodeType": "VariableDeclaration", - "scope": 2575, - "src": "4707:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2483, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4707:4:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2488, - "initialValue": { + "expression": { "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { + "arguments": [ + { "argumentTypes": null, - "id": 2485, - "name": "crowdsale", + "id": 3801, + "name": "trancheInvoice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2022, - "src": "4721:9:4", + "referencedDeclaration": 3762, + "src": "7220:14:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", - "typeString": "contract IW12Crowdsale" + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3] memory" } - }, - "id": 2486, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getCurrentMilestoneIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 4378, - "src": "4721:34:4", + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3] memory" + } + ], + "id": 3800, + "name": "_transferTranche", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4021, + "src": "7203:16:6", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$_t_bool_$", - "typeString": "function () view external returns (uint256,bool)" + "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint256_$3_memory_ptr_$returns$__$", + "typeString": "function (uint256[3] memory)" } }, - "id": 2487, + "id": 3802, "isConstant": false, "isLValue": false, "isPure": false, @@ -19754,83 +26360,118 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4721:36:4", + "src": "7203:32:6", "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", - "typeString": "tuple(uint256,bool)" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "nodeType": "VariableDeclarationStatement", - "src": "4694:63:4" + "id": 3803, + "nodeType": "ExpressionStatement", + "src": "7203:32:6" }, { - "assignments": [ - 2490, - null - ], - "declarations": [ - { - "constant": false, - "id": 2490, - "name": "lastIndex", - "nodeType": "VariableDeclaration", - "scope": 2575, - "src": "4768:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3805, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10042, + "src": "7267:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3806, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7267:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } }, - "typeName": { - "id": 2489, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4768:4:4", + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3807, + "name": "trancheInvoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3762, + "src": "7279:14:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3] memory" + } + }, + "id": 3809, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3808, + "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" } - }, - "value": null, - "visibility": "internal" - }, - null - ], - "id": 2494, - "initialValue": { - "argumentTypes": null, - "arguments": [], + } + ], "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 2491, - "name": "crowdsale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2022, - "src": "4788:9:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", - "typeString": "contract IW12Crowdsale" + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - }, - "id": 2492, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getLastMilestoneIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 4385, - "src": "4788:31:4", + ], + "id": 3804, + "name": "TrancheReleased", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3282, + "src": "7251:15:6", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$_t_bool_$", - "typeString": "function () view external returns (uint256,bool)" + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" } }, - "id": 2493, + "id": 3810, "isConstant": false, "isLValue": false, "isPure": false, @@ -19838,802 +26479,1640 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4788:33:4", + "src": "7251:46:6", "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", - "typeString": "tuple(uint256,bool)" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "nodeType": "VariableDeclarationStatement", - "src": "4767:54:4" + "id": 3811, + "nodeType": "EmitStatement", + "src": "7246:51:6" + } + ] + }, + "documentation": "@notice Realise project tranche", + "id": 3813, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 3749, + "modifierName": { + "argumentTypes": null, + "id": 3748, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9636, + "src": "6823:9:6", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "6823:9:6" + }, + { + "arguments": null, + "id": 3751, + "modifierName": { + "argumentTypes": null, + "id": 3750, + "name": "nonReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9330, + "src": "6833:12:6", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } }, + "nodeType": "ModifierInvocation", + "src": "6833:12:6" + } + ], + "name": "tranche", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3747, + "nodeType": "ParameterList", + "parameters": [], + "src": "6811:2:6" + }, + "payable": false, + "returnParameters": { + "id": 3752, + "nodeType": "ParameterList", + "parameters": [], + "src": "6846:0:6" + }, + "scope": 4424, + "src": "6795:509:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 4020, + "nodeType": "Block", + "src": "7363:1569:6", + "statements": [ { "assignments": [ - null, - null, - null, - 2496, - null, - null + 3821 ], "declarations": [ - null, - null, - null, { "constant": false, - "id": 2496, - "name": "lastWithdrawalWindow", + "id": 3821, + "name": "ln", "nodeType": "VariableDeclaration", - "scope": 2575, - "src": "4836:27:4", + "scope": 4021, + "src": "7373:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 2495, - "name": "uint32", + "id": 3820, + "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4836:6:4", + "src": "7373:4:6", "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "value": null, "visibility": "internal" - }, - null, - null + } ], - "id": 2501, + "id": 3826, "initialValue": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2499, - "name": "lastIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2490, - "src": "4892:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], + "argumentTypes": null, + "arguments": [], "expression": { - "argumentTypes": null, - "id": 2497, - "name": "crowdsale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2022, - "src": "4869:9:4", + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 3822, + "name": "totalFunded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3228, + "src": "7383:11:6", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage", + "typeString": "struct FundAccount.Account storage ref" + } + }, + "id": 3823, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "symbolsList", + "nodeType": "MemberAccess", + "referencedDeclaration": 4809, + "src": "7383:23:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", - "typeString": "contract IW12Crowdsale" + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Account_$4698_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$bound_to$_t_struct$_Account_$4698_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer) view returns (bytes32[] memory)" } }, - "id": 2498, + "id": 3824, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "memberName": "getMilestone", - "nodeType": "MemberAccess", - "referencedDeclaration": 4352, - "src": "4869:22:4", + "names": [], + "nodeType": "FunctionCall", + "src": "7383:25: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)" + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[] memory" } }, - "id": 2500, + "id": 3825, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4869:33:4", + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7383:32: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)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "4831:71:4" + "src": "7373:42:6" }, { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2507, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2503, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "4917:6:4", - "subExpression": { - "argumentTypes": null, - "id": 2502, - "name": "found", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2484, - "src": "4918:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "body": { + "id": 4018, + "nodeType": "Block", + "src": "7441:1485:6", + "statements": [ + { + "assignments": [ + 3831 + ], + "declarations": [ + { + "constant": false, + "id": 3831, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 4021, + "src": "7455:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 3830, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7455:7:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3838, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 3832, + "name": "totalFunded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3228, + "src": "7472:11:6", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage", + "typeString": "struct FundAccount.Account storage ref" + } + }, + "id": 3833, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "symbolsList", + "nodeType": "MemberAccess", + "referencedDeclaration": 4809, + "src": "7472:23:6", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Account_$4698_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$bound_to$_t_struct$_Account_$4698_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer) view returns (bytes32[] memory)" + } + }, + "id": 3834, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7472:25:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[] memory" + } + }, + "id": 3837, + "indexExpression": { + "argumentTypes": null, + "id": 3836, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "--", + "prefix": true, + "src": "7498:4:6", + "subExpression": { + "argumentTypes": null, + "id": 3835, + "name": "ln", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3821, + "src": "7500: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": "7472:31:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7455:48:6" + }, + { + "assignments": [ + 3840 + ], + "declarations": [ + { + "constant": false, + "id": 3840, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 4021, + "src": "7517:11:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3839, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7517:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3845, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3843, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3831, + "src": "7552:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 3841, + "name": "totalFunded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3228, + "src": "7531:11:6", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage", + "typeString": "struct FundAccount.Account storage ref" + } + }, + "id": 3842, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amountOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 4797, + "src": "7531:20:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Account_$4698_storage_ptr_$_t_bytes32_$returns$_t_uint256_$bound_to$_t_struct$_Account_$4698_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer,bytes32) view returns (uint256)" + } + }, + "id": 3844, + "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" }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "id": 2506, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "4927:25:4", - "subExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2504, - "name": "trancheTransferAllowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2885, - "src": "4928:22:4", + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3848, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3846, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3840, + "src": "7578:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3847, + "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_function_internal_view$__$returns$_t_bool_$", - "typeString": "function () view returns (bool)" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 2505, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4928:24:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "falseBody": null, + "id": 3850, + "nodeType": "IfStatement", + "src": "7574:25:6", + "trueBody": { + "id": 3849, + "nodeType": "Continue", + "src": "7591:8:6" } }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "4917:35:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2509, - "nodeType": "IfStatement", - "src": "4913:48:4", - "trueBody": { - "expression": null, - "functionReturnParameters": 2480, - "id": 2508, - "nodeType": "Return", - "src": "4954:7:4" - } - }, - { - "expression": { - "argumentTypes": null, - "id": 2523, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2510, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2482, - "src": "5014:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2517, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + { + "assignments": [ + 3852 + ], + "declarations": [ + { + "constant": false, + "id": 3852, + "name": "sourceAmount", + "nodeType": "VariableDeclaration", + "scope": 4021, + "src": "7614:17:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3851, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7614:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3859, + "initialValue": { "argumentTypes": null, - "commonType": { + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3855, + "name": "_invoice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3817, + "src": "7653:8:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3] memory" + } + }, + "id": 3857, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3856, + "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": 3853, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3840, + "src": "7634:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3854, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 5040, + "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": 3858, + "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": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3861, + "name": "sourceAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3852, + "src": "7688:12:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3862, + "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": 3860, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "7680:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } }, - "id": 2513, + "id": 3864, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2511, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2482, - "src": "5022:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2512, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5031:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5022:10:4", + "names": [], + "nodeType": "FunctionCall", + "src": "7680:25:6", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { + "id": 3865, + "nodeType": "ExpressionStatement", + "src": "7680:25:6" + }, + { + "expression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2516, + "id": 3876, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftExpression": { + "leftHandSide": { "argumentTypes": null, - "id": 2514, - "name": "now", + "id": 3866, + "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7296, - "src": "5036:3:4", + "referencedDeclaration": 3840, + "src": "7732:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { "argumentTypes": null, - "id": 2515, - "name": "lastWithdrawalWindow", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2496, - "src": "5043:20:4", + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3871, + "name": "totalTokenRefunded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3236, + "src": "7796:18:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 3869, + "name": "totalTokenBought", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3234, + "src": "7775:16:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9577, + "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": 3872, + "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": 3873, + "name": "sourceAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3852, + "src": "7833:12:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3874, + "name": "totalTokenBought", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3234, + "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": 3867, + "name": "Utils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6060, + "src": "7741:5:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Utils_$6060_$", + "typeString": "type(library Utils)" + } + }, + "id": 3868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeMulDiv", + "nodeType": "MemberAccess", + "referencedDeclaration": 6059, + "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": 3875, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7741:152:6", "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "src": "5036:27:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "5022:41:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2521, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2519, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2482, - "src": "5074:5:4", + "src": "7732:161:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { + "id": 3877, + "nodeType": "ExpressionStatement", + "src": "7732:161:6" + }, + { + "expression": { "argumentTypes": null, - "hexValue": "31", - "id": 2520, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3879, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3840, + "src": "7916:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3880, + "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": 3878, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "7908:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3882, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "number", + "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "Literal", - "src": "5082:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "5074:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2522, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "5022:61:4", - "trueExpression": { - "argumentTypes": null, - "id": 2518, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2482, - "src": "5066:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5014:69:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2524, - "nodeType": "ExpressionStatement", - "src": "5014:69:4" - }, - { - "assignments": [ - null, - 2526, - null, - 2528, - null, - null - ], - "declarations": [ - null, - { - "constant": false, - "id": 2526, - "name": "tranchePercent", - "nodeType": "VariableDeclaration", - "scope": 2575, - "src": "5098:19:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2525, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5098:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - null, - { - "constant": false, - "id": 2528, - "name": "withdrawalWindow", - "nodeType": "VariableDeclaration", - "scope": 2575, - "src": "5121:23:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 2527, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "5121:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - null, - null - ], - "id": 2533, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2531, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2482, - "src": "5175:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2529, - "name": "crowdsale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2022, - "src": "5152:9:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", - "typeString": "contract IW12Crowdsale" - } - }, - "id": 2530, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getMilestone", - "nodeType": "MemberAccess", - "referencedDeclaration": 4352, - "src": "5152:22:4", - "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": 2532, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5152:29:4", - "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": "5094:87:4" - }, - { - "assignments": [ - 2535 - ], - "declarations": [ - { - "constant": false, - "id": 2535, - "name": "completed", - "nodeType": "VariableDeclaration", - "scope": 2575, - "src": "5192:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2534, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5192:4:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2539, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2536, - "name": "completedTranches", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2038, - "src": "5209:17:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", - "typeString": "mapping(uint256 => bool)" - } - }, - "id": 2538, - "indexExpression": { - "argumentTypes": null, - "id": 2537, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2482, - "src": "5227:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5209:24:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5192:41:4" - }, - { - "condition": { - "argumentTypes": null, - "id": 2540, - "name": "completed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2535, - "src": "5248:9:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2542, - "nodeType": "IfStatement", - "src": "5244:22:4", - "trueBody": { - "expression": null, - "functionReturnParameters": 2480, - "id": 2541, - "nodeType": "Return", - "src": "5259:7:4" - } - }, - { - "assignments": [ - 2544 - ], - "declarations": [ - { - "constant": false, - "id": 2544, - "name": "dIndex", - "nodeType": "VariableDeclaration", - "scope": 2575, - "src": "5276:11:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "names": [], + "nodeType": "FunctionCall", + "src": "7908:19:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3883, + "nodeType": "ExpressionStatement", + "src": "7908:19:6" }, - "typeName": { - "id": 2543, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5276:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + { + "expression": { + "argumentTypes": null, + "id": 3893, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3884, + "name": "totalFundedReleased", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3232, + "src": "7942:19:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 3886, + "indexExpression": { + "argumentTypes": null, + "id": 3885, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3831, + "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": 3891, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3840, + "src": "8004:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3887, + "name": "totalFundedReleased", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3232, + "src": "7972:19:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 3889, + "indexExpression": { + "argumentTypes": null, + "id": 3888, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3831, + "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": 3890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9601, + "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": 3892, + "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" + } + }, + "id": 3894, + "nodeType": "ExpressionStatement", + "src": "7942:69:6" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 3897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3895, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3831, + "src": "8042:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 3896, + "name": "METHOD_USD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3208, + "src": "8052:10:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "8042:20:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 3899, + "nodeType": "IfStatement", + "src": "8038:35:6", + "trueBody": { + "id": 3898, + "nodeType": "Continue", + "src": "8065:8:6" } }, - "value": null, - "visibility": "internal" - } - ], - "id": 2546, - "initialValue": { - "argumentTypes": null, - "id": 2545, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2482, - "src": "5290:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5276:19:4" - }, - { - "body": { - "id": 2567, - "nodeType": "Block", - "src": "5325:202:4", - "statements": [ { - "expression": { + "condition": { "argumentTypes": null, - "id": 2551, + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 3902, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "--", - "prefix": false, - "src": "5339:8:4", - "subExpression": { + "leftExpression": { "argumentTypes": null, - "id": 2550, - "name": "dIndex", + "id": 3900, + "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2544, - "src": "5339:6:4", + "referencedDeclaration": 3831, + "src": "8092:6:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 3901, + "name": "METHOD_ETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3203, + "src": "8102:10:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "8092:20:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 3927, + "nodeType": "IfStatement", + "src": "8088:187:6", + "trueBody": { + "id": 3926, + "nodeType": "Block", + "src": "8114:161:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3906, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3831, + "src": "8154:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 3904, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3214, + "src": "8140:5:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "id": 3905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 6992, + "src": "8140:13:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (bytes32) view external returns (bool)" + } + }, + "id": 3907, + "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": 3903, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "8132:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3908, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8132:30:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3909, + "nodeType": "ExpressionStatement", + "src": "8132:30:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3919, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10117, + "src": "8243:4:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_W12Fund_$4424", + "typeString": "contract W12Fund" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_W12Fund_$4424", + "typeString": "contract W12Fund" + } + ], + "id": 3918, + "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": 3920, + "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": 3914, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3831, + "src": "8216:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 3912, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3214, + "src": "8194:5:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "id": 3913, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getTokenAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 6985, + "src": "8194:21:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view external returns (address)" + } + }, + "id": 3915, + "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": 3911, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9765, + "src": "8188:5:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$9765_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 3916, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8188:36:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$9765", + "typeString": "contract ERC20" + } + }, + "id": 3917, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 9779, + "src": "8188:46:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 3921, + "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": 3922, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3840, + "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": 3910, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "8180:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3924, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8180:80:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3925, + "nodeType": "ExpressionStatement", + "src": "8180:80:6" } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2552, - "nodeType": "ExpressionStatement", - "src": "5339:8:4" + ] + } }, { "assignments": [ - null, - 2554, - null, - null, - null, - null + 3929 ], "declarations": [ - null, { "constant": false, - "id": 2554, - "name": "_tranchePercent", + "id": 3929, + "name": "fee", "nodeType": "VariableDeclaration", - "scope": 2575, - "src": "5365:20:4", + "scope": 4021, + "src": "8289:8:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -20641,10 +28120,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2553, + "id": 3928, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5365:4:4", + "src": "8289:4:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20652,178 +28131,1292 @@ }, "value": null, "visibility": "internal" - }, - null, - null, - null, - null + } ], - "id": 2559, + "id": 3939, "initialValue": { "argumentTypes": null, - "arguments": [ - { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, - "id": 2557, - "name": "dIndex", + "id": 3930, + "name": "trancheFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2544, - "src": "5420:6:4", + "referencedDeclaration": 3220, + "src": "8300:17:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3931, + "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" } - ], - "expression": { - "argumentTypes": [ + }, + "falseExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3937, + "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": 3938, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "8300:97:6", + "trueExpression": { + "argumentTypes": null, + "arguments": [ { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "argumentTypes": null, + "id": 3935, + "name": "trancheFeePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3220, + "src": "8359:17:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } } ], "expression": { - "argumentTypes": null, - "id": 2555, - "name": "crowdsale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2022, - "src": "5397:9:4", + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 3933, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3840, + "src": "8340:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3934, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 5040, + "src": "8340:18:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", - "typeString": "contract IW12Crowdsale" + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 2556, + "id": 3936, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "memberName": "getMilestone", - "nodeType": "MemberAccess", - "referencedDeclaration": 4352, - "src": "5397:22:4", + "names": [], + "nodeType": "FunctionCall", + "src": "8340:37: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)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 2558, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8289:108:6" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3942, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5397:30:4", + "leftExpression": { + "argumentTypes": null, + "id": 3940, + "name": "trancheFeePercent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3220, + "src": "8416:17:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3941, + "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_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_bool", + "typeString": "bool" } }, - "nodeType": "VariableDeclarationStatement", - "src": "5362:65:4" + "falseBody": null, + "id": 3949, + "nodeType": "IfStatement", + "src": "8412:43:6", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3946, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3944, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3929, + "src": "8447:3:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3945, + "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": 3943, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "8439:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3947, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8439:16:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3948, + "nodeType": "ExpressionStatement", + "src": "8439:16:6" + } }, { - "expression": { + "condition": { "argumentTypes": null, - "id": 2565, + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 3952, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftHandSide": { + "leftExpression": { "argumentTypes": null, - "id": 2560, - "name": "totalTranchePercentBefore", + "id": 3950, + "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2477, - "src": "5442:25:4", + "referencedDeclaration": 3831, + "src": "8474:6:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { "argumentTypes": null, - "arguments": [ - { + "id": 3951, + "name": "METHOD_ETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3203, + "src": "8484:10:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "8474:20:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 4009, + "nodeType": "Block", + "src": "8629:221:6", + "statements": [ + { + "condition": { "argumentTypes": null, - "id": 2563, - "name": "_tranchePercent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2554, - "src": "5500:15:4", - "typeDescriptions": { + "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" + }, + "id": 3977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3975, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3929, + "src": "8651:3:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3976, + "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": 3991, + "nodeType": "IfStatement", + "src": "8647:87:6", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3986, + "name": "serviceWallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3218, + "src": "8714:13:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3987, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3929, + "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": 3982, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3831, + "src": "8696:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 3980, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3214, + "src": "8674:5:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "id": 3981, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getTokenAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 6985, + "src": "8674:21:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view external returns (address)" + } + }, + "id": 3983, + "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": 3979, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9765, + "src": "8668:5:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$9765_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 3984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8668:36:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$9765", + "typeString": "contract ERC20" + } + }, + "id": 3985, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 9788, + "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": 3988, + "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": 3978, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "8660:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3989, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8660:74:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3990, + "nodeType": "ExpressionStatement", + "src": "8660:74:6" } - ], - "expression": { - "argumentTypes": [ - { + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4000, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10042, + "src": "8806:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4001, + "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": 4004, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3929, + "src": "8829:3:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 4002, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3840, + "src": "8818:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4003, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9577, + "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": 4005, + "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": 3996, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3831, + "src": "8788:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 3994, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3214, + "src": "8766:5:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "id": 3995, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getTokenAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 6985, + "src": "8766:21:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view external returns (address)" + } + }, + "id": 3997, + "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": 3993, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9765, + "src": "8760:5:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$9765_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 3998, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8760:36:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$9765", + "typeString": "contract ERC20" + } + }, + "id": 3999, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 9788, + "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": 4006, + "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": 3992, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "8752:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8752:83:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4008, + "nodeType": "ExpressionStatement", + "src": "8752:83:6" + } + ] + }, + "id": 4010, + "nodeType": "IfStatement", + "src": "8470:380:6", + "trueBody": { + "id": 3974, + "nodeType": "Block", + "src": "8496:127:6", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" + }, + "id": 3955, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3953, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3929, + "src": "8518:3:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3954, + "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": 3962, + "nodeType": "IfStatement", + "src": "8514:40:6", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3959, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3929, + "src": "8550:3:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 3956, + "name": "serviceWallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3218, + "src": "8527:13:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3958, + "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": 3960, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8527:27:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3961, + "nodeType": "ExpressionStatement", + "src": "8527:27:6" + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3970, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3929, + "src": "8603:3:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 3968, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3840, + "src": "8592:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3969, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9577, + "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": 3971, + "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": 3963, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10042, + "src": "8572:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3966, + "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": 3967, + "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": 3972, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8572:36:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } - ], + }, + "id": 3973, + "nodeType": "ExpressionStatement", + "src": "8572:36:6" + } + ] + } + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2561, - "name": "totalTranchePercentBefore", + "id": 4012, + "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2477, - "src": "5470:25:4", + "referencedDeclaration": 10042, + "src": "8888:3:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_magic_message", + "typeString": "msg" } }, - "id": 2562, + "id": 4013, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "add", + "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": 6853, - "src": "5470:29:4", + "referencedDeclaration": null, + "src": "8888: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)" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 2564, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5470:46:4", + { + "argumentTypes": null, + "id": 4014, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3831, + "src": "8900:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 4015, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3840, + "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": 4011, + "name": "TrancheTransferred", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3276, + "src": "8869:18:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_uint256_$returns$__$", + "typeString": "function (address,bytes32,uint256)" } }, - "src": "5442:74:4", + "id": 4016, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8869:46:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 2566, - "nodeType": "ExpressionStatement", - "src": "5442:74:4" + "id": 4017, + "nodeType": "EmitStatement", + "src": "8864:51:6" } ] }, @@ -20833,37 +29426,37 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2549, + "id": 3829, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2547, - "name": "dIndex", + "id": 3827, + "name": "ln", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2544, - "src": "5313:6:4", + "referencedDeclaration": 3821, + "src": "7432:2:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", - "operator": ">", + "operator": "!=", "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2548, + "id": 3828, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5322:1:4", + "src": "7438:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -20871,191 +29464,104 @@ }, "value": "0" }, - "src": "5313:10:4", + "src": "7432:7:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2568, + "id": 4019, "nodeType": "WhileStatement", - "src": "5306:221:4" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 2569, - "name": "tranchePercent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2526, - "src": "5558:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2570, - "name": "totalTranchePercentBefore", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2477, - "src": "5636:25:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2571, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2482, - "src": "5675:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 2572, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "5544:146:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256,uint256)" - } - }, - "functionReturnParameters": 2480, - "id": 2573, - "nodeType": "Return", - "src": "5537:153:4" + "src": "7426:1500:6" } ] }, "documentation": null, - "id": 2575, + "id": 4021, "implemented": true, "isConstructor": false, - "isDeclaredConst": true, + "isDeclaredConst": false, "modifiers": [], - "name": "getTrancheParameters", + "name": "_transferTranche", "nodeType": "FunctionDefinition", "parameters": { - "id": 2473, - "nodeType": "ParameterList", - "parameters": [], - "src": "4616:2:4" - }, - "payable": false, - "returnParameters": { - "id": 2480, + "id": 3818, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2475, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2575, - "src": "4640:4:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2474, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4640:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2477, - "name": "totalTranchePercentBefore", - "nodeType": "VariableDeclaration", - "scope": 2575, - "src": "4646:30:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2476, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4646:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2479, - "name": "", + "id": 3817, + "name": "_invoice", "nodeType": "VariableDeclaration", - "scope": 2575, - "src": "4678:4:4", + "scope": 4021, + "src": "7336:16:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3]" }, "typeName": { - "id": 2478, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4678:4:4", + "baseType": { + "id": 3814, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7336:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3816, + "length": { + "argumentTypes": null, + "hexValue": "33", + "id": 3815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7341:1:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "3" + }, + "nodeType": "ArrayTypeName", + "src": "7336:7:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_uint256_$3_storage_ptr", + "typeString": "uint256[3]" } }, "value": null, "visibility": "internal" } ], - "src": "4639:44:4" + "src": "7335:18:6" }, - "scope": 2899, - "src": "4587:1110:4", - "stateMutability": "view", + "payable": false, + "returnParameters": { + "id": 3819, + "nodeType": "ParameterList", + "parameters": [], + "src": "7363:0:6" + }, + "scope": 4424, + "src": "7310:1622:6", + "stateMutability": "nonpayable", "superFunction": null, - "visibility": "public" + "visibility": "internal" }, { "body": { - "id": 2664, + "id": 4111, "nodeType": "Block", - "src": "5754:686:4", + "src": "9046:614:6", "statements": [ { "expression": { @@ -21063,29 +29569,123 @@ "arguments": [ { "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2583, - "name": "trancheTransferAllowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2885, - "src": "5772:22:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", - "typeString": "function () view returns (bool)" - } + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 4029, + "name": "tokenRefundAllowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4346, + "src": "9064:18:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", + "typeString": "function () view returns (bool)" + } + }, + "id": 4030, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9064:20:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4028, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "9056:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4031, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9056:29:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4032, + "nodeType": "ExpressionStatement", + "src": "9056:29:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - "id": 2584, + "id": 4036, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5772:24:4", + "leftExpression": { + "argumentTypes": null, + "id": 4034, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4023, + "src": "9103:11:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4035, + "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" @@ -21099,21 +29699,21 @@ "typeString": "bool" } ], - "id": 2582, + "id": 4033, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "5764:7:4", + "referencedDeclaration": 10045, + "src": "9095:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2585, + "id": 4037, "isConstant": false, "isLValue": false, "isPure": false, @@ -21121,66 +29721,131 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5764:33:4", + "src": "9095:25:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2586, + "id": 4038, "nodeType": "ExpressionStatement", - "src": "5764:33:4" + "src": "9095:25:6" }, { - "assignments": [ - 2588 - ], - "declarations": [ - { - "constant": false, - "id": 2588, - "name": "trancheAmount", - "nodeType": "VariableDeclaration", - "scope": 2665, - "src": "5808:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2587, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5808:4:4", - "typeDescriptions": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" + }, + "id": 4045, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4040, + "name": "tokenBoughtPerInvestor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3240, + "src": "9138:22:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4043, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4041, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10042, + "src": "9161:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4042, + "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": 4044, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4023, + "src": "9176:11:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9138:49:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2591, - "initialValue": { - "argumentTypes": null, - "arguments": [], + } + ], "expression": { - "argumentTypes": [], - "id": 2589, - "name": "getTrancheAmount", + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4039, + "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2472, - "src": "5829:16:4", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "9130:7:6", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" } }, - "id": 2590, + "id": 4046, "isConstant": false, "isLValue": false, "isPure": false, @@ -21188,94 +29853,156 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5829:18:4", + "src": "9130:58:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "nodeType": "VariableDeclarationStatement", - "src": "5808:39:4" + "id": 4047, + "nodeType": "ExpressionStatement", + "src": "9130:58:6" }, { - "assignments": [ - 2593, - null, - 2595 - ], - "declarations": [ - { - "constant": false, - "id": 2593, - "name": "tranchePercent", - "nodeType": "VariableDeclaration", - "scope": 2665, - "src": "5858:19:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2592, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5858:4:4", - "typeDescriptions": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - null, - { - "constant": false, - "id": 2595, - "name": "milestoneIndex", - "nodeType": "VariableDeclaration", - "scope": 2665, - "src": "5880:19:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2594, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5880:4:4", + }, + "id": 4055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4051, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10042, + "src": "9223:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4052, + "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": 4049, + "name": "wToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3212, + "src": "9206:6:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" + } + }, + "id": 4050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 9779, + "src": "9206:16:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 4053, + "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": 4054, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4023, + "src": "9238:11:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9206:43:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2598, - "initialValue": { - "argumentTypes": null, - "arguments": [], + } + ], "expression": { - "argumentTypes": [], - "id": 2596, - "name": "getTrancheParameters", + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4048, + "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2575, - "src": "5903:20:4", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "9198:7:6", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_uint256_$_t_uint256_$", - "typeString": "function () view returns (uint256,uint256,uint256)" + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" } }, - "id": 2597, + "id": 4056, "isConstant": false, "isLValue": false, "isPure": false, @@ -21283,14 +30010,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5903:22:4", + "src": "9198:52:6", "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256,uint256)" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "nodeType": "VariableDeclarationStatement", - "src": "5857:68:4" + "id": 4057, + "nodeType": "ExpressionStatement", + "src": "9198:52:6" }, { "expression": { @@ -21302,45 +30030,163 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2602, + "id": 4068, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2600, - "name": "trancheAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2588, - "src": "5944:13:4", + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4061, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10042, + "src": "9285:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4062, + "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": 4064, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10117, + "src": "9305:4:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_W12Fund_$4424", + "typeString": "contract W12Fund" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_W12Fund_$4424", + "typeString": "contract W12Fund" + } + ], + "id": 4063, + "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": 4065, + "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": 4059, + "name": "wToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3212, + "src": "9268:6:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" + } + }, + "id": 4060, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 9736, + "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": 4066, + "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": ">", + "operator": ">=", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 2601, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5960:1:4", - "subdenomination": null, + "id": 4067, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4023, + "src": "9315:11:6", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - "src": "5944:17:4", + "src": "9268:58:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -21354,426 +30200,249 @@ "typeString": "bool" } ], - "id": 2599, + "id": 4058, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "5936:7:4", + "referencedDeclaration": 10045, + "src": "9260:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2603, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5936:26:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2604, - "nodeType": "ExpressionStatement", - "src": "5936:26:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 2609, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2605, - "name": "completedTranches", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2038, - "src": "5973:17:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", - "typeString": "mapping(uint256 => bool)" - } - }, - "id": 2607, - "indexExpression": { - "argumentTypes": null, - "id": 2606, - "name": "milestoneIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2595, - "src": "5991:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5973:33:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2608, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6009:4:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "5973:40:4", + "id": 4069, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9260:67:6", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 2610, + "id": 4070, "nodeType": "ExpressionStatement", - "src": "5973:40:4" + "src": "9260:67:6" }, { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 2612, - "name": "fee", - "nodeType": "VariableDeclaration", - "scope": 2665, - "src": "6024:8:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2611, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6024:4:4", + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4072, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4023, + "src": "9352:11:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "value": null, - "visibility": "internal" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4071, + "name": "_refundAssets", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4310, + "src": "9338:13:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 4073, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9338:26:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } - ], - "id": 2613, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "6024:8:4" + }, + "id": 4074, + "nodeType": "ExpressionStatement", + "src": "9338:26:6" }, { - "condition": { + "expression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2616, + "id": 4080, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftExpression": { + "leftHandSide": { "argumentTypes": null, - "id": 2614, - "name": "trancheFeePercent", + "id": 4075, + "name": "totalTokenRefunded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2046, - "src": "6047:17:4", + "referencedDeclaration": 3236, + "src": "9375:18:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { "argumentTypes": null, - "hexValue": "30", - "id": 2615, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6067:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6047:21:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2632, - "nodeType": "IfStatement", - "src": "6043:150:4", - "trueBody": { - "id": 2631, - "nodeType": "Block", - "src": "6070:123:4", - "statements": [ - { - "expression": { + "arguments": [ + { "argumentTypes": null, - "id": 2622, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2617, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2612, - "src": "6084:3:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2620, - "name": "trancheFeePercent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2046, - "src": "6112:17:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2618, - "name": "trancheAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2588, - "src": "6090:13:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2619, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "percent", - "nodeType": "MemberAccess", - "referencedDeclaration": 4568, - "src": "6090:21:4", - "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": 2621, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6090:40:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6084:46:4", + "id": 4078, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4023, + "src": "9419:11:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "id": 2623, - "nodeType": "ExpressionStatement", - "src": "6084:46:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 2629, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2624, - "name": "trancheAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2588, - "src": "6144:13:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2627, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2612, - "src": "6178:3:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2625, - "name": "trancheAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2588, - "src": "6160:13:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2626, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 6829, - "src": "6160:17:4", - "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": 2628, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6160:22:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6144:38:4", + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 4076, + "name": "totalTokenRefunded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3236, + "src": "9396:18:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2630, - "nodeType": "ExpressionStatement", - "src": "6144:38:4" + "id": 4077, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9601, + "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": 4079, + "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": 4081, + "nodeType": "ExpressionStatement", + "src": "9375:56:6" }, { "expression": { "argumentTypes": null, - "id": 2638, + "id": 4093, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2633, - "name": "totalTranchePercentReleased", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2044, - "src": "6203:27:4", + "baseExpression": { + "argumentTypes": null, + "id": 4082, + "name": "tokenBoughtPerInvestor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3240, + "src": "9441:22:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4085, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4083, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10042, + "src": "9464:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4084, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9464:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9441:34:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21786,12 +30455,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2636, - "name": "tranchePercent", + "id": 4091, + "name": "tokenAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2593, - "src": "6265:14:4", + "referencedDeclaration": 4023, + "src": "9517:11:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21807,163 +30476,537 @@ ], "expression": { "argumentTypes": null, - "id": 2634, - "name": "totalTranchePercentReleased", + "baseExpression": { + "argumentTypes": null, + "id": 4086, + "name": "tokenBoughtPerInvestor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3240, + "src": "9478:22:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4089, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4087, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10042, + "src": "9501:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4088, + "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": 4090, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9577, + "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": 4092, + "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": 4094, + "nodeType": "ExpressionStatement", + "src": "9441:88:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4098, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10042, + "src": "9568:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4099, + "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": 4100, + "name": "swap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3216, + "src": "9580:4:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 4101, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4023, + "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": 4096, + "name": "wToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3212, + "src": "9548:6:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" + } + }, + "id": 4097, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 9747, + "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": 4102, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9548:50:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4095, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "9540:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9540:59:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4104, + "nodeType": "ExpressionStatement", + "src": "9540:59:6" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4106, + "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2044, - "src": "6233:27:4", + "referencedDeclaration": 10042, + "src": "9629:3:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_magic_message", + "typeString": "msg" } }, - "id": 2635, + "id": 4107, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "add", + "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": 6853, - "src": "6233:31:4", + "referencedDeclaration": null, + "src": "9629: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)" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 2637, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6233:47:4", + { + "argumentTypes": null, + "id": 4108, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4023, + "src": "9641:11:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4105, + "name": "TokenRefunded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3268, + "src": "9615:13:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" } }, - "src": "6203:77:4", + "id": 4109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9615:38:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 2639, - "nodeType": "ExpressionStatement", - "src": "6203:77:4" + "id": 4110, + "nodeType": "EmitStatement", + "src": "9610:43:6" + } + ] + }, + "documentation": "@notice Refund bought tokens", + "id": 4112, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 4026, + "modifierName": { + "argumentTypes": null, + "id": 4025, + "name": "nonReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9330, + "src": "9033:12:6", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } }, + "nodeType": "ModifierInvocation", + "src": "9033:12:6" + } + ], + "name": "refund", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4024, + "nodeType": "ParameterList", + "parameters": [ { - "condition": { - "argumentTypes": null, - "commonType": { + "constant": false, + "id": 4023, + "name": "tokenAmount", + "nodeType": "VariableDeclaration", + "scope": 4112, + "src": "9006:16:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4022, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "9006:4:6", + "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" - }, - "id": 2642, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2640, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2612, - "src": "6295:3:4", + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9005:18:6" + }, + "payable": false, + "returnParameters": { + "id": 4027, + "nodeType": "ParameterList", + "parameters": [], + "src": "9046:0:6" + }, + "scope": 4424, + "src": "8990:670:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 4309, + "nodeType": "Block", + "src": "9716:1798:6", + "statements": [ + { + "assignments": [ + 4118 + ], + "declarations": [ + { + "constant": false, + "id": 4118, + "name": "ln", + "nodeType": "VariableDeclaration", + "scope": 4310, + "src": "9726:7:6", + "stateVariable": false, + "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2641, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6301:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" }, - "value": "0" - }, - "src": "6295:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeName": { + "id": 4117, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "9726:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" } - }, - "falseBody": null, - "id": 2649, - "nodeType": "IfStatement", - "src": "6291:40:4", - "trueBody": { + ], + "id": 4126, + "initialValue": { + "argumentTypes": null, "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2646, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2612, - "src": "6327:3:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], + "arguments": [], "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], + "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 2643, - "name": "serviceWallet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2026, - "src": "6304:13:4", + "baseExpression": { + "argumentTypes": null, + "id": 4119, + "name": "fundedPerInvestor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3244, + "src": "9736:17:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Account_$4698_storage_$", + "typeString": "mapping(address => struct FundAccount.Account storage ref)" + } + }, + "id": 4122, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4120, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10042, + "src": "9754:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4121, + "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", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_struct$_Account_$4698_storage", + "typeString": "struct FundAccount.Account storage ref" } }, - "id": 2645, + "id": 4123, "isConstant": false, - "isLValue": false, + "isLValue": true, "isPure": false, "lValueRequested": false, - "memberName": "transfer", + "memberName": "symbolsList", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6304:22:4", + "referencedDeclaration": 4809, + "src": "9736:41:6", "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Account_$4698_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$bound_to$_t_struct$_Account_$4698_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer) view returns (bytes32[] memory)" } }, - "id": 2647, + "id": 4124, "isConstant": false, "isLValue": false, "isPure": false, @@ -21971,696 +31014,1198 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6304:27:4", + "src": "9736:43:6", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[] memory" } }, - "id": 2648, - "nodeType": "ExpressionStatement", - "src": "6304:27:4" - } + "id": 4125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9736:50:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9726:60:6" }, { - "expression": { - "argumentTypes": null, - "arguments": [ + "body": { + "id": 4307, + "nodeType": "Block", + "src": "9813:1695:6", + "statements": [ { - "argumentTypes": null, - "id": 2655, - "name": "trancheAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2588, - "src": "6361:13:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { + "assignments": [ + 4131 + ], + "declarations": [ + { + "constant": false, + "id": 4131, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 4310, + "src": "9827:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4130, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "9827:7:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4141, + "initialValue": { "argumentTypes": null, - "id": 2650, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "6341:3:4", + "baseExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4132, + "name": "fundedPerInvestor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3244, + "src": "9844:17:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Account_$4698_storage_$", + "typeString": "mapping(address => struct FundAccount.Account storage ref)" + } + }, + "id": 4135, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4133, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10042, + "src": "9862:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4134, + "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_$4698_storage", + "typeString": "struct FundAccount.Account storage ref" + } + }, + "id": 4136, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "symbolsList", + "nodeType": "MemberAccess", + "referencedDeclaration": 4809, + "src": "9844:41:6", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Account_$4698_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$bound_to$_t_struct$_Account_$4698_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer) view returns (bytes32[] memory)" + } + }, + "id": 4137, + "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": 4140, + "indexExpression": { + "argumentTypes": null, + "id": 4139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "--", + "prefix": true, + "src": "9888:4:6", + "subExpression": { + "argumentTypes": null, + "id": 4138, + "name": "ln", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4118, + "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_magic_message", - "typeString": "msg" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, - "id": 2653, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6341:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "nodeType": "VariableDeclarationStatement", + "src": "9827:66:6" + }, + { + "assignments": [ + 4143 + ], + "declarations": [ + { + "constant": false, + "id": 4143, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 4310, + "src": "9907:11:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4142, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "9907:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4151, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4149, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4131, + "src": "9960:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4144, + "name": "fundedPerInvestor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3244, + "src": "9921:17:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Account_$4698_storage_$", + "typeString": "mapping(address => struct FundAccount.Account storage ref)" + } + }, + "id": 4147, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4145, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10042, + "src": "9939:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4146, + "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_$4698_storage", + "typeString": "struct FundAccount.Account storage ref" + } + }, + "id": 4148, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amountOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 4797, + "src": "9921:38:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Account_$4698_storage_ptr_$_t_bytes32_$returns$_t_uint256_$bound_to$_t_struct$_Account_$4698_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer,bytes32) view returns (uint256)" + } + }, + "id": 4150, + "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" }, - "id": 2654, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6341:19:4", - "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 2656, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6341:34:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2657, - "nodeType": "ExpressionStatement", - "src": "6341:34:4" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ { - "argumentTypes": null, - "expression": { + "condition": { "argumentTypes": null, - "id": 2659, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "6407:3:4", + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4154, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4152, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4143, + "src": "9986:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4153, + "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_magic_message", - "typeString": "msg" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 2660, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6407:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "falseBody": null, + "id": 4156, + "nodeType": "IfStatement", + "src": "9982:25:6", + "trueBody": { + "id": 4155, + "nodeType": "Continue", + "src": "9999:8:6" } }, { - "argumentTypes": null, - "id": 2661, - "name": "trancheAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2588, - "src": "6419:13:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2658, - "name": "TrancheReleased", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2075, - "src": "6391:15:4", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 2662, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6391:42:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2663, - "nodeType": "EmitStatement", - "src": "6386:47:4" - } - ] - }, - "documentation": null, - "id": 2665, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 2578, - "modifierName": { - "argumentTypes": null, - "id": 2577, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6888, - "src": "5731:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "5731:9:4" - }, - { - "arguments": null, - "id": 2580, - "modifierName": { - "argumentTypes": null, - "id": 2579, - "name": "nonReentrant", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6689, - "src": "5741:12:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "5741:12:4" - } - ], - "name": "tranche", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2576, - "nodeType": "ParameterList", - "parameters": [], - "src": "5719:2:4" - }, - "payable": false, - "returnParameters": { - "id": 2581, - "nodeType": "ParameterList", - "parameters": [], - "src": "5754:0:4" - }, - "scope": 2899, - "src": "5703:737:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2796, - "nodeType": "Block", - "src": "6506:962:4", - "statements": [ - { - "assignments": [ - 2673 - ], - "declarations": [ - { - "constant": false, - "id": 2673, - "name": "buyer", - "nodeType": "VariableDeclaration", - "scope": 2797, - "src": "6516:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2672, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6516:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "assignments": [ + 4158 + ], + "declarations": [ + { + "constant": false, + "id": 4158, + "name": "sourceAmount", + "nodeType": "VariableDeclaration", + "scope": 4310, + "src": "10055:17:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4157, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "10055:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4168, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4161, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4114, + "src": "10109:11:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 4162, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4143, + "src": "10138:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4163, + "name": "tokenBoughtPerInvestor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3240, + "src": "10162:22:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4166, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4164, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10042, + "src": "10185:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4165, + "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": 4159, + "name": "Utils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6060, + "src": "10075:5:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Utils_$6060_$", + "typeString": "type(library Utils)" + } + }, + "id": 4160, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeMulDiv", + "nodeType": "MemberAccess", + "referencedDeclaration": 6059, + "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": 4167, + "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" }, - "value": null, - "visibility": "internal" - } - ], - "id": 2676, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2674, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "6532:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2675, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6532:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6516:26:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ { - "argumentTypes": null, - "arguments": [], "expression": { - "argumentTypes": [], - "id": 2678, - "name": "refundAllowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2833, - "src": "6561:13:4", + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4172, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4170, + "name": "sourceAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4158, + "src": "10233:12:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4171, + "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": 4169, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "10225:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4173, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10225:25:6", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", - "typeString": "function () view returns (bool)" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 2679, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6561:15:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2677, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 7297, - 7298 - ], - "referencedDeclaration": 7297, - "src": "6553:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2680, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6553:24:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2681, - "nodeType": "ExpressionStatement", - "src": "6553:24:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ + "id": 4174, + "nodeType": "ExpressionStatement", + "src": "10225:25:6" + }, { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2685, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "assignments": [ + 4176 + ], + "declarations": [ + { + "constant": false, + "id": 4176, + "name": "releasedTranche", + "nodeType": "VariableDeclaration", + "scope": 4310, + "src": "10328:20:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4175, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "10328:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4184, + "initialValue": { "argumentTypes": null, - "id": 2683, - "name": "wtokensToRefund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2667, - "src": "6595:15:4", + "arguments": [ + { + "argumentTypes": null, + "id": 4182, + "name": "totalTranchePercentReleased", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3222, + "src": "10426:27:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4179, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4131, + "src": "10389:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 4177, + "name": "totalFunded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3228, + "src": "10351:11:6", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage", + "typeString": "struct FundAccount.Account storage ref" + } + }, + "id": 4178, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amountOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 4797, + "src": "10351:37:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Account_$4698_storage_ptr_$_t_bytes32_$returns$_t_uint256_$bound_to$_t_struct$_Account_$4698_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer,bytes32) view returns (uint256)" + } + }, + "id": 4180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10351:45:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4181, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safePercent", + "nodeType": "MemberAccess", + "referencedDeclaration": 5040, + "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": 4183, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10351:103:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { + "nodeType": "VariableDeclarationStatement", + "src": "10328:126:6" + }, + { + "expression": { "argumentTypes": null, - "hexValue": "30", - "id": 2684, + "id": 4201, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "number", + "isPure": false, "lValueRequested": false, - "nodeType": "Literal", - "src": "6613:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "leftHandSide": { + "argumentTypes": null, + "id": 4185, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4143, + "src": "10518:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - "value": "0" - }, - "src": "6595:19:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2682, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 7297, - 7298 - ], - "referencedDeclaration": 7297, - "src": "6587:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2686, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6587:28:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2687, - "nodeType": "ExpressionStatement", - "src": "6587:28:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2694, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2689, - "name": "buyers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2034, - "src": "6633:6:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_TokenPriceInfo_$2053_storage_$", - "typeString": "mapping(address => struct W12Fund.TokenPriceInfo storage ref)" + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4193, + "name": "releasedTranche", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4176, + "src": "10594:15:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4190, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4131, + "src": "10582:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 4188, + "name": "totalFunded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3228, + "src": "10561:11:6", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage", + "typeString": "struct FundAccount.Account storage ref" + } + }, + "id": 4189, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amountOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 4797, + "src": "10561:20:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Account_$4698_storage_ptr_$_t_bytes32_$returns$_t_uint256_$bound_to$_t_struct$_Account_$4698_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer,bytes32) view returns (uint256)" + } + }, + "id": 4191, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10561:28:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9577, + "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": 4194, + "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": 4195, + "name": "sourceAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4158, + "src": "10628:12:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4198, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4131, + "src": "10679:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 4196, + "name": "totalFunded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3228, + "src": "10658:11:6", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Account_$4698_storage", + "typeString": "struct FundAccount.Account storage ref" + } + }, + "id": 4197, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amountOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 4797, + "src": "10658:20:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Account_$4698_storage_ptr_$_t_bytes32_$returns$_t_uint256_$bound_to$_t_struct$_Account_$4698_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer,bytes32) view returns (uint256)" + } + }, + "id": 4199, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10658:28:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } } - }, - "id": 2691, - "indexExpression": { - "argumentTypes": null, - "id": 2690, - "name": "buyer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2673, - "src": "6640:5:4", + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 4186, + "name": "Utils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6060, + "src": "10527:5:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Utils_$6060_$", + "typeString": "type(library Utils)" + } + }, + "id": 4187, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeMulDiv", + "nodeType": "MemberAccess", + "referencedDeclaration": 6059, + "src": "10527:16:6", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" } }, + "id": 4200, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6633:13:4", + "names": [], + "nodeType": "FunctionCall", + "src": "10527:173:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_TokenPriceInfo_$2053_storage", - "typeString": "struct W12Fund.TokenPriceInfo storage ref" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 2692, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "totalBought", - "nodeType": "MemberAccess", - "referencedDeclaration": 2048, - "src": "6633:25:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 2693, - "name": "wtokensToRefund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2667, - "src": "6662:15:4", + "src": "10518:182:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6633:44:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2688, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 7297, - 7298 - ], - "referencedDeclaration": 7297, - "src": "6625:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2695, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6625:53:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2696, - "nodeType": "ExpressionStatement", - "src": "6625:53:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ + "id": 4202, + "nodeType": "ExpressionStatement", + "src": "10518:182:6" + }, { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2703, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 2700, - "name": "buyer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2673, - "src": "6713:5:4", + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4206, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4204, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4143, + "src": "10723:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4205, + "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_address", - "typeString": "address" + "typeIdentifier": "t_bool", + "typeString": "bool" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bool", + "typeString": "bool" } ], - "expression": { - "argumentTypes": null, - "id": 2698, - "name": "wToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2028, - "src": "6696:6:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" - } - }, - "id": 2699, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 5276, - "src": "6696:16:4", + "id": 4203, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "10715:7:6", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" } }, - "id": 2701, + "id": 4207, "isConstant": false, "isLValue": false, "isPure": false, @@ -22668,1456 +32213,1498 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6696:23:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 2702, - "name": "wtokensToRefund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2667, - "src": "6723:15:4", + "src": "10715:19:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "src": "6696:42:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2697, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 7297, - 7298 - ], - "referencedDeclaration": 7297, - "src": "6688:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2704, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6688:51:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2705, - "nodeType": "ExpressionStatement", - "src": "6688:51:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ + "id": 4208, + "nodeType": "ExpressionStatement", + "src": "10715:19:6" + }, { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2716, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "expression": { "argumentTypes": null, - "arguments": [ - { + "id": 4218, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { "argumentTypes": null, - "expression": { + "id": 4209, + "name": "totalFundedReleased", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3232, + "src": "10749:19:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 4211, + "indexExpression": { + "argumentTypes": null, + "id": 4210, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4131, + "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": 2709, - "name": "msg", + "id": 4216, + "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "6774:3:4", + "referencedDeclaration": 4143, + "src": "10811:6:6", "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - }, - "id": 2710, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6774:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" } - }, - { - "argumentTypes": null, - "arguments": [ + ], + "expression": { + "argumentTypes": [ { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { "argumentTypes": null, - "id": 2712, - "name": "this", + "id": 4212, + "name": "totalFundedReleased", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7343, - "src": "6794:4:4", + "referencedDeclaration": 3232, + "src": "10779:19:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_W12Fund_$2899", - "typeString": "contract W12Fund" + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_W12Fund_$2899", - "typeString": "contract W12Fund" + }, + "id": 4214, + "indexExpression": { + "argumentTypes": null, + "id": 4213, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4131, + "src": "10799:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } - ], - "id": 2711, + }, "isConstant": false, - "isLValue": false, - "isPure": true, + "isLValue": true, + "isPure": false, "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6786:7:4", + "nodeType": "IndexAccess", + "src": "10779:27:6", "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - "id": 2713, + "id": 4215, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "typeConversion", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6786:13:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2707, - "name": "wToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2028, - "src": "6757:6:4", + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9601, + "src": "10779:31:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 2708, + "id": 4217, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "memberName": "allowance", - "nodeType": "MemberAccess", - "referencedDeclaration": 5410, - "src": "6757:16:4", + "names": [], + "nodeType": "FunctionCall", + "src": "10779:39:6", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) view external returns (uint256)" - } - }, - "id": 2714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6757:43:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 2715, - "name": "wtokensToRefund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2667, - "src": "6804:15:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6757:62:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2706, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 7297, - 7298 - ], - "referencedDeclaration": 7297, - "src": "6749:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2717, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6749:71:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2718, - "nodeType": "ExpressionStatement", - "src": "6749:71:4" - }, - { - "assignments": [ - 2720 - ], - "declarations": [ - { - "constant": false, - "id": 2720, - "name": "transferAmount", - "nodeType": "VariableDeclaration", - "scope": 2797, - "src": "6831:19:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2719, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6831:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2724, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2722, - "name": "wtokensToRefund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2667, - "src": "6869:15:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2721, - "name": "getRefundAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2419, - "src": "6853:15:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) view returns (uint256)" - } - }, - "id": 2723, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6853:32:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6831:54:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2728, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2726, - "name": "transferAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2720, - "src": "6904:14:4", + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10749:69:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2727, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6921:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6904:18:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2725, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 7297, - 7298 - ], - "referencedDeclaration": 7297, - "src": "6896:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2729, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6896:27:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2730, - "nodeType": "ExpressionStatement", - "src": "6896:27:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 2742, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2731, - "name": "buyers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2034, - "src": "6934:6:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_TokenPriceInfo_$2053_storage_$", - "typeString": "mapping(address => struct W12Fund.TokenPriceInfo storage ref)" - } - }, - "id": 2733, - "indexExpression": { - "argumentTypes": null, - "id": 2732, - "name": "buyer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2673, - "src": "6941:5:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6934:13:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TokenPriceInfo_$2053_storage", - "typeString": "struct W12Fund.TokenPriceInfo storage ref" - } + "id": 4219, + "nodeType": "ExpressionStatement", + "src": "10749:69:6" }, - "id": 2734, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "totalBought", - "nodeType": "MemberAccess", - "referencedDeclaration": 2048, - "src": "6934:25:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2740, - "name": "wtokensToRefund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2667, - "src": "7005:15:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], + { "expression": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { + "arguments": [ + { "argumentTypes": null, - "id": 2735, - "name": "buyers", + "id": 4225, + "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2034, - "src": "6962:6:4", + "referencedDeclaration": 4131, + "src": "10873:6:6", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_TokenPriceInfo_$2053_storage_$", - "typeString": "mapping(address => struct W12Fund.TokenPriceInfo storage ref)" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, - "id": 2737, - "indexExpression": { + { "argumentTypes": null, - "id": 2736, - "name": "buyer", + "id": 4226, + "name": "sourceAmount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2673, - "src": "6969:5:4", + "referencedDeclaration": 4158, + "src": "10881:12:6", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4220, + "name": "fundedPerInvestor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3244, + "src": "10832:17:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Account_$4698_storage_$", + "typeString": "mapping(address => struct FundAccount.Account storage ref)" + } + }, + "id": 4223, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4221, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10042, + "src": "10850:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4222, + "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_$4698_storage", + "typeString": "struct FundAccount.Account storage ref" } }, + "id": 4224, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6962:13:4", + "memberName": "withdrawal", + "nodeType": "MemberAccess", + "referencedDeclaration": 4767, + "src": "10832:40:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_TokenPriceInfo_$2053_storage", - "typeString": "struct W12Fund.TokenPriceInfo storage ref" + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Account_$4698_storage_ptr_$_t_bytes32_$_t_uint256_$returns$__$bound_to$_t_struct$_Account_$4698_storage_ptr_$", + "typeString": "function (struct FundAccount.Account storage pointer,bytes32,uint256)" } }, - "id": 2738, + "id": 4227, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "memberName": "totalBought", - "nodeType": "MemberAccess", - "referencedDeclaration": 2048, - "src": "6962:25:4", + "names": [], + "nodeType": "FunctionCall", + "src": "10832:62:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 2739, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 6829, - "src": "6962:42:4", - "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": 4228, + "nodeType": "ExpressionStatement", + "src": "10832:62:6" }, - "id": 2741, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6962:59:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6934:87:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2743, - "nodeType": "ExpressionStatement", - "src": "6934:87:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 2766, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { + { + "condition": { "argumentTypes": null, - "id": 2744, - "name": "buyers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2034, - "src": "7031:6:4", + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 4231, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4229, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4131, + "src": "10913:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 4230, + "name": "METHOD_USD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3208, + "src": "10923:10:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "10913:20:6", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_TokenPriceInfo_$2053_storage_$", - "typeString": "mapping(address => struct W12Fund.TokenPriceInfo storage ref)" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 2746, - "indexExpression": { + "falseBody": null, + "id": 4233, + "nodeType": "IfStatement", + "src": "10909:34:6", + "trueBody": { + "id": 4232, + "nodeType": "Continue", + "src": "10935:8:6" + } + }, + { + "condition": { "argumentTypes": null, - "id": 2745, - "name": "buyer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2673, - "src": "7038:5:4", + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 4236, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4234, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4131, + "src": "10962:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 4235, + "name": "METHOD_ETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3203, + "src": "10972:10:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "10962:20:6", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7031:13:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TokenPriceInfo_$2053_storage", - "typeString": "struct W12Fund.TokenPriceInfo storage ref" + "falseBody": { + "id": 4270, + "nodeType": "Block", + "src": "11151:73:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4267, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4263, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10117, + "src": "11185:4:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_W12Fund_$4424", + "typeString": "contract W12Fund" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_W12Fund_$4424", + "typeString": "contract W12Fund" + } + ], + "id": 4262, + "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": 4264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11177:13:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 4265, + "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": 4266, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4143, + "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": 4261, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "11169:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11169:40:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4269, + "nodeType": "ExpressionStatement", + "src": "11169:40:6" + } + ] + }, + "id": 4271, + "nodeType": "IfStatement", + "src": "10958:266:6", + "trueBody": { + "id": 4260, + "nodeType": "Block", + "src": "10984:161:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4240, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4131, + "src": "11024:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 4238, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3214, + "src": "11010:5:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "id": 4239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 6992, + "src": "11010:13:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (bytes32) view external returns (bool)" + } + }, + "id": 4241, + "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": 4237, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "11002:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4242, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11002:30:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4243, + "nodeType": "ExpressionStatement", + "src": "11002:30:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4257, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4253, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10117, + "src": "11113:4:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_W12Fund_$4424", + "typeString": "contract W12Fund" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_W12Fund_$4424", + "typeString": "contract W12Fund" + } + ], + "id": 4252, + "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": 4254, + "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": 4248, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4131, + "src": "11086:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 4246, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3214, + "src": "11064:5:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "id": 4247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getTokenAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 6985, + "src": "11064:21:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view external returns (address)" + } + }, + "id": 4249, + "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": 4245, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9765, + "src": "11058:5:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$9765_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 4250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11058:36:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$9765", + "typeString": "contract ERC20" + } + }, + "id": 4251, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 9779, + "src": "11058:46:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 4255, + "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": 4256, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4143, + "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": 4244, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "11050:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4258, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11050:80:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4259, + "nodeType": "ExpressionStatement", + "src": "11050:80:6" + } + ] } }, - "id": 2747, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "totalFunded", - "nodeType": "MemberAccess", - "referencedDeclaration": 2052, - "src": "7031:25:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { + { + "condition": { "argumentTypes": null, - "arguments": [ + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 4274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4272, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4131, + "src": "11242:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 4273, + "name": "METHOD_ETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3203, + "src": "11252:10:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "11242:20:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 4298, + "nodeType": "Block", + "src": "11330:107:6", + "statements": [ { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2763, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "expression": { "argumentTypes": null, - "hexValue": "3130", - "id": 2761, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4292, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10042, + "src": "11402:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4293, + "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": 4294, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4143, + "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": 4288, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4131, + "src": "11384:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 4286, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3214, + "src": "11362:5:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "id": 4287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getTokenAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 6985, + "src": "11362:21:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view external returns (address)" + } + }, + "id": 4289, + "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": 4285, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9765, + "src": "11356:5:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$9765_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 4290, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11356:36:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$9765", + "typeString": "contract ERC20" + } + }, + "id": 4291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 9788, + "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": 4295, + "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": 4284, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "11348:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4296, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "number", + "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "Literal", - "src": "7154:2:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "id": 2762, - "name": "tokenDecimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2030, - "src": "7160:13:4", + "names": [], + "nodeType": "FunctionCall", + "src": "11348:74:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "src": "7154:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "id": 4297, + "nodeType": "ExpressionStatement", + "src": "11348:74:6" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, + ] + }, + "id": 4299, + "nodeType": "IfStatement", + "src": "11238:199:6", + "trueBody": { + "id": 4283, + "nodeType": "Block", + "src": "11264:60:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4280, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4143, + "src": "11302:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], "expression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2755, - "name": "buyers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2034, - "src": "7122:6:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_TokenPriceInfo_$2053_storage_$", - "typeString": "mapping(address => struct W12Fund.TokenPriceInfo storage ref)" - } - }, - "id": 2757, - "indexExpression": { + "expression": { "argumentTypes": null, - "id": 2756, - "name": "buyer", + "id": 4275, + "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2673, - "src": "7129:5:4", + "referencedDeclaration": 10042, + "src": "11282:3:6", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_magic_message", + "typeString": "msg" } }, + "id": 4278, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7122:13:4", + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11282:10:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_TokenPriceInfo_$2053_storage", - "typeString": "struct W12Fund.TokenPriceInfo storage ref" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 2758, + "id": 4279, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "averagePrice", + "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 2050, - "src": "7122:26:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2753, - "name": "wtokensToRefund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2667, - "src": "7102:15:4", + "referencedDeclaration": null, + "src": "11282:19:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" } }, - "id": 2754, + "id": 4281, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 6795, - "src": "7102:19:4", - "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": 2759, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7102:47:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2760, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 6809, - "src": "7102:51:4", - "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": 2764, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7102:72:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2748, - "name": "buyers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2034, - "src": "7059:6:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_TokenPriceInfo_$2053_storage_$", - "typeString": "mapping(address => struct W12Fund.TokenPriceInfo storage ref)" - } - }, - "id": 2750, - "indexExpression": { - "argumentTypes": null, - "id": 2749, - "name": "buyer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2673, - "src": "7066:5:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7059:13:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TokenPriceInfo_$2053_storage", - "typeString": "struct W12Fund.TokenPriceInfo storage ref" - } - }, - "id": 2751, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "totalFunded", - "nodeType": "MemberAccess", - "referencedDeclaration": 2052, - "src": "7059:25:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2752, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 6829, - "src": "7059:42:4", - "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": 2765, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7059:116:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7031:144:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2767, - "nodeType": "ExpressionStatement", - "src": "7031:144:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 2773, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2768, - "name": "totalRefunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2042, - "src": "7234:13:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2771, - "name": "transferAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2720, - "src": "7268:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2769, - "name": "totalRefunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2042, - "src": "7250:13:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2770, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 6853, - "src": "7250:17:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" + "names": [], + "nodeType": "FunctionCall", + "src": "11282:27:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4282, + "nodeType": "ExpressionStatement", + "src": "11282:27:6" + } + ] } }, - "id": 2772, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7250:33:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7234:49:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2774, - "nodeType": "ExpressionStatement", - "src": "7234:49:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2778, - "name": "buyer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2673, - "src": "7322:5:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2779, - "name": "swap", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2024, - "src": "7329:4:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2780, - "name": "wtokensToRefund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2667, - "src": "7335:15:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ + "eventCall": { + "argumentTypes": null, + "arguments": [ { - "typeIdentifier": "t_address", - "typeString": "address" + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4301, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10042, + "src": "11470:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4302, + "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": 4303, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4131, + "src": "11482:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } }, { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2776, - "name": "wToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2028, - "src": "7302:6:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" - } - }, - "id": 2777, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 5366, - "src": "7302:19:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,address,uint256) external returns (bool)" - } - }, - "id": 2781, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7302:49:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2775, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 7297, - 7298 - ], - "referencedDeclaration": 7297, - "src": "7294:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7294:58:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2783, - "nodeType": "ExpressionStatement", - "src": "7294:58:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2787, - "name": "transferAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2720, - "src": "7377:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2784, - "name": "buyer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2673, - "src": "7362:5:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2786, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7362:14:4", - "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 2788, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7362:30:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2789, - "nodeType": "ExpressionStatement", - "src": "7362:30:4" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2791, - "name": "buyer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2673, - "src": "7422:5:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2792, - "name": "transferAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2720, - "src": "7429:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2793, - "name": "wtokensToRefund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2667, - "src": "7445:15:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "argumentTypes": null, + "id": 4304, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4143, + "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": 4300, + "name": "AssetRefunded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3262, + "src": "11456:13:6", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_uint256_$returns$__$", + "typeString": "function (address,bytes32,uint256)" + } + }, + "id": 4305, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11456:41:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2790, - "name": "FundsRefunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2069, - "src": "7408:13:4", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256,uint256)" + "id": 4306, + "nodeType": "EmitStatement", + "src": "11451:46:6" } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - "id": 2794, + "id": 4129, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7408:53:4", + "leftExpression": { + "argumentTypes": null, + "id": 4127, + "name": "ln", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4118, + "src": "9804:2:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4128, + "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_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 2795, - "nodeType": "EmitStatement", - "src": "7403:58:4" + "id": 4308, + "nodeType": "WhileStatement", + "src": "9797:1711:6" } ] }, "documentation": null, - "id": 2797, + "id": 4310, "implemented": true, "isConstructor": false, "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 2670, - "modifierName": { - "argumentTypes": null, - "id": 2669, - "name": "nonReentrant", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6689, - "src": "6493:12:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "6493:12:4" - } - ], - "name": "refund", + "modifiers": [], + "name": "_refundAssets", "nodeType": "FunctionDefinition", "parameters": { - "id": 2668, + "id": 4115, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2667, - "name": "wtokensToRefund", + "id": 4114, + "name": "tokenAmount", "nodeType": "VariableDeclaration", - "scope": 2797, - "src": "6462:20:4", + "scope": 4310, + "src": "9689:16:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24125,10 +33712,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2666, + "id": 4113, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6462:4:4", + "src": "9689:4:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -24138,40 +33725,40 @@ "visibility": "internal" } ], - "src": "6461:22:4" + "src": "9688:18:6" }, "payable": false, "returnParameters": { - "id": 2671, + "id": 4116, "nodeType": "ParameterList", "parameters": [], - "src": "6506:0:4" + "src": "9716:0:6" }, - "scope": 2899, - "src": "6446:1022:4", + "scope": 4424, + "src": "9666:1848:6", "stateMutability": "nonpayable", "superFunction": null, - "visibility": "external" + "visibility": "internal" }, { "body": { - "id": 2832, + "id": 4345, "nodeType": "Block", - "src": "7526:387:4", + "src": "11577:387:6", "statements": [ { "assignments": [ - 2803, - 2805 + 4316, + 4318 ], "declarations": [ { "constant": false, - "id": 2803, + "id": 4316, "name": "index", "nodeType": "VariableDeclaration", - "scope": 2833, - "src": "7537:10:4", + "scope": 4346, + "src": "11588:10:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24179,10 +33766,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2802, + "id": 4315, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "7537:4:4", + "src": "11588:4:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -24193,11 +33780,11 @@ }, { "constant": false, - "id": 2805, + "id": 4318, "name": "found", "nodeType": "VariableDeclaration", - "scope": 2833, - "src": "7549:10:4", + "scope": 4346, + "src": "11600:10:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24205,10 +33792,10 @@ "typeString": "bool" }, "typeName": { - "id": 2804, + "id": 4317, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "7549:4:4", + "src": "11600:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -24218,7 +33805,7 @@ "visibility": "internal" } ], - "id": 2809, + "id": 4322, "initialValue": { "argumentTypes": null, "arguments": [], @@ -24226,32 +33813,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 2806, + "id": 4319, "name": "crowdsale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2022, - "src": "7563:9:4", + "referencedDeclaration": 3210, + "src": "11614:9:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } }, - "id": 2807, + "id": 4320, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getCurrentMilestoneIndex", "nodeType": "MemberAccess", - "referencedDeclaration": 4378, - "src": "7563:34:4", + "referencedDeclaration": 1155, + "src": "11614:34:6", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$_t_bool_$", "typeString": "function () view external returns (uint256,bool)" } }, - "id": 2808, + "id": 4321, "isConstant": false, "isLValue": false, "isPure": false, @@ -24259,14 +33846,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7563:36:4", + "src": "11614:36:6", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", "typeString": "tuple(uint256,bool)" } }, "nodeType": "VariableDeclarationStatement", - "src": "7536:63:4" + "src": "11587:63:6" }, { "condition": { @@ -24275,19 +33862,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2812, + "id": 4325, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2810, + "id": 4323, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2803, - "src": "7738:5:4", + "referencedDeclaration": 4316, + "src": "11789:5:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -24298,14 +33885,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2811, + "id": 4324, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7747:1:4", + "src": "11798:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -24313,41 +33900,41 @@ }, "value": "0" }, - "src": "7738:10:4", + "src": "11789:10:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 2814, + "id": 4327, "nodeType": "IfStatement", - "src": "7735:22:4", + "src": "11786:22:6", "trueBody": { "expression": null, - "functionReturnParameters": 2801, - "id": 2813, + "functionReturnParameters": 4314, + "id": 4326, "nodeType": "Return", - "src": "7750:7:4" + "src": "11801:7:6" } }, { "assignments": [ - 2816, + 4329, null, null, - 2818, + 4331, null, null ], "declarations": [ { "constant": false, - "id": 2816, + "id": 4329, "name": "endDate", "nodeType": "VariableDeclaration", - "scope": 2833, - "src": "7768:14:4", + "scope": 4346, + "src": "11819:14:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24355,10 +33942,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2815, + "id": 4328, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "7768:6:4", + "src": "11819:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -24371,11 +33958,11 @@ null, { "constant": false, - "id": 2818, + "id": 4331, "name": "withdrawalWindow", "nodeType": "VariableDeclaration", - "scope": 2833, - "src": "7788:23:4", + "scope": 4346, + "src": "11839:23:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24383,10 +33970,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2817, + "id": 4330, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "7788:6:4", + "src": "11839:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -24398,18 +33985,18 @@ null, null ], - "id": 2823, + "id": 4336, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 2821, + "id": 4334, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2803, - "src": "7842:5:4", + "referencedDeclaration": 4316, + "src": "11893:5:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -24425,32 +34012,32 @@ ], "expression": { "argumentTypes": null, - "id": 2819, + "id": 4332, "name": "crowdsale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2022, - "src": "7819:9:4", + "referencedDeclaration": 3210, + "src": "11870:9:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } }, - "id": 2820, + "id": 4333, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getMilestone", "nodeType": "MemberAccess", - "referencedDeclaration": 4352, - "src": "7819:22:4", + "referencedDeclaration": 1129, + "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": 2822, + "id": 4335, "isConstant": false, "isLValue": false, "isPure": false, @@ -24458,14 +34045,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7819:29:4", + "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": "7767:81:4" + "src": "11818:81:6" }, { "expression": { @@ -24474,7 +34061,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 2830, + "id": 4343, "isConstant": false, "isLValue": false, "isPure": false, @@ -24485,19 +34072,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2826, + "id": 4339, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2824, + "id": 4337, "name": "endDate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2816, - "src": "7866:7:4", + "referencedDeclaration": 4329, + "src": "11917:7:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -24507,18 +34094,18 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 2825, + "id": 4338, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7296, - "src": "7877:3:4", + "referencedDeclaration": 10044, + "src": "11928:3:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7866:14:4", + "src": "11917:14:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -24532,19 +34119,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2829, + "id": 4342, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2827, + "id": 4340, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7296, - "src": "7884:3:4", + "referencedDeclaration": 10044, + "src": "11935:3:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -24554,62 +34141,62 @@ "operator": "<", "rightExpression": { "argumentTypes": null, - "id": 2828, + "id": 4341, "name": "withdrawalWindow", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2818, - "src": "7890:16:4", + "referencedDeclaration": 4331, + "src": "11941:16:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "7884:22:4", + "src": "11935:22:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "7866:40:4", + "src": "11917:40:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 2801, - "id": 2831, + "functionReturnParameters": 4314, + "id": 4344, "nodeType": "Return", - "src": "7859:47:4" + "src": "11910:47:6" } ] }, "documentation": null, - "id": 2833, + "id": 4346, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], - "name": "refundAllowed", + "name": "tokenRefundAllowed", "nodeType": "FunctionDefinition", "parameters": { - "id": 2798, + "id": 4311, "nodeType": "ParameterList", "parameters": [], - "src": "7496:2:4" + "src": "11547:2:6" }, "payable": false, "returnParameters": { - "id": 2801, + "id": 4314, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2800, + "id": 4313, "name": "", "nodeType": "VariableDeclaration", - "scope": 2833, - "src": "7520:4:4", + "scope": 4346, + "src": "11571:4:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24617,10 +34204,10 @@ "typeString": "bool" }, "typeName": { - "id": 2799, + "id": 4312, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "7520:4:4", + "src": "11571:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -24630,33 +34217,33 @@ "visibility": "internal" } ], - "src": "7519:6:4" + "src": "11570:6:6" }, - "scope": 2899, - "src": "7474:439:4", + "scope": 4424, + "src": "11520:444:6", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2884, + "id": 4370, "nodeType": "Block", - "src": "7980:423:4", + "src": "12031:166:6", "statements": [ { "assignments": [ - 2839, - 2841 + 4352, + 4354 ], "declarations": [ { "constant": false, - "id": 2839, + "id": 4352, "name": "index", "nodeType": "VariableDeclaration", - "scope": 2885, - "src": "7991:10:4", + "scope": 4371, + "src": "12042:10:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24664,10 +34251,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2838, + "id": 4351, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "7991:4:4", + "src": "12042:4:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -24678,11 +34265,11 @@ }, { "constant": false, - "id": 2841, + "id": 4354, "name": "found", "nodeType": "VariableDeclaration", - "scope": 2885, - "src": "8003:10:4", + "scope": 4371, + "src": "12054:10:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24690,10 +34277,10 @@ "typeString": "bool" }, "typeName": { - "id": 2840, + "id": 4353, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "8003:4:4", + "src": "12054:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -24703,7 +34290,7 @@ "visibility": "internal" } ], - "id": 2845, + "id": 4358, "initialValue": { "argumentTypes": null, "arguments": [], @@ -24711,32 +34298,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 2842, + "id": 4355, "name": "crowdsale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2022, - "src": "8017:9:4", + "referencedDeclaration": 3210, + "src": "12068:9:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } }, - "id": 2843, + "id": 4356, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getCurrentMilestoneIndex", "nodeType": "MemberAccess", - "referencedDeclaration": 4378, - "src": "8017:34:4", + "referencedDeclaration": 1155, + "src": "12068:34:6", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$_t_bool_$", "typeString": "function () view external returns (uint256,bool)" } }, - "id": 2844, + "id": 4357, "isConstant": false, "isLValue": false, "isPure": false, @@ -24744,28 +34331,237 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8017:36:4", + "src": "12068:36:6", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", "typeString": "tuple(uint256,bool)" } }, - "nodeType": "VariableDeclarationStatement", - "src": "7990:63:4" - }, + "nodeType": "VariableDeclarationStatement", + "src": "12041:63:6" + }, + { + "condition": { + "argumentTypes": null, + "id": 4360, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "12118:6:6", + "subExpression": { + "argumentTypes": null, + "id": 4359, + "name": "found", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4354, + "src": "12119:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 4362, + "nodeType": "IfStatement", + "src": "12115:18:6", + "trueBody": { + "expression": null, + "functionReturnParameters": 4350, + "id": 4361, + "nodeType": "Return", + "src": "12126:7:6" + } + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 4368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4365, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4363, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4352, + "src": "12150:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4364, + "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": 4366, + "name": "isWithdrawalWindowActive", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4410, + "src": "12164:24:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", + "typeString": "function () view returns (bool)" + } + }, + "id": 4367, + "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": 4350, + "id": 4369, + "nodeType": "Return", + "src": "12143:47:6" + } + ] + }, + "documentation": null, + "id": 4371, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "trancheTransferAllowed", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4347, + "nodeType": "ParameterList", + "parameters": [], + "src": "12001:2:6" + }, + "payable": false, + "returnParameters": { + "id": 4350, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4349, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4371, + "src": "12025:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4348, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12025:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12024:6:6" + }, + "scope": 4424, + "src": "11970:227:6", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4409, + "nodeType": "Block", + "src": "12266:279:6", + "statements": [ { "assignments": [ - 2847, - null + 4377, + 4379 ], "declarations": [ { "constant": false, - "id": 2847, - "name": "lastIndex", + "id": 4377, + "name": "index", "nodeType": "VariableDeclaration", - "scope": 2885, - "src": "8064:14:4", + "scope": 4410, + "src": "12277:10:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24773,10 +34569,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2846, + "id": 4376, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "8064:4:4", + "src": "12277:4:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -24785,9 +34581,34 @@ "value": null, "visibility": "internal" }, - null + { + "constant": false, + "id": 4379, + "name": "found", + "nodeType": "VariableDeclaration", + "scope": 4410, + "src": "12289:10:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4378, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12289:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } ], - "id": 2851, + "id": 4383, "initialValue": { "argumentTypes": null, "arguments": [], @@ -24795,32 +34616,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 2848, + "id": 4380, "name": "crowdsale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2022, - "src": "8084:9:4", + "referencedDeclaration": 3210, + "src": "12303:9:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } }, - "id": 2849, + "id": 4381, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "getLastMilestoneIndex", + "memberName": "getCurrentMilestoneIndex", "nodeType": "MemberAccess", - "referencedDeclaration": 4385, - "src": "8084:31:4", + "referencedDeclaration": 1155, + "src": "12303:34:6", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$_t_bool_$", "typeString": "function () view external returns (uint256,bool)" } }, - "id": 2850, + "id": 4382, "isConstant": false, "isLValue": false, "isPure": false, @@ -24828,154 +34649,143 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8084:33:4", + "src": "12303:36:6", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", "typeString": "tuple(uint256,bool)" } }, "nodeType": "VariableDeclarationStatement", - "src": "8063:54:4" + "src": "12276:63:6" }, { "condition": { "argumentTypes": null, - "id": 2853, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "8131:6:4", - "subExpression": { - "argumentTypes": null, - "id": 2852, - "name": "found", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2841, - "src": "8132:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { + "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" - } - }, - "falseBody": null, - "id": 2855, - "nodeType": "IfStatement", - "src": "8128:18:4", - "trueBody": { - "expression": null, - "functionReturnParameters": 2837, - "id": 2854, - "nodeType": "Return", - "src": "8139:7:4" - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" }, - "id": 2858, + "id": 4389, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2856, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2839, - "src": "8158:5:4", - "typeDescriptions": { + "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" + }, + "id": 4386, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4384, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4377, + "src": "12353:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4385, + "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": "==", + "operator": "||", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 2857, + "id": 4388, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "number", + "isPure": false, "lValueRequested": false, - "nodeType": "Literal", - "src": "8167:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "12367:6:6", + "subExpression": { + "argumentTypes": null, + "id": 4387, + "name": "found", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4379, + "src": "12368:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } }, - "value": "0" + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } }, - "src": "8158:10:4", + "src": "12353:20:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 2861, + "id": 4391, "nodeType": "IfStatement", - "src": "8155:26:4", + "src": "12350:32:6", "trueBody": { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2859, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8177:4:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 2837, - "id": 2860, + "expression": null, + "functionReturnParameters": 4375, + "id": 4390, "nodeType": "Return", - "src": "8170:11:4" + "src": "12375:7:6" } }, { "assignments": [ - 2863, - null, + 4393, null, null, + 4395, null, null ], "declarations": [ { "constant": false, - "id": 2863, + "id": 4393, "name": "endDate", "nodeType": "VariableDeclaration", - "scope": 2885, - "src": "8193:14:4", + "scope": 4410, + "src": "12393:14:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24983,10 +34793,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2862, + "id": 4392, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "8193:6:4", + "src": "12393:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -24997,99 +34807,13 @@ }, null, null, - null, - null, - null - ], - "id": 2868, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2866, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2839, - "src": "8244:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2864, - "name": "crowdsale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2022, - "src": "8221:9:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", - "typeString": "contract IW12Crowdsale" - } - }, - "id": 2865, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getMilestone", - "nodeType": "MemberAccess", - "referencedDeclaration": 4352, - "src": "8221:22:4", - "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": 2867, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8221:29:4", - "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": "8192:58:4" - }, - { - "assignments": [ - null, - null, - null, - 2870, - null, - null - ], - "declarations": [ - null, - null, - null, { "constant": false, - "id": 2870, + "id": 4395, "name": "lastWithdrawalWindow", "nodeType": "VariableDeclaration", - "scope": 2885, - "src": "8266:27:4", + "scope": 4410, + "src": "12412:27:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25097,10 +34821,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2869, + "id": 4394, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "8266:6:4", + "src": "12412:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -25112,18 +34836,18 @@ null, null ], - "id": 2875, + "id": 4400, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 2873, - "name": "lastIndex", + "id": 4398, + "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2847, - "src": "8324:9:4", + "referencedDeclaration": 4377, + "src": "12470:5:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -25139,32 +34863,32 @@ ], "expression": { "argumentTypes": null, - "id": 2871, + "id": 4396, "name": "crowdsale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2022, - "src": "8301:9:4", + "referencedDeclaration": 3210, + "src": "12447:9:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } }, - "id": 2872, + "id": 4397, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getMilestone", "nodeType": "MemberAccess", - "referencedDeclaration": 4352, - "src": "8301:22:4", + "referencedDeclaration": 1129, + "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": 2874, + "id": 4399, "isConstant": false, "isLValue": false, "isPure": false, @@ -25172,14 +34896,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8301:33:4", + "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": "8260:74:4" + "src": "12392:84:6" }, { "expression": { @@ -25188,7 +34912,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 2882, + "id": 4407, "isConstant": false, "isLValue": false, "isPure": false, @@ -25199,19 +34923,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2878, + "id": 4403, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2876, + "id": 4401, "name": "endDate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2863, - "src": "8352:7:4", + "referencedDeclaration": 4393, + "src": "12494:7:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -25221,18 +34945,18 @@ "operator": ">", "rightExpression": { "argumentTypes": null, - "id": 2877, + "id": 4402, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7296, - "src": "8362:3:4", + "referencedDeclaration": 10044, + "src": "12504:3:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "8352:13:4", + "src": "12494:13:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -25246,84 +34970,84 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2881, + "id": 4406, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2879, - "name": "lastWithdrawalWindow", + "id": 4404, + "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2870, - "src": "8369:20:4", + "referencedDeclaration": 10044, + "src": "12511:3:6", "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "nodeType": "BinaryOperation", - "operator": "<=", + "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 2880, - "name": "now", + "id": 4405, + "name": "lastWithdrawalWindow", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7296, - "src": "8393:3:4", + "referencedDeclaration": 4395, + "src": "12518:20:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_uint32", + "typeString": "uint32" } }, - "src": "8369:27:4", + "src": "12511:27:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "8352:44:4", + "src": "12494:44:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 2837, - "id": 2883, + "functionReturnParameters": 4375, + "id": 4408, "nodeType": "Return", - "src": "8345:51:4" + "src": "12487:51:6" } ] }, "documentation": null, - "id": 2885, + "id": 4410, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], - "name": "trancheTransferAllowed", + "name": "isWithdrawalWindowActive", "nodeType": "FunctionDefinition", "parameters": { - "id": 2834, + "id": 4372, "nodeType": "ParameterList", "parameters": [], - "src": "7950:2:4" + "src": "12236:2:6" }, "payable": false, "returnParameters": { - "id": 2837, + "id": 4375, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2836, + "id": 4374, "name": "", "nodeType": "VariableDeclaration", - "scope": 2885, - "src": "7974:4:4", + "scope": 4410, + "src": "12260:4:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25331,10 +35055,10 @@ "typeString": "bool" }, "typeName": { - "id": 2835, + "id": 4373, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "7974:4:4", + "src": "12260:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -25344,19 +35068,19 @@ "visibility": "internal" } ], - "src": "7973:6:4" + "src": "12259:6:6" }, - "scope": 2899, - "src": "7919:484:4", + "scope": 4424, + "src": "12203:342:6", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2897, + "id": 4422, "nodeType": "Block", - "src": "8443:58:4", + "src": "12585:58:6", "statements": [ { "expression": { @@ -25368,7 +35092,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2893, + "id": 4418, "isConstant": false, "isLValue": false, "isPure": false, @@ -25377,18 +35101,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2890, + "id": 4415, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "8461:3:4", + "referencedDeclaration": 10042, + "src": "12603:3:6", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2891, + "id": 4416, "isConstant": false, "isLValue": false, "isPure": false, @@ -25396,7 +35120,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8461:10:4", + "src": "12603:10:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -25406,18 +35130,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 2892, + "id": 4417, "name": "sender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2887, - "src": "8475:6:4", + "referencedDeclaration": 4412, + "src": "12617:6:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "8461:20:4", + "src": "12603:20:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -25431,21 +35155,21 @@ "typeString": "bool" } ], - "id": 2889, + "id": 4414, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "8453:7:4", + "referencedDeclaration": 10045, + "src": "12595:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2894, + "id": 4419, "isConstant": false, "isLValue": false, "isPure": false, @@ -25453,38 +35177,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8453:29:4", + "src": "12595:29:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2895, + "id": 4420, "nodeType": "ExpressionStatement", - "src": "8453:29:4" + "src": "12595:29:6" }, { - "id": 2896, + "id": 4421, "nodeType": "PlaceholderStatement", - "src": "8493:1:4" + "src": "12635:1:6" } ] }, "documentation": null, - "id": 2898, + "id": 4423, "name": "onlyFrom", "nodeType": "ModifierDefinition", "parameters": { - "id": 2888, + "id": 4413, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2887, + "id": 4412, "name": "sender", "nodeType": "VariableDeclaration", - "scope": 2898, - "src": "8427:14:4", + "scope": 4423, + "src": "12569:14:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25492,10 +35216,10 @@ "typeString": "address" }, "typeName": { - "id": 2886, + "id": 4411, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8427:7:4", + "src": "12569:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -25505,23 +35229,30 @@ "visibility": "internal" } ], - "src": "8426:16:4" + "src": "12568:16:6" }, - "src": "8409:92:4", + "src": "12551:92:6", "visibility": "internal" } ], - "scope": 2900, - "src": "387:8116:4" + "scope": 4425, + "src": "497:12148:6" } ], - "src": "0:8504:4" + "src": "0:12646:6" }, "compiler": { "name": "solc", "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, - "networks": {}, + "networks": { + "4": { + "events": {}, + "links": { + "FundAccount": "0x4adffa67c9560ecb80b9016527c9529992c3870b" + } + } + }, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-02T11:52:56.719Z" + "updatedAt": "2018-10-22T07:59:52.083Z" } \ No newline at end of file diff --git a/build/contracts/W12FundCrowdsaleStub.json b/build/contracts/W12FundCrowdsaleStub.json index 43eaa826..dc6d84be 100644 --- a/build/contracts/W12FundCrowdsaleStub.json +++ b/build/contracts/W12FundCrowdsaleStub.json @@ -133,6 +133,10 @@ { "name": "nameAndDescriptionsOfMilestones", "type": "bytes" + }, + { + "name": "paymentMethodsList", + "type": "bytes32[]" } ], "name": "setup", @@ -438,7 +442,16 @@ }, { "constant": false, - "inputs": [], + "inputs": [ + { + "name": "method", + "type": "bytes32" + }, + { + "name": "amount", + "type": "uint256" + } + ], "name": "buyTokens", "outputs": [], "payable": true, @@ -446,24 +459,24 @@ "type": "function" } ], - "bytecode": "0x6080604052600160025534801561001557600080fd5b50604051602080610b5d833981016040525160005560018054600160a060020a03191633179055610b128061004b6000396000f30060806040526004361061011c5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166314f66d34811461011e57806317410a071461014c578063208853c91461019c5780632442e1cb146101c65780632e325020146102fc5780633baba4d7146103ed5780634090cb641461040257806354fd4d5014610433578063564566a814610448578063715018a614610471578063770bd64714610486578063820a3435146104a35780638da5cb5b146104ee578063a4fd6f5614610448578063d0febe4c14610503578063d119d6cd1461050b578063d6d65f3d1461052c578063daa4cf8814610541578063e93b054014610556578063f2fde38b1461056e578063f77e08681461058f575b005b34801561012a57600080fd5b506101336105ac565b6040805192835290151560208301528051918290030190f35b34801561015857600080fd5b5061011c60246004803582810192908201359181358083019290820135916044358083019290820135916064358083019290820135916084359182019101356105b9565b3480156101a857600080fd5b506101b46004356105c5565b60408051918252519081900360200190f35b3480156101d257600080fd5b506101de6004356105cb565b604051808763ffffffff1663ffffffff1681526020018681526020018563ffffffff1663ffffffff1681526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019080838360005b8381101561025b578181015183820152602001610243565b50505050905090810190601f1680156102885780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156102bb5781810151838201526020016102a3565b50505050905090810190601f1680156102e85780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b34801561030857600080fd5b50610314600435610745565b604051808763ffffffff1663ffffffff1681526020018663ffffffff1663ffffffff1681526020018581526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561039457818101518382015260200161037c565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156103d35781810151838201526020016103bb565b505050509050019850505050505050505060405180910390f35b3480156103f957600080fd5b506101b4610757565b34801561040e57600080fd5b5061041761075c565b60408051600160a060020a039092168252519081900360200190f35b34801561043f57600080fd5b506101b461076c565b34801561045457600080fd5b5061045d610757565b604080519115158252519081900360200190f35b34801561047d57600080fd5b5061011c610772565b34801561049257600080fd5b5061011c60043560243515156107e0565b3480156104af57600080fd5b5061011c60048035906024803563ffffffff9081169260443592606435831692608435169160a43580830192908201359160c4359182019101356107f9565b3480156104fa57600080fd5b50610417610940565b61011c61094f565b34801561051757600080fd5b5061011c600160a060020a0360043516610951565b34801561053857600080fd5b50610133610980565b34801561054d57600080fd5b5061013361098d565b34801561056257600080fd5b5061011c600435610994565b34801561057a57600080fd5b5061011c600160a060020a0360043516610997565b34801561059b57600080fd5b5061011c60043560243515156109b7565b60055460065460ff169091565b50505050505050505050565b50600090565b600081815260076020908152604080832080546001808301546002808501546003860180548851601f60001997831615610100029790970190911693909304948501899004890283018901909752838252889788978897606097889763ffffffff91821697968683169664010000000090049092169460049093019284919083018282801561069b5780601f106106705761010080835404028352916020019161069b565b820191906000526020600020905b81548152906001019060200180831161067e57829003601f168201915b5050845460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152959750869450925084019050828280156107295780601f106106fe57610100808354040283529160200191610729565b820191906000526020600020905b81548152906001019060200180831161070c57829003601f168201915b5050505050905095509550955095509550955091939550919395565b60008060008060608091939550919395565b600090565b600854600160a060020a03165b90565b60005481565b600154600160a060020a0316331461078957600080fd5b600154604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26001805473ffffffffffffffffffffffffffffffffffffffff19169055565b6003919091556004805460ff1916911515919091179055565b60c0604051908101604052808963ffffffff1681526020018881526020018763ffffffff1681526020018663ffffffff16815260200185858080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050815260200183838080601f0160208091040260200160405190810160405280939291908181526020018383808284375050509290935250505060008a8152600760209081526040918290208351815463ffffffff91821663ffffffff1991821617835585840151600184015593850151600283018054606088015184166401000000000267ffffffff0000000019939094169616959095171617909255608083015180516109169260038501920190610a4e565b5060a08201518051610932916004840191602090910190610a4e565b505050505050505050505050565b600154600160a060020a031681565b565b6008805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60035460045460ff169091565b6000809091565b50565b600154600160a060020a031633146109ae57600080fd5b610994816109d0565b6005919091556006805460ff1916911515919091179055565b600160a060020a03811615156109e557600080fd5b600154604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610a8f57805160ff1916838001178555610abc565b82800160010185558215610abc579182015b82811115610abc578251825591602001919060010190610aa1565b50610ac8929150610acc565b5090565b61076991905b80821115610ac85760008155600101610ad25600a165627a7a7230582097f561c2c88169f8e3ded69254a229a0307d66ee7e9d99f8f9c222f761c5a0650029", - "deployedBytecode": "0x60806040526004361061011c5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166314f66d34811461011e57806317410a071461014c578063208853c91461019c5780632442e1cb146101c65780632e325020146102fc5780633baba4d7146103ed5780634090cb641461040257806354fd4d5014610433578063564566a814610448578063715018a614610471578063770bd64714610486578063820a3435146104a35780638da5cb5b146104ee578063a4fd6f5614610448578063d0febe4c14610503578063d119d6cd1461050b578063d6d65f3d1461052c578063daa4cf8814610541578063e93b054014610556578063f2fde38b1461056e578063f77e08681461058f575b005b34801561012a57600080fd5b506101336105ac565b6040805192835290151560208301528051918290030190f35b34801561015857600080fd5b5061011c60246004803582810192908201359181358083019290820135916044358083019290820135916064358083019290820135916084359182019101356105b9565b3480156101a857600080fd5b506101b46004356105c5565b60408051918252519081900360200190f35b3480156101d257600080fd5b506101de6004356105cb565b604051808763ffffffff1663ffffffff1681526020018681526020018563ffffffff1663ffffffff1681526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019080838360005b8381101561025b578181015183820152602001610243565b50505050905090810190601f1680156102885780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b838110156102bb5781810151838201526020016102a3565b50505050905090810190601f1680156102e85780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b34801561030857600080fd5b50610314600435610745565b604051808763ffffffff1663ffffffff1681526020018663ffffffff1663ffffffff1681526020018581526020018463ffffffff1663ffffffff1681526020018060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561039457818101518382015260200161037c565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156103d35781810151838201526020016103bb565b505050509050019850505050505050505060405180910390f35b3480156103f957600080fd5b506101b4610757565b34801561040e57600080fd5b5061041761075c565b60408051600160a060020a039092168252519081900360200190f35b34801561043f57600080fd5b506101b461076c565b34801561045457600080fd5b5061045d610757565b604080519115158252519081900360200190f35b34801561047d57600080fd5b5061011c610772565b34801561049257600080fd5b5061011c60043560243515156107e0565b3480156104af57600080fd5b5061011c60048035906024803563ffffffff9081169260443592606435831692608435169160a43580830192908201359160c4359182019101356107f9565b3480156104fa57600080fd5b50610417610940565b61011c61094f565b34801561051757600080fd5b5061011c600160a060020a0360043516610951565b34801561053857600080fd5b50610133610980565b34801561054d57600080fd5b5061013361098d565b34801561056257600080fd5b5061011c600435610994565b34801561057a57600080fd5b5061011c600160a060020a0360043516610997565b34801561059b57600080fd5b5061011c60043560243515156109b7565b60055460065460ff169091565b50505050505050505050565b50600090565b600081815260076020908152604080832080546001808301546002808501546003860180548851601f60001997831615610100029790970190911693909304948501899004890283018901909752838252889788978897606097889763ffffffff91821697968683169664010000000090049092169460049093019284919083018282801561069b5780601f106106705761010080835404028352916020019161069b565b820191906000526020600020905b81548152906001019060200180831161067e57829003601f168201915b5050845460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152959750869450925084019050828280156107295780601f106106fe57610100808354040283529160200191610729565b820191906000526020600020905b81548152906001019060200180831161070c57829003601f168201915b5050505050905095509550955095509550955091939550919395565b60008060008060608091939550919395565b600090565b600854600160a060020a03165b90565b60005481565b600154600160a060020a0316331461078957600080fd5b600154604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26001805473ffffffffffffffffffffffffffffffffffffffff19169055565b6003919091556004805460ff1916911515919091179055565b60c0604051908101604052808963ffffffff1681526020018881526020018763ffffffff1681526020018663ffffffff16815260200185858080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050815260200183838080601f0160208091040260200160405190810160405280939291908181526020018383808284375050509290935250505060008a8152600760209081526040918290208351815463ffffffff91821663ffffffff1991821617835585840151600184015593850151600283018054606088015184166401000000000267ffffffff0000000019939094169616959095171617909255608083015180516109169260038501920190610a4e565b5060a08201518051610932916004840191602090910190610a4e565b505050505050505050505050565b600154600160a060020a031681565b565b6008805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60035460045460ff169091565b6000809091565b50565b600154600160a060020a031633146109ae57600080fd5b610994816109d0565b6005919091556006805460ff1916911515919091179055565b600160a060020a03811615156109e557600080fd5b600154604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610a8f57805160ff1916838001178555610abc565b82800160010185558215610abc579182015b82811115610abc578251825591602001919060010190610aa1565b50610ac8929150610acc565b5090565b61076991905b80821115610ac85760008155600101610ad25600a165627a7a7230582097f561c2c88169f8e3ded69254a229a0307d66ee7e9d99f8f9c222f761c5a0650029", - "sourceMap": "476:2977:5:-;;;487:1:28;657:51;;968:56:5;8:9:-1;5:2;;;30:1;27;20:12;5:2;968:56:5;;;;;;;;;;;;;123:7:26;:18;567:5:31;:18;;-1:-1:-1;;;;;;567:18:31;575:10;567:18;;;476:2977:5;;;;;;", - "deployedSourceMap": "476:2977:5:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2717:151;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2717:151:5;;;;;;;;;;;;;;;;;;;;;;;;;;;1082:255;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1082:255:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3175:77;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3175:77:5;;;;;;;;;;;;;;;;;;;;;1513:438;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1513:438: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;1513:438:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1513:438: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;1513:438:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2298:101;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2298:101: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;2298:101: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;2298:101:5;;;;;;;;;;;;;;;;;;;;;;;3023:59;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3023:59:5;;;;1343:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1343:83:5;;;;;;;;-1:-1:-1;;;;;1343:83:5;;;;;;;;;;;;;;53:19:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;53:19:26;;;;3314:55:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3314:55:5;;;;;;;;;;;;;;;;;;;;;;1001:111:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1001:111:31;;;;2559:152:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2559:152:5;;;;;;;;;1957:335;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1957:335:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;238:20:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:31;;;;3411:40:5;;;;1432:75;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1432:75:5;-1:-1:-1;;;;;1432:75:5;;;;;2405:148;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2405:148:5;;;;3088:81;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3088:81:5;;;;1030:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1030:46:5;;;;;1274:103:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1274:103:31;-1:-1:-1;;;;;1274:103:31;;;;;2874:143:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2874:143:5;;;;;;;;;2717:151;2815:19;;2836:24;;;;2717:151;;:::o;1082:255::-;;;;;;;;;;;:::o;3175:77::-;-1:-1:-1;3238:10:5;;3175:77::o;1513:438::-;1570:6;1645:25;;;:18;:25;;;;;;;;:33;;;1692:40;;;;1746:37;;;;;1853:30;;;1624:320;;;;;-1:-1:-1;;1624:320:5;;;;1645:33;1624:320;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1570:6;;;;;;1600:5;;;;1645:33;;;;;1692:40;1746:37;;;;1797:42;;;;;;;;1897:37;;;;1853:30;;1624:320;;;1853:30;1624:320;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1624:320:5;;;;;;;;;;;;;-1:-1:-1;;1624:320:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1624:320:5;;-1:-1:-1;1624:320:5;-1:-1:-1;1624:320:5;;;-1:-1:-1;1624:320:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1513:438;;;;;;;:::o;2298:101::-;2351:6;2359;2367:4;2373:6;2381;2389;2298:101;;;;;;;:::o;3023:59::-;3074:4;3023:59;:::o;1343:83::-;1412:7;;-1:-1:-1;;;;;1412:7:5;1343:83;;:::o;53:19:26:-;;;;:::o;1001:111:31:-;719:5;;-1:-1:-1;;;;;719:5:31;705:10;:19;697:28;;;;;;1077:5;;1058:25;;-1:-1:-1;;;;;1077:5:31;;;;1058:25;;1077:5;;1058:25;1089:5;:18;;-1:-1:-1;;1089:18:31;;;1001:111::o;2559:152:5:-;2637:22;:26;;;;2673:27;:31;;-1:-1:-1;;2673:31:5;;;;;;;;;;2559:152::o;1957:335::-;2099:186;;;;;;;;;2132:1;2099:186;;;;;;2163:1;2099:186;;;;2191:1;2099:186;;;;;;2224:1;2099:186;;;;;;2245:1;;2099:186;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2273:1;;2099:186;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2099:186:5;;;;-1:-1:-1;;;2073:23:5;;;;:18;:23;;;;;;;;;:212;;;;;;;;-1:-1:-1;;2073:212:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2073:212:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;2073:212:5;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;1957:335:5:o;238:20:31:-;;;-1:-1:-1;;;;;238:20:31;;:::o;3411:40:5:-;:::o;1432:75::-;1489:7;:11;;-1:-1:-1;;1489:11:5;-1:-1:-1;;;;;1489:11:5;;;;;;;;;;1432:75::o;2405:148::-;2494:22;;2518:27;;;;2405:148;;:::o;3088:81::-;3143:10;3155;3088:81;;:::o;1030:46::-;;:::o;1274:103:31:-;719:5;;-1:-1:-1;;;;;719:5:31;705:10;:19;697:28;;;;;;1343:29;1362:9;1343:18;:29::i;2874:143:5:-;2949:19;:23;;;;2982:24;:28;;-1:-1:-1;;2982:28:5;;;;;;;;;;2874:143::o;1512:171:31:-;-1:-1:-1;;;;;1582:23:31;;;;1574:32;;;;;;1638:5;;1617:38;;-1:-1:-1;;;;;1617:38:31;;;;1638:5;;1617:38;;1638:5;;1617:38;1661:5;:17;;-1:-1:-1;;1661:17:31;-1:-1:-1;;;;;1661:17:31;;;;;;;;;;1512:171::o;476:2977:5:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;476:2977:5;;;-1:-1:-1;476:2977:5;:::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 \"solidity-bytes-utils/contracts/BytesLib.sol\";\nimport \"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\";\nimport \"./interfaces/IW12Crowdsale.sol\";\nimport \"./interfaces/IW12Fund.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 WToken _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 ) external {}\n\n function getWToken() external view returns (WToken) {\n return _wtoken;\n }\n\n function _getWTokenMockData(WToken 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() payable external {}\n}\n", - "sourcePath": "/home/circleci/code/contracts/W12FundCrowdsaleStub.sol", + "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", + "sourcePath": "/home/circleci/code/contracts/mocks/crowdsale/W12FundCrowdsaleStub.sol", "ast": { - "absolutePath": "/home/circleci/code/contracts/W12FundCrowdsaleStub.sol", + "absolutePath": "/home/circleci/code/contracts/mocks/crowdsale/W12FundCrowdsaleStub.sol", "exportedSymbols": { "W12FundCrowdsaleStub": [ - 3194 + 6564 ] }, - "id": 3195, + "id": 6565, "nodeType": "SourceUnit", "nodes": [ { - "id": 2901, + "id": 6263, "literals": [ "solidity", "^", @@ -471,104 +484,115 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:5" + "src": "0:24:19" }, { "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 2902, + "id": 6264, "nodeType": "ImportDirective", - "scope": 3195, - "sourceUnit": 6941, - "src": "26:63:5", + "scope": 6565, + "sourceUnit": 9689, + "src": "26:63:19", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "openzeppelin-solidity/contracts/ReentrancyGuard.sol", "file": "openzeppelin-solidity/contracts/ReentrancyGuard.sol", - "id": 2903, + "id": 6265, "nodeType": "ImportDirective", - "scope": 3195, - "sourceUnit": 6691, - "src": "90:61:5", + "scope": 6565, + "sourceUnit": 9332, + "src": "90:61:19", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 2904, + "id": 6266, "nodeType": "ImportDirective", - "scope": 3195, - "sourceUnit": 6855, - "src": "152:59:5", + "scope": 6565, + "sourceUnit": 9603, + "src": "152:59:19", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", + "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", + "id": 6267, + "nodeType": "ImportDirective", + "scope": 6565, + "sourceUnit": 9766, + "src": "212:63:19", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "solidity-bytes-utils/contracts/BytesLib.sol", "file": "solidity-bytes-utils/contracts/BytesLib.sol", - "id": 2905, + "id": 6268, "nodeType": "ImportDirective", - "scope": 3195, - "sourceUnit": 7280, - "src": "212:53:5", + "scope": 6565, + "sourceUnit": 10028, + "src": "276:53:19", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "id": 2906, + "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Crowdsale.sol", + "file": "../../crowdsale/IW12Crowdsale.sol", + "id": 6269, "nodeType": "ImportDirective", - "scope": 3195, - "sourceUnit": 7018, - "src": "266:63:5", + "scope": 6565, + "sourceUnit": 1205, + "src": "330:43:19", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/home/circleci/code/contracts/interfaces/IW12Crowdsale.sol", - "file": "./interfaces/IW12Crowdsale.sol", - "id": 2907, + "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Fund.sol", + "file": "../../crowdsale/IW12Fund.sol", + "id": 6270, "nodeType": "ImportDirective", - "scope": 3195, - "sourceUnit": 4427, - "src": "330:40:5", + "scope": 6565, + "sourceUnit": 1242, + "src": "374:38:19", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/home/circleci/code/contracts/interfaces/IW12Fund.sol", - "file": "./interfaces/IW12Fund.sol", - "id": 2908, + "absolutePath": "/home/circleci/code/contracts/token/IWToken.sol", + "file": "../../token/IWToken.sol", + "id": 6271, "nodeType": "ImportDirective", - "scope": 3195, - "sourceUnit": 4485, - "src": "371:35:5", + "scope": 6565, + "sourceUnit": 7631, + "src": "413:33:19", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/libs/Percent.sol", - "file": "./libs/Percent.sol", - "id": 2909, + "file": "../../libs/Percent.sol", + "id": 6272, "nodeType": "ImportDirective", - "scope": 3195, - "sourceUnit": 4632, - "src": "407:28:5", + "scope": 6565, + "sourceUnit": 5104, + "src": "447:32:19", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/versioning/Versionable.sol", - "file": "./versioning/Versionable.sol", - "id": 2910, + "file": "../../versioning/Versionable.sol", + "id": 6273, "nodeType": "ImportDirective", - "scope": 3195, - "sourceUnit": 6510, - "src": "436:38:5", + "scope": 6565, + "sourceUnit": 9071, + "src": "480:42:19", "symbolAliases": [], "unitAlias": "" }, @@ -578,102 +602,102 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 2911, + "id": 6274, "name": "Versionable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6509, - "src": "509:11:5", + "referencedDeclaration": 9070, + "src": "557:11:19", "typeDescriptions": { - "typeIdentifier": "t_contract$_Versionable_$6509", + "typeIdentifier": "t_contract$_Versionable_$9070", "typeString": "contract Versionable" } }, - "id": 2912, + "id": 6275, "nodeType": "InheritanceSpecifier", - "src": "509:11:5" + "src": "557:11:19" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 2913, + "id": 6276, "name": "IW12Crowdsale", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4426, - "src": "522:13:5", + "referencedDeclaration": 1204, + "src": "570:13:19", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } }, - "id": 2914, + "id": 6277, "nodeType": "InheritanceSpecifier", - "src": "522:13:5" + "src": "570:13:19" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 2915, + "id": 6278, "name": "Ownable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6940, - "src": "537:7:5", + "referencedDeclaration": 9688, + "src": "585:7:19", "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$6940", + "typeIdentifier": "t_contract$_Ownable_$9688", "typeString": "contract Ownable" } }, - "id": 2916, + "id": 6279, "nodeType": "InheritanceSpecifier", - "src": "537:7:5" + "src": "585:7:19" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 2917, + "id": 6280, "name": "ReentrancyGuard", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6690, - "src": "546:15:5", + "referencedDeclaration": 9331, + "src": "594:15:19", "typeDescriptions": { - "typeIdentifier": "t_contract$_ReentrancyGuard_$6690", + "typeIdentifier": "t_contract$_ReentrancyGuard_$9331", "typeString": "contract ReentrancyGuard" } }, - "id": 2918, + "id": 6281, "nodeType": "InheritanceSpecifier", - "src": "546:15:5" + "src": "594:15:19" } ], "contractDependencies": [ - 4426, - 6509, - 6690, - 6940 + 1204, + 9070, + 9331, + 9688 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 3194, + "id": 6564, "linearizedBaseContracts": [ - 3194, - 6690, - 6940, - 4426, - 6509 + 6564, + 9331, + 9688, + 1204, + 9070 ], "name": "W12FundCrowdsaleStub", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 2920, + "id": 6283, "name": "_currentMilestoneIndex", "nodeType": "VariableDeclaration", - "scope": 3194, - "src": "568:27:5", + "scope": 6564, + "src": "616:27:19", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -681,10 +705,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2919, + "id": 6282, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "568:4:5", + "src": "616:4:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -695,11 +719,11 @@ }, { "constant": false, - "id": 2922, + "id": 6285, "name": "_currentMilestoneIndexFound", "nodeType": "VariableDeclaration", - "scope": 3194, - "src": "601:32:5", + "scope": 6564, + "src": "649:32:19", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -707,10 +731,10 @@ "typeString": "bool" }, "typeName": { - "id": 2921, + "id": 6284, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "601:4:5", + "src": "649:4:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -721,11 +745,11 @@ }, { "constant": false, - "id": 2924, + "id": 6287, "name": "_lastMilestoneIndex", "nodeType": "VariableDeclaration", - "scope": 3194, - "src": "639:24:5", + "scope": 6564, + "src": "687:24:19", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -733,10 +757,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2923, + "id": 6286, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "639:4:5", + "src": "687:4:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -747,11 +771,11 @@ }, { "constant": false, - "id": 2926, + "id": 6289, "name": "_lastMilestoneIndexFound", "nodeType": "VariableDeclaration", - "scope": 3194, - "src": "669:29:5", + "scope": 6564, + "src": "717:29:19", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -759,10 +783,10 @@ "typeString": "bool" }, "typeName": { - "id": 2925, + "id": 6288, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "669:4:5", + "src": "717:4:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -773,44 +797,44 @@ }, { "constant": false, - "id": 2930, + "id": 6293, "name": "_currentMilestones", "nodeType": "VariableDeclaration", - "scope": 3194, - "src": "704:46:5", + "scope": 6564, + "src": "752:46:19", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$2945_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$6308_storage_$", "typeString": "mapping(uint256 => struct W12FundCrowdsaleStub.Milestone)" }, "typeName": { - "id": 2929, + "id": 6292, "keyType": { - "id": 2927, + "id": 6290, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "713:4:5", + "src": "761:4:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Mapping", - "src": "704:27:5", + "src": "752:27:19", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$2945_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$6308_storage_$", "typeString": "mapping(uint256 => struct W12FundCrowdsaleStub.Milestone)" }, "valueType": { "contractScope": null, - "id": 2928, + "id": 6291, "name": "Milestone", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2945, - "src": "721:9:5", + "referencedDeclaration": 6308, + "src": "769:9:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$2945_storage_ptr", + "typeIdentifier": "t_struct$_Milestone_$6308_storage_ptr", "typeString": "struct W12FundCrowdsaleStub.Milestone" } } @@ -820,27 +844,27 @@ }, { "constant": false, - "id": 2932, + "id": 6295, "name": "_wtoken", "nodeType": "VariableDeclaration", - "scope": 3194, - "src": "756:14:5", + "scope": 6564, + "src": "804:15:19", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" }, "typeName": { "contractScope": null, - "id": 2931, - "name": "WToken", + "id": 6294, + "name": "IWToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5925, - "src": "756:6:5", + "referencedDeclaration": 7630, + "src": "804:7:19", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" } }, "value": null, @@ -848,15 +872,15 @@ }, { "canonicalName": "W12FundCrowdsaleStub.Milestone", - "id": 2945, + "id": 6308, "members": [ { "constant": false, - "id": 2934, + "id": 6297, "name": "endDate", "nodeType": "VariableDeclaration", - "scope": 2945, - "src": "804:14:5", + "scope": 6308, + "src": "853:14:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -864,10 +888,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2933, + "id": 6296, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "804:6:5", + "src": "853:6:19", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -878,11 +902,11 @@ }, { "constant": false, - "id": 2936, + "id": 6299, "name": "tranchePercent", "nodeType": "VariableDeclaration", - "scope": 2945, - "src": "828:19:5", + "scope": 6308, + "src": "877:19:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -890,10 +914,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2935, + "id": 6298, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "828:4:5", + "src": "877:4:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -904,11 +928,11 @@ }, { "constant": false, - "id": 2938, + "id": 6301, "name": "voteEndDate", "nodeType": "VariableDeclaration", - "scope": 2945, - "src": "857:18:5", + "scope": 6308, + "src": "906:18:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -916,10 +940,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2937, + "id": 6300, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "857:6:5", + "src": "906:6:19", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -930,11 +954,11 @@ }, { "constant": false, - "id": 2940, + "id": 6303, "name": "withdrawalWindow", "nodeType": "VariableDeclaration", - "scope": 2945, - "src": "885:23:5", + "scope": 6308, + "src": "934:23:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -942,10 +966,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2939, + "id": 6302, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "885:6:5", + "src": "934:6:19", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -956,11 +980,11 @@ }, { "constant": false, - "id": 2942, + "id": 6305, "name": "name", "nodeType": "VariableDeclaration", - "scope": 2945, - "src": "918:10:5", + "scope": 6308, + "src": "967:10:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -968,10 +992,10 @@ "typeString": "bytes" }, "typeName": { - "id": 2941, + "id": 6304, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "918:5:5", + "src": "967:5:19", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -982,11 +1006,11 @@ }, { "constant": false, - "id": 2944, + "id": 6307, "name": "description", "nodeType": "VariableDeclaration", - "scope": 2945, - "src": "938:17:5", + "scope": 6308, + "src": "987:17:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -994,10 +1018,10 @@ "typeString": "bytes" }, "typeName": { - "id": 2943, + "id": 6306, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "938:5:5", + "src": "987:5:19", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1009,19 +1033,19 @@ ], "name": "Milestone", "nodeType": "StructDefinition", - "scope": 3194, - "src": "777:185:5", + "scope": 6564, + "src": "826:185:19", "visibility": "public" }, { "body": { - "id": 2953, + "id": 6316, "nodeType": "Block", - "src": "1022:2:5", + "src": "1071:2:19", "statements": [] }, "documentation": null, - "id": 2954, + "id": 6317, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -1030,49 +1054,49 @@ "arguments": [ { "argumentTypes": null, - "id": 2950, + "id": 6313, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2947, - "src": "1006:7:5", + "referencedDeclaration": 6310, + "src": "1055:7:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 2951, + "id": 6314, "modifierName": { "argumentTypes": null, - "id": 2949, + "id": 6312, "name": "Versionable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6509, - "src": "994:11:5", + "referencedDeclaration": 9070, + "src": "1043:11:19", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Versionable_$6509_$", + "typeIdentifier": "t_type$_t_contract$_Versionable_$9070_$", "typeString": "type(contract Versionable)" } }, "nodeType": "ModifierInvocation", - "src": "994:20:5" + "src": "1043:20:19" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 2948, + "id": 6311, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2947, + "id": 6310, "name": "version", "nodeType": "VariableDeclaration", - "scope": 2954, - "src": "980:12:5", + "scope": 6317, + "src": "1029:12:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1080,10 +1104,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2946, + "id": 6309, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "980:4:5", + "src": "1029:4:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1093,30 +1117,30 @@ "visibility": "internal" } ], - "src": "979:14:5" + "src": "1028:14:19" }, "payable": false, "returnParameters": { - "id": 2952, + "id": 6315, "nodeType": "ParameterList", "parameters": [], - "src": "1022:0:5" + "src": "1071:0:19" }, - "scope": 3194, - "src": "968:56:5", + "scope": 6564, + "src": "1017:56:19", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2959, + "id": 6322, "nodeType": "Block", - "src": "1074:2:5", + "src": "1123:2:19", "statements": [] }, "documentation": null, - "id": 2960, + "id": 6323, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1124,16 +1148,16 @@ "name": "setParameters", "nodeType": "FunctionDefinition", "parameters": { - "id": 2957, + "id": 6320, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2956, + "id": 6319, "name": "price", "nodeType": "VariableDeclaration", - "scope": 2960, - "src": "1053:10:5", + "scope": 6323, + "src": "1102:10:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1141,10 +1165,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2955, + "id": 6318, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1053:4:5", + "src": "1102:4:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1154,30 +1178,30 @@ "visibility": "internal" } ], - "src": "1052:12:5" + "src": "1101:12:19" }, "payable": false, "returnParameters": { - "id": 2958, + "id": 6321, "nodeType": "ParameterList", "parameters": [], - "src": "1074:0:5" + "src": "1123:0:19" }, - "scope": 3194, - "src": "1030:46:5", + "scope": 6564, + "src": "1079:46:19", "stateMutability": "nonpayable", - "superFunction": 4309, + "superFunction": 1083, "visibility": "external" }, { "body": { - "id": 2981, + "id": 6347, "nodeType": "Block", - "src": "1335:2:5", + "src": "1422:2:19", "statements": [] }, "documentation": null, - "id": 2982, + "id": 6348, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1185,16 +1209,16 @@ "name": "setup", "nodeType": "FunctionDefinition", "parameters": { - "id": 2979, + "id": 6345, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2965, + "id": 6328, "name": "parametersOfStages", "nodeType": "VariableDeclaration", - "scope": 2982, - "src": "1106:28:5", + "scope": 6348, + "src": "1155:28:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1204,27 +1228,27 @@ "typeName": { "baseType": { "baseType": { - "id": 2961, + "id": 6324, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1106:4:5", + "src": "1155:4:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2963, + "id": 6326, "length": { "argumentTypes": null, "hexValue": "36", - "id": 2962, + "id": 6325, "isConstant": false, "isLValue": false, "isPure": false, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1111:1:5", + "src": "1160:1:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": null, @@ -1233,16 +1257,16 @@ "value": "6" }, "nodeType": "ArrayTypeName", - "src": "1106:7:5", + "src": "1155:7:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_storage_ptr", "typeString": "uint256[6]" } }, - "id": 2964, + "id": 6327, "length": null, "nodeType": "ArrayTypeName", - "src": "1106:9:5", + "src": "1155:9:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$6_storage_$dyn_storage_ptr", "typeString": "uint256[6][]" @@ -1253,11 +1277,11 @@ }, { "constant": false, - "id": 2968, + "id": 6331, "name": "bonusConditionsOfStages", "nodeType": "VariableDeclaration", - "scope": 2982, - "src": "1144:30:5", + "scope": 6348, + "src": "1193:30:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1266,19 +1290,19 @@ }, "typeName": { "baseType": { - "id": 2966, + "id": 6329, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1144:4:5", + "src": "1193:4:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2967, + "id": 6330, "length": null, "nodeType": "ArrayTypeName", - "src": "1144:6:5", + "src": "1193:6:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -1289,11 +1313,11 @@ }, { "constant": false, - "id": 2973, + "id": 6336, "name": "parametersOfMilestones", "nodeType": "VariableDeclaration", - "scope": 2982, - "src": "1184:32:5", + "scope": 6348, + "src": "1233:32:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1303,27 +1327,27 @@ "typeName": { "baseType": { "baseType": { - "id": 2969, + "id": 6332, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1184:4:5", + "src": "1233:4:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2971, + "id": 6334, "length": { "argumentTypes": null, "hexValue": "34", - "id": 2970, + "id": 6333, "isConstant": false, "isLValue": false, "isPure": false, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1189:1:5", + "src": "1238:1:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": null, @@ -1332,16 +1356,16 @@ "value": "4" }, "nodeType": "ArrayTypeName", - "src": "1184:7:5", + "src": "1233:7:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_storage_ptr", "typeString": "uint256[4]" } }, - "id": 2972, + "id": 6335, "length": null, "nodeType": "ArrayTypeName", - "src": "1184:9:5", + "src": "1233:9:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$4_storage_$dyn_storage_ptr", "typeString": "uint256[4][]" @@ -1352,11 +1376,11 @@ }, { "constant": false, - "id": 2976, + "id": 6339, "name": "nameAndDescriptionsOffsetOfMilestones", "nodeType": "VariableDeclaration", - "scope": 2982, - "src": "1226:46:5", + "scope": 6348, + "src": "1275:46:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1365,19 +1389,19 @@ }, "typeName": { "baseType": { - "id": 2974, + "id": 6337, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "1226:6:5", + "src": "1275:6:19", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 2975, + "id": 6338, "length": null, "nodeType": "ArrayTypeName", - "src": "1226:8:5", + "src": "1275:8:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", "typeString": "uint32[]" @@ -1388,11 +1412,11 @@ }, { "constant": false, - "id": 2978, + "id": 6341, "name": "nameAndDescriptionsOfMilestones", "nodeType": "VariableDeclaration", - "scope": 2982, - "src": "1282:37:5", + "scope": 6348, + "src": "1331:37:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1400,10 +1424,10 @@ "typeString": "bytes" }, "typeName": { - "id": 2977, + "id": 6340, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1282:5:5", + "src": "1331:5:19", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1411,52 +1435,88 @@ }, "value": null, "visibility": "internal" + }, + { + "constant": false, + "id": 6344, + "name": "paymentMethodsList", + "nodeType": "VariableDeclaration", + "scope": 6348, + "src": "1378:28:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 6342, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1378:7:19", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 6343, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1378:9:19", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "value": null, + "visibility": "internal" } ], - "src": "1096:229:5" + "src": "1145:267:19" }, "payable": false, "returnParameters": { - "id": 2980, + "id": 6346, "nodeType": "ParameterList", "parameters": [], - "src": "1335:0:5" + "src": "1422:0:19" }, - "scope": 3194, - "src": "1082:255:5", + "scope": 6564, + "src": "1131:293:19", "stateMutability": "nonpayable", - "superFunction": 4330, + "superFunction": 1107, "visibility": "external" }, { "body": { - "id": 2989, + "id": 6355, "nodeType": "Block", - "src": "1395:31:5", + "src": "1483:31:19", "statements": [ { "expression": { "argumentTypes": null, - "id": 2987, + "id": 6353, "name": "_wtoken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2932, - "src": "1412:7:5", + "referencedDeclaration": 6295, + "src": "1500:7:19", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" } }, - "functionReturnParameters": 2986, - "id": 2988, + "functionReturnParameters": 6352, + "id": 6354, "nodeType": "Return", - "src": "1405:14:5" + "src": "1493:14:19" } ] }, "documentation": null, - "id": 2990, + "id": 6356, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1464,109 +1524,109 @@ "name": "getWToken", "nodeType": "FunctionDefinition", "parameters": { - "id": 2983, + "id": 6349, "nodeType": "ParameterList", "parameters": [], - "src": "1361:2:5" + "src": "1448:2:19" }, "payable": false, "returnParameters": { - "id": 2986, + "id": 6352, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2985, + "id": 6351, "name": "", "nodeType": "VariableDeclaration", - "scope": 2990, - "src": "1387:6:5", + "scope": 6356, + "src": "1474:7:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" }, "typeName": { "contractScope": null, - "id": 2984, - "name": "WToken", + "id": 6350, + "name": "IWToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5925, - "src": "1387:6:5", + "referencedDeclaration": 7630, + "src": "1474:7:19", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" } }, "value": null, "visibility": "internal" } ], - "src": "1386:8:5" + "src": "1473:9:19" }, - "scope": 3194, - "src": "1343:83:5", + "scope": 6564, + "src": "1430:84:19", "stateMutability": "view", - "superFunction": 4335, + "superFunction": 1112, "visibility": "external" }, { "body": { - "id": 2999, + "id": 6365, "nodeType": "Block", - "src": "1479:28:5", + "src": "1568:28:19", "statements": [ { "expression": { "argumentTypes": null, - "id": 2997, + "id": 6363, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2995, + "id": 6361, "name": "_wtoken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2932, - "src": "1489:7:5", + "referencedDeclaration": 6295, + "src": "1578:7:19", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2996, + "id": 6362, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2992, - "src": "1499:1:5", + "referencedDeclaration": 6358, + "src": "1588:1:19", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" } }, - "src": "1489:11:5", + "src": "1578:11:19", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" } }, - "id": 2998, + "id": 6364, "nodeType": "ExpressionStatement", - "src": "1489:11:5" + "src": "1578:11:19" } ] }, "documentation": null, - "id": 3000, + "id": 6366, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1574,58 +1634,58 @@ "name": "_getWTokenMockData", "nodeType": "FunctionDefinition", "parameters": { - "id": 2993, + "id": 6359, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2992, + "id": 6358, "name": "a", "nodeType": "VariableDeclaration", - "scope": 3000, - "src": "1460:8:5", + "scope": 6366, + "src": "1548:9:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" }, "typeName": { "contractScope": null, - "id": 2991, - "name": "WToken", + "id": 6357, + "name": "IWToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5925, - "src": "1460:6:5", + "referencedDeclaration": 7630, + "src": "1548:7:19", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" } }, "value": null, "visibility": "internal" } ], - "src": "1459:10:5" + "src": "1547:11:19" }, "payable": false, "returnParameters": { - "id": 2994, + "id": 6360, "nodeType": "ParameterList", "parameters": [], - "src": "1479:0:5" + "src": "1568:0:19" }, - "scope": 3194, - "src": "1432:75:5", + "scope": 6564, + "src": "1520:76:19", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" }, { "body": { - "id": 3043, + "id": 6409, "nodeType": "Block", - "src": "1614:337:5", + "src": "1703:337:19", "statements": [ { "expression": { @@ -1637,26 +1697,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3017, + "id": 6383, "name": "_currentMilestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2930, - "src": "1645:18:5", + "referencedDeclaration": 6293, + "src": "1734:18:19", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$2945_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$6308_storage_$", "typeString": "mapping(uint256 => struct W12FundCrowdsaleStub.Milestone storage ref)" } }, - "id": 3019, + "id": 6385, "indexExpression": { "argumentTypes": null, - "id": 3018, + "id": 6384, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3002, - "src": "1664:5:5", + "referencedDeclaration": 6368, + "src": "1753:5:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1667,21 +1727,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1645:25:5", + "src": "1734:25:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$2945_storage", + "typeIdentifier": "t_struct$_Milestone_$6308_storage", "typeString": "struct W12FundCrowdsaleStub.Milestone storage ref" } }, - "id": 3020, + "id": 6386, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "endDate", "nodeType": "MemberAccess", - "referencedDeclaration": 2934, - "src": "1645:33:5", + "referencedDeclaration": 6297, + "src": "1734:33:19", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -1693,26 +1753,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3021, + "id": 6387, "name": "_currentMilestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2930, - "src": "1692:18:5", + "referencedDeclaration": 6293, + "src": "1781:18:19", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$2945_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$6308_storage_$", "typeString": "mapping(uint256 => struct W12FundCrowdsaleStub.Milestone storage ref)" } }, - "id": 3023, + "id": 6389, "indexExpression": { "argumentTypes": null, - "id": 3022, + "id": 6388, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3002, - "src": "1711:5:5", + "referencedDeclaration": 6368, + "src": "1800:5:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1723,21 +1783,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1692:25:5", + "src": "1781:25:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$2945_storage", + "typeIdentifier": "t_struct$_Milestone_$6308_storage", "typeString": "struct W12FundCrowdsaleStub.Milestone storage ref" } }, - "id": 3024, + "id": 6390, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "tranchePercent", "nodeType": "MemberAccess", - "referencedDeclaration": 2936, - "src": "1692:40:5", + "referencedDeclaration": 6299, + "src": "1781:40:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1749,26 +1809,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3025, + "id": 6391, "name": "_currentMilestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2930, - "src": "1746:18:5", + "referencedDeclaration": 6293, + "src": "1835:18:19", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$2945_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$6308_storage_$", "typeString": "mapping(uint256 => struct W12FundCrowdsaleStub.Milestone storage ref)" } }, - "id": 3027, + "id": 6393, "indexExpression": { "argumentTypes": null, - "id": 3026, + "id": 6392, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3002, - "src": "1765:5:5", + "referencedDeclaration": 6368, + "src": "1854:5:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1779,21 +1839,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1746:25:5", + "src": "1835:25:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$2945_storage", + "typeIdentifier": "t_struct$_Milestone_$6308_storage", "typeString": "struct W12FundCrowdsaleStub.Milestone storage ref" } }, - "id": 3028, + "id": 6394, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "voteEndDate", "nodeType": "MemberAccess", - "referencedDeclaration": 2938, - "src": "1746:37:5", + "referencedDeclaration": 6301, + "src": "1835:37:19", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -1805,26 +1865,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3029, + "id": 6395, "name": "_currentMilestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2930, - "src": "1797:18:5", + "referencedDeclaration": 6293, + "src": "1886:18:19", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$2945_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$6308_storage_$", "typeString": "mapping(uint256 => struct W12FundCrowdsaleStub.Milestone storage ref)" } }, - "id": 3031, + "id": 6397, "indexExpression": { "argumentTypes": null, - "id": 3030, + "id": 6396, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3002, - "src": "1816:5:5", + "referencedDeclaration": 6368, + "src": "1905:5:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1835,21 +1895,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1797:25:5", + "src": "1886:25:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$2945_storage", + "typeIdentifier": "t_struct$_Milestone_$6308_storage", "typeString": "struct W12FundCrowdsaleStub.Milestone storage ref" } }, - "id": 3032, + "id": 6398, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "withdrawalWindow", "nodeType": "MemberAccess", - "referencedDeclaration": 2940, - "src": "1797:42:5", + "referencedDeclaration": 6303, + "src": "1886:42:19", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -1861,26 +1921,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3033, + "id": 6399, "name": "_currentMilestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2930, - "src": "1853:18:5", + "referencedDeclaration": 6293, + "src": "1942:18:19", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$2945_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$6308_storage_$", "typeString": "mapping(uint256 => struct W12FundCrowdsaleStub.Milestone storage ref)" } }, - "id": 3035, + "id": 6401, "indexExpression": { "argumentTypes": null, - "id": 3034, + "id": 6400, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3002, - "src": "1872:5:5", + "referencedDeclaration": 6368, + "src": "1961:5:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1891,21 +1951,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1853:25:5", + "src": "1942:25:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$2945_storage", + "typeIdentifier": "t_struct$_Milestone_$6308_storage", "typeString": "struct W12FundCrowdsaleStub.Milestone storage ref" } }, - "id": 3036, + "id": 6402, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "name", "nodeType": "MemberAccess", - "referencedDeclaration": 2942, - "src": "1853:30:5", + "referencedDeclaration": 6305, + "src": "1942:30:19", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" @@ -1917,26 +1977,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3037, + "id": 6403, "name": "_currentMilestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2930, - "src": "1897:18:5", + "referencedDeclaration": 6293, + "src": "1986:18:19", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$2945_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$6308_storage_$", "typeString": "mapping(uint256 => struct W12FundCrowdsaleStub.Milestone storage ref)" } }, - "id": 3039, + "id": 6405, "indexExpression": { "argumentTypes": null, - "id": 3038, + "id": 6404, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3002, - "src": "1916:5:5", + "referencedDeclaration": 6368, + "src": "2005:5:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1947,49 +2007,49 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1897:25:5", + "src": "1986:25:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$2945_storage", + "typeIdentifier": "t_struct$_Milestone_$6308_storage", "typeString": "struct W12FundCrowdsaleStub.Milestone storage ref" } }, - "id": 3040, + "id": 6406, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "description", "nodeType": "MemberAccess", - "referencedDeclaration": 2944, - "src": "1897:37:5", + "referencedDeclaration": 6307, + "src": "1986:37:19", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } } ], - "id": 3041, + "id": 6407, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "1631:313:5", + "src": "1720:313:19", "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": 3016, - "id": 3042, + "functionReturnParameters": 6382, + "id": 6408, "nodeType": "Return", - "src": "1624:320:5" + "src": "1713:320:19" } ] }, "documentation": null, - "id": 3044, + "id": 6410, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1997,16 +2057,16 @@ "name": "getMilestone", "nodeType": "FunctionDefinition", "parameters": { - "id": 3003, + "id": 6369, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3002, + "id": 6368, "name": "index", "nodeType": "VariableDeclaration", - "scope": 3044, - "src": "1535:10:5", + "scope": 6410, + "src": "1624:10:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2014,10 +2074,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3001, + "id": 6367, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1535:4:5", + "src": "1624:4:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2027,20 +2087,20 @@ "visibility": "internal" } ], - "src": "1534:12:5" + "src": "1623:12:19" }, "payable": false, "returnParameters": { - "id": 3016, + "id": 6382, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3005, + "id": 6371, "name": "", "nodeType": "VariableDeclaration", - "scope": 3044, - "src": "1570:6:5", + "scope": 6410, + "src": "1659:6:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2048,10 +2108,10 @@ "typeString": "uint32" }, "typeName": { - "id": 3004, + "id": 6370, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "1570:6:5", + "src": "1659:6:19", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -2062,11 +2122,11 @@ }, { "constant": false, - "id": 3007, + "id": 6373, "name": "", "nodeType": "VariableDeclaration", - "scope": 3044, - "src": "1578:4:5", + "scope": 6410, + "src": "1667:4:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2074,10 +2134,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3006, + "id": 6372, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1578:4:5", + "src": "1667:4:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2088,11 +2148,11 @@ }, { "constant": false, - "id": 3009, + "id": 6375, "name": "", "nodeType": "VariableDeclaration", - "scope": 3044, - "src": "1584:6:5", + "scope": 6410, + "src": "1673:6:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2100,10 +2160,10 @@ "typeString": "uint32" }, "typeName": { - "id": 3008, + "id": 6374, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "1584:6:5", + "src": "1673:6:19", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -2114,11 +2174,11 @@ }, { "constant": false, - "id": 3011, + "id": 6377, "name": "", "nodeType": "VariableDeclaration", - "scope": 3044, - "src": "1592:6:5", + "scope": 6410, + "src": "1681:6:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2126,10 +2186,10 @@ "typeString": "uint32" }, "typeName": { - "id": 3010, + "id": 6376, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "1592:6:5", + "src": "1681:6:19", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -2140,11 +2200,11 @@ }, { "constant": false, - "id": 3013, + "id": 6379, "name": "", "nodeType": "VariableDeclaration", - "scope": 3044, - "src": "1600:5:5", + "scope": 6410, + "src": "1689:5:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2152,10 +2212,10 @@ "typeString": "bytes" }, "typeName": { - "id": 3012, + "id": 6378, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1600:5:5", + "src": "1689:5:19", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2166,11 +2226,11 @@ }, { "constant": false, - "id": 3015, + "id": 6381, "name": "", "nodeType": "VariableDeclaration", - "scope": 3044, - "src": "1607:5:5", + "scope": 6410, + "src": "1696:5:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2178,10 +2238,10 @@ "typeString": "bytes" }, "typeName": { - "id": 3014, + "id": 6380, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1607:5:5", + "src": "1696:5:19", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2191,24 +2251,24 @@ "visibility": "internal" } ], - "src": "1569:44:5" + "src": "1658:44:19" }, - "scope": 3194, - "src": "1513:438:5", + "scope": 6564, + "src": "1602:438:19", "stateMutability": "view", - "superFunction": 4352, + "superFunction": 1129, "visibility": "external" }, { "body": { - "id": 3074, + "id": 6440, "nodeType": "Block", - "src": "2063:229:5", + "src": "2152:229:19", "statements": [ { "expression": { "argumentTypes": null, - "id": 3072, + "id": 6438, "isConstant": false, "isLValue": false, "isPure": false, @@ -2217,26 +2277,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3061, + "id": 6427, "name": "_currentMilestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2930, - "src": "2073:18:5", + "referencedDeclaration": 6293, + "src": "2162:18:19", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$2945_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$6308_storage_$", "typeString": "mapping(uint256 => struct W12FundCrowdsaleStub.Milestone storage ref)" } }, - "id": 3063, + "id": 6429, "indexExpression": { "argumentTypes": null, - "id": 3062, + "id": 6428, "name": "idx", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3046, - "src": "2092:3:5", + "referencedDeclaration": 6412, + "src": "2181:3:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2247,9 +2307,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2073:23:5", + "src": "2162:23:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$2945_storage", + "typeIdentifier": "t_struct$_Milestone_$6308_storage", "typeString": "struct W12FundCrowdsaleStub.Milestone storage ref" } }, @@ -2260,12 +2320,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3065, + "id": 6431, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3048, - "src": "2132:1:5", + "referencedDeclaration": 6414, + "src": "2221:1:19", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -2273,12 +2333,12 @@ }, { "argumentTypes": null, - "id": 3066, + "id": 6432, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3050, - "src": "2163:1:5", + "referencedDeclaration": 6416, + "src": "2252:1:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2286,12 +2346,12 @@ }, { "argumentTypes": null, - "id": 3067, + "id": 6433, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3052, - "src": "2191:1:5", + "referencedDeclaration": 6418, + "src": "2280:1:19", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -2299,12 +2359,12 @@ }, { "argumentTypes": null, - "id": 3068, + "id": 6434, "name": "d", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3054, - "src": "2224:1:5", + "referencedDeclaration": 6420, + "src": "2313:1:19", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -2312,12 +2372,12 @@ }, { "argumentTypes": null, - "id": 3069, + "id": 6435, "name": "e", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3056, - "src": "2245:1:5", + "referencedDeclaration": 6422, + "src": "2334:1:19", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -2325,12 +2385,12 @@ }, { "argumentTypes": null, - "id": 3070, + "id": 6436, "name": "f", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3058, - "src": "2273:1:5", + "referencedDeclaration": 6424, + "src": "2362:1:19", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -2339,18 +2399,18 @@ ], "expression": { "argumentTypes": null, - "id": 3064, + "id": 6430, "name": "Milestone", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2945, - "src": "2099:9:5", + "referencedDeclaration": 6308, + "src": "2188:9:19", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Milestone_$2945_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_Milestone_$6308_storage_ptr_$", "typeString": "type(struct W12FundCrowdsaleStub.Milestone storage pointer)" } }, - "id": 3071, + "id": 6437, "isConstant": false, "isLValue": false, "isPure": false, @@ -2365,26 +2425,26 @@ "description" ], "nodeType": "FunctionCall", - "src": "2099:186:5", + "src": "2188:186:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$2945_memory", + "typeIdentifier": "t_struct$_Milestone_$6308_memory", "typeString": "struct W12FundCrowdsaleStub.Milestone memory" } }, - "src": "2073:212:5", + "src": "2162:212:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$2945_storage", + "typeIdentifier": "t_struct$_Milestone_$6308_storage", "typeString": "struct W12FundCrowdsaleStub.Milestone storage ref" } }, - "id": 3073, + "id": 6439, "nodeType": "ExpressionStatement", - "src": "2073:212:5" + "src": "2162:212:19" } ] }, "documentation": null, - "id": 3075, + "id": 6441, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -2392,16 +2452,16 @@ "name": "_getMilestoneMockData", "nodeType": "FunctionDefinition", "parameters": { - "id": 3059, + "id": 6425, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3046, + "id": 6412, "name": "idx", "nodeType": "VariableDeclaration", - "scope": 3075, - "src": "1988:8:5", + "scope": 6441, + "src": "2077:8:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2409,10 +2469,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3045, + "id": 6411, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1988:4:5", + "src": "2077:4:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2423,11 +2483,11 @@ }, { "constant": false, - "id": 3048, + "id": 6414, "name": "a", "nodeType": "VariableDeclaration", - "scope": 3075, - "src": "1998:8:5", + "scope": 6441, + "src": "2087:8:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2435,10 +2495,10 @@ "typeString": "uint32" }, "typeName": { - "id": 3047, + "id": 6413, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "1998:6:5", + "src": "2087:6:19", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -2449,11 +2509,11 @@ }, { "constant": false, - "id": 3050, + "id": 6416, "name": "b", "nodeType": "VariableDeclaration", - "scope": 3075, - "src": "2008:6:5", + "scope": 6441, + "src": "2097:6:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2461,10 +2521,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3049, + "id": 6415, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2008:4:5", + "src": "2097:4:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2475,11 +2535,11 @@ }, { "constant": false, - "id": 3052, + "id": 6418, "name": "c", "nodeType": "VariableDeclaration", - "scope": 3075, - "src": "2016:8:5", + "scope": 6441, + "src": "2105:8:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2487,10 +2547,10 @@ "typeString": "uint32" }, "typeName": { - "id": 3051, + "id": 6417, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "2016:6:5", + "src": "2105:6:19", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -2501,11 +2561,11 @@ }, { "constant": false, - "id": 3054, + "id": 6420, "name": "d", "nodeType": "VariableDeclaration", - "scope": 3075, - "src": "2026:8:5", + "scope": 6441, + "src": "2115:8:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2513,10 +2573,10 @@ "typeString": "uint32" }, "typeName": { - "id": 3053, + "id": 6419, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "2026:6:5", + "src": "2115:6:19", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -2527,11 +2587,11 @@ }, { "constant": false, - "id": 3056, + "id": 6422, "name": "e", "nodeType": "VariableDeclaration", - "scope": 3075, - "src": "2036:7:5", + "scope": 6441, + "src": "2125:7:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2539,10 +2599,10 @@ "typeString": "bytes" }, "typeName": { - "id": 3055, + "id": 6421, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2036:5:5", + "src": "2125:5:19", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2553,11 +2613,11 @@ }, { "constant": false, - "id": 3058, + "id": 6424, "name": "f", "nodeType": "VariableDeclaration", - "scope": 3075, - "src": "2045:7:5", + "scope": 6441, + "src": "2134:7:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2565,10 +2625,10 @@ "typeString": "bytes" }, "typeName": { - "id": 3057, + "id": 6423, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2045:5:5", + "src": "2134:5:19", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2578,30 +2638,30 @@ "visibility": "internal" } ], - "src": "1987:66:5" + "src": "2076:66:19" }, "payable": false, "returnParameters": { - "id": 3060, + "id": 6426, "nodeType": "ParameterList", "parameters": [], - "src": "2063:0:5" + "src": "2152:0:19" }, - "scope": 3194, - "src": "1957:335:5", + "scope": 6564, + "src": "2046:335:19", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" }, { "body": { - "id": 3094, + "id": 6460, "nodeType": "Block", - "src": "2397:2:5", + "src": "2486:2:19", "statements": [] }, "documentation": null, - "id": 3095, + "id": 6461, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2609,16 +2669,16 @@ "name": "getStage", "nodeType": "FunctionDefinition", "parameters": { - "id": 3078, + "id": 6444, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3077, + "id": 6443, "name": "index", "nodeType": "VariableDeclaration", - "scope": 3095, - "src": "2316:10:5", + "scope": 6461, + "src": "2405:10:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2626,10 +2686,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3076, + "id": 6442, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2316:4:5", + "src": "2405:4:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2639,20 +2699,20 @@ "visibility": "internal" } ], - "src": "2315:12:5" + "src": "2404:12:19" }, "payable": false, "returnParameters": { - "id": 3093, + "id": 6459, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3080, + "id": 6446, "name": "", "nodeType": "VariableDeclaration", - "scope": 3095, - "src": "2351:6:5", + "scope": 6461, + "src": "2440:6:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2660,10 +2720,10 @@ "typeString": "uint32" }, "typeName": { - "id": 3079, + "id": 6445, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "2351:6:5", + "src": "2440:6:19", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -2674,11 +2734,11 @@ }, { "constant": false, - "id": 3082, + "id": 6448, "name": "", "nodeType": "VariableDeclaration", - "scope": 3095, - "src": "2359:6:5", + "scope": 6461, + "src": "2448:6:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2686,10 +2746,10 @@ "typeString": "uint32" }, "typeName": { - "id": 3081, + "id": 6447, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "2359:6:5", + "src": "2448:6:19", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -2700,11 +2760,11 @@ }, { "constant": false, - "id": 3084, + "id": 6450, "name": "", "nodeType": "VariableDeclaration", - "scope": 3095, - "src": "2367:4:5", + "scope": 6461, + "src": "2456:4:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2712,10 +2772,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3083, + "id": 6449, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2367:4:5", + "src": "2456:4:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2726,11 +2786,11 @@ }, { "constant": false, - "id": 3086, + "id": 6452, "name": "", "nodeType": "VariableDeclaration", - "scope": 3095, - "src": "2373:6:5", + "scope": 6461, + "src": "2462:6:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2738,10 +2798,10 @@ "typeString": "uint32" }, "typeName": { - "id": 3085, + "id": 6451, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "2373:6:5", + "src": "2462:6:19", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -2752,11 +2812,11 @@ }, { "constant": false, - "id": 3089, + "id": 6455, "name": "", "nodeType": "VariableDeclaration", - "scope": 3095, - "src": "2381:6:5", + "scope": 6461, + "src": "2470:6:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2765,19 +2825,19 @@ }, "typeName": { "baseType": { - "id": 3087, + "id": 6453, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2381:4:5", + "src": "2470:4:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3088, + "id": 6454, "length": null, "nodeType": "ArrayTypeName", - "src": "2381:6:5", + "src": "2470:6:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -2788,11 +2848,11 @@ }, { "constant": false, - "id": 3092, + "id": 6458, "name": "", "nodeType": "VariableDeclaration", - "scope": 3095, - "src": "2389:6:5", + "scope": 6461, + "src": "2478:6:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2801,19 +2861,19 @@ }, "typeName": { "baseType": { - "id": 3090, + "id": 6456, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2389:4:5", + "src": "2478:4:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3091, + "id": 6457, "length": null, "nodeType": "ArrayTypeName", - "src": "2389:6:5", + "src": "2478:6:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -2823,19 +2883,19 @@ "visibility": "internal" } ], - "src": "2350:46:5" + "src": "2439:46:19" }, - "scope": 3194, - "src": "2298:101:5", + "scope": 6564, + "src": "2387:101:19", "stateMutability": "view", - "superFunction": 4371, + "superFunction": 1148, "visibility": "external" }, { "body": { - "id": 3106, + "id": 6472, "nodeType": "Block", - "src": "2476:77:5", + "src": "2565:77:19", "statements": [ { "expression": { @@ -2843,12 +2903,12 @@ "components": [ { "argumentTypes": null, - "id": 3102, + "id": 6468, "name": "_currentMilestoneIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2920, - "src": "2494:22:5", + "referencedDeclaration": 6283, + "src": "2583:22:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2856,40 +2916,40 @@ }, { "argumentTypes": null, - "id": 3103, + "id": 6469, "name": "_currentMilestoneIndexFound", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2922, - "src": "2518:27:5", + "referencedDeclaration": 6285, + "src": "2607:27:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], - "id": 3104, + "id": 6470, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "2493:53:5", + "src": "2582:53:19", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", "typeString": "tuple(uint256,bool)" } }, - "functionReturnParameters": 3101, - "id": 3105, + "functionReturnParameters": 6467, + "id": 6471, "nodeType": "Return", - "src": "2486:60:5" + "src": "2575:60:19" } ] }, "documentation": null, - "id": 3107, + "id": 6473, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2897,23 +2957,23 @@ "name": "getCurrentMilestoneIndex", "nodeType": "FunctionDefinition", "parameters": { - "id": 3096, + "id": 6462, "nodeType": "ParameterList", "parameters": [], - "src": "2438:2:5" + "src": "2527:2:19" }, "payable": false, "returnParameters": { - "id": 3101, + "id": 6467, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3098, + "id": 6464, "name": "", "nodeType": "VariableDeclaration", - "scope": 3107, - "src": "2464:4:5", + "scope": 6473, + "src": "2553:4:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2921,10 +2981,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3097, + "id": 6463, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2464:4:5", + "src": "2553:4:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2935,11 +2995,11 @@ }, { "constant": false, - "id": 3100, + "id": 6466, "name": "", "nodeType": "VariableDeclaration", - "scope": 3107, - "src": "2470:4:5", + "scope": 6473, + "src": "2559:4:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2947,10 +3007,10 @@ "typeString": "bool" }, "typeName": { - "id": 3099, + "id": 6465, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2470:4:5", + "src": "2559:4:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2960,36 +3020,36 @@ "visibility": "internal" } ], - "src": "2463:12:5" + "src": "2552:12:19" }, - "scope": 3194, - "src": "2405:148:5", + "scope": 6564, + "src": "2494:148:19", "stateMutability": "view", - "superFunction": 4378, + "superFunction": 1155, "visibility": "external" }, { "body": { - "id": 3122, + "id": 6488, "nodeType": "Block", - "src": "2627:84:5", + "src": "2716:84:19", "statements": [ { "expression": { "argumentTypes": null, - "id": 3116, + "id": 6482, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3114, + "id": 6480, "name": "_currentMilestoneIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2920, - "src": "2637:22:5", + "referencedDeclaration": 6283, + "src": "2726:22:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2999,43 +3059,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3115, + "id": 6481, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3109, - "src": "2662:1:5", + "referencedDeclaration": 6475, + "src": "2751:1:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2637:26:5", + "src": "2726:26:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3117, + "id": 6483, "nodeType": "ExpressionStatement", - "src": "2637:26:5" + "src": "2726:26:19" }, { "expression": { "argumentTypes": null, - "id": 3120, + "id": 6486, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3118, + "id": 6484, "name": "_currentMilestoneIndexFound", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2922, - "src": "2673:27:5", + "referencedDeclaration": 6285, + "src": "2762:27:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3045,31 +3105,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3119, + "id": 6485, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3111, - "src": "2703:1:5", + "referencedDeclaration": 6477, + "src": "2792:1:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2673:31:5", + "src": "2762:31:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3121, + "id": 6487, "nodeType": "ExpressionStatement", - "src": "2673:31:5" + "src": "2762:31:19" } ] }, "documentation": null, - "id": 3123, + "id": 6489, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -3077,16 +3137,16 @@ "name": "_getCurrentMilestoneIndexMockData", "nodeType": "FunctionDefinition", "parameters": { - "id": 3112, + "id": 6478, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3109, + "id": 6475, "name": "a", "nodeType": "VariableDeclaration", - "scope": 3123, - "src": "2602:6:5", + "scope": 6489, + "src": "2691:6:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3094,10 +3154,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3108, + "id": 6474, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2602:4:5", + "src": "2691:4:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3108,11 +3168,11 @@ }, { "constant": false, - "id": 3111, + "id": 6477, "name": "b", "nodeType": "VariableDeclaration", - "scope": 3123, - "src": "2610:6:5", + "scope": 6489, + "src": "2699:6:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3120,10 +3180,10 @@ "typeString": "bool" }, "typeName": { - "id": 3110, + "id": 6476, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2610:4:5", + "src": "2699:4:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3133,26 +3193,26 @@ "visibility": "internal" } ], - "src": "2601:16:5" + "src": "2690:16:19" }, "payable": false, "returnParameters": { - "id": 3113, + "id": 6479, "nodeType": "ParameterList", "parameters": [], - "src": "2627:0:5" + "src": "2716:0:19" }, - "scope": 3194, - "src": "2559:152:5", + "scope": 6564, + "src": "2648:152:19", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" }, { "body": { - "id": 3134, + "id": 6500, "nodeType": "Block", - "src": "2797:71:5", + "src": "2886:71:19", "statements": [ { "expression": { @@ -3160,12 +3220,12 @@ "components": [ { "argumentTypes": null, - "id": 3130, + "id": 6496, "name": "_lastMilestoneIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2924, - "src": "2815:19:5", + "referencedDeclaration": 6287, + "src": "2904:19:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3173,40 +3233,40 @@ }, { "argumentTypes": null, - "id": 3131, + "id": 6497, "name": "_lastMilestoneIndexFound", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2926, - "src": "2836:24:5", + "referencedDeclaration": 6289, + "src": "2925:24:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], - "id": 3132, + "id": 6498, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "2814:47:5", + "src": "2903:47:19", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", "typeString": "tuple(uint256,bool)" } }, - "functionReturnParameters": 3129, - "id": 3133, + "functionReturnParameters": 6495, + "id": 6499, "nodeType": "Return", - "src": "2807:54:5" + "src": "2896:54:19" } ] }, "documentation": null, - "id": 3135, + "id": 6501, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -3214,23 +3274,23 @@ "name": "getLastMilestoneIndex", "nodeType": "FunctionDefinition", "parameters": { - "id": 3124, + "id": 6490, "nodeType": "ParameterList", "parameters": [], - "src": "2747:2:5" + "src": "2836:2:19" }, "payable": false, "returnParameters": { - "id": 3129, + "id": 6495, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3126, + "id": 6492, "name": "index", "nodeType": "VariableDeclaration", - "scope": 3135, - "src": "2773:10:5", + "scope": 6501, + "src": "2862:10:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3238,10 +3298,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3125, + "id": 6491, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2773:4:5", + "src": "2862:4:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3252,11 +3312,11 @@ }, { "constant": false, - "id": 3128, + "id": 6494, "name": "found", "nodeType": "VariableDeclaration", - "scope": 3135, - "src": "2785:10:5", + "scope": 6501, + "src": "2874:10:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3264,10 +3324,10 @@ "typeString": "bool" }, "typeName": { - "id": 3127, + "id": 6493, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2785:4:5", + "src": "2874:4:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3277,36 +3337,36 @@ "visibility": "internal" } ], - "src": "2772:24:5" + "src": "2861:24:19" }, - "scope": 3194, - "src": "2717:151:5", + "scope": 6564, + "src": "2806:151:19", "stateMutability": "view", - "superFunction": 4385, + "superFunction": 1162, "visibility": "external" }, { "body": { - "id": 3150, + "id": 6516, "nodeType": "Block", - "src": "2939:78:5", + "src": "3028:78:19", "statements": [ { "expression": { "argumentTypes": null, - "id": 3144, + "id": 6510, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3142, + "id": 6508, "name": "_lastMilestoneIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2924, - "src": "2949:19:5", + "referencedDeclaration": 6287, + "src": "3038:19:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3316,43 +3376,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3143, + "id": 6509, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3137, - "src": "2971:1:5", + "referencedDeclaration": 6503, + "src": "3060:1:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2949:23:5", + "src": "3038:23:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3145, + "id": 6511, "nodeType": "ExpressionStatement", - "src": "2949:23:5" + "src": "3038:23:19" }, { "expression": { "argumentTypes": null, - "id": 3148, + "id": 6514, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3146, + "id": 6512, "name": "_lastMilestoneIndexFound", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2926, - "src": "2982:24:5", + "referencedDeclaration": 6289, + "src": "3071:24:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3362,31 +3422,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3147, + "id": 6513, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3139, - "src": "3009:1:5", + "referencedDeclaration": 6505, + "src": "3098:1:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2982:28:5", + "src": "3071:28:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3149, + "id": 6515, "nodeType": "ExpressionStatement", - "src": "2982:28:5" + "src": "3071:28:19" } ] }, "documentation": null, - "id": 3151, + "id": 6517, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -3394,16 +3454,16 @@ "name": "_getLastMilestoneIndexMockData", "nodeType": "FunctionDefinition", "parameters": { - "id": 3140, + "id": 6506, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3137, + "id": 6503, "name": "a", "nodeType": "VariableDeclaration", - "scope": 3151, - "src": "2914:6:5", + "scope": 6517, + "src": "3003:6:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3411,10 +3471,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3136, + "id": 6502, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2914:4:5", + "src": "3003:4:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3425,11 +3485,11 @@ }, { "constant": false, - "id": 3139, + "id": 6505, "name": "b", "nodeType": "VariableDeclaration", - "scope": 3151, - "src": "2922:6:5", + "scope": 6517, + "src": "3011:6:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3437,10 +3497,10 @@ "typeString": "bool" }, "typeName": { - "id": 3138, + "id": 6504, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2922:4:5", + "src": "3011:4:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3450,30 +3510,30 @@ "visibility": "internal" } ], - "src": "2913:16:5" + "src": "3002:16:19" }, "payable": false, "returnParameters": { - "id": 3141, + "id": 6507, "nodeType": "ParameterList", "parameters": [], - "src": "2939:0:5" + "src": "3028:0:19" }, - "scope": 3194, - "src": "2874:143:5", + "scope": 6564, + "src": "2963:143:19", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" }, { "body": { - "id": 3156, + "id": 6522, "nodeType": "Block", - "src": "3080:2:5", + "src": "3169:2:19", "statements": [] }, "documentation": null, - "id": 3157, + "id": 6523, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -3481,23 +3541,23 @@ "name": "milestonesLength", "nodeType": "FunctionDefinition", "parameters": { - "id": 3152, + "id": 6518, "nodeType": "ParameterList", "parameters": [], - "src": "3048:2:5" + "src": "3137:2:19" }, "payable": false, "returnParameters": { - "id": 3155, + "id": 6521, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3154, + "id": 6520, "name": "", "nodeType": "VariableDeclaration", - "scope": 3157, - "src": "3074:4:5", + "scope": 6523, + "src": "3163:4:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3505,10 +3565,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3153, + "id": 6519, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3074:4:5", + "src": "3163:4:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3518,23 +3578,23 @@ "visibility": "internal" } ], - "src": "3073:6:5" + "src": "3162:6:19" }, - "scope": 3194, - "src": "3023:59:5", + "scope": 6564, + "src": "3112:59:19", "stateMutability": "view", - "superFunction": 4390, + "superFunction": 1167, "visibility": "external" }, { "body": { - "id": 3164, + "id": 6530, "nodeType": "Block", - "src": "3167:2:5", + "src": "3256:2:19", "statements": [] }, "documentation": null, - "id": 3165, + "id": 6531, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -3542,23 +3602,23 @@ "name": "getCurrentStageIndex", "nodeType": "FunctionDefinition", "parameters": { - "id": 3158, + "id": 6524, "nodeType": "ParameterList", "parameters": [], - "src": "3117:2:5" + "src": "3206:2:19" }, "payable": false, "returnParameters": { - "id": 3163, + "id": 6529, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3160, + "id": 6526, "name": "index", "nodeType": "VariableDeclaration", - "scope": 3165, - "src": "3143:10:5", + "scope": 6531, + "src": "3232:10:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3566,10 +3626,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3159, + "id": 6525, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3143:4:5", + "src": "3232:4:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3580,11 +3640,11 @@ }, { "constant": false, - "id": 3162, + "id": 6528, "name": "found", "nodeType": "VariableDeclaration", - "scope": 3165, - "src": "3155:10:5", + "scope": 6531, + "src": "3244:10:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3592,10 +3652,10 @@ "typeString": "bool" }, "typeName": { - "id": 3161, + "id": 6527, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3155:4:5", + "src": "3244:4:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3605,23 +3665,23 @@ "visibility": "internal" } ], - "src": "3142:24:5" + "src": "3231:24:19" }, - "scope": 3194, - "src": "3088:81:5", + "scope": 6564, + "src": "3177:81:19", "stateMutability": "view", - "superFunction": 4397, + "superFunction": 1174, "visibility": "external" }, { "body": { - "id": 3172, + "id": 6538, "nodeType": "Block", - "src": "3250:2:5", + "src": "3339:2:19", "statements": [] }, "documentation": null, - "id": 3173, + "id": 6539, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -3629,16 +3689,16 @@ "name": "getSaleVolumeBonus", "nodeType": "FunctionDefinition", "parameters": { - "id": 3168, + "id": 6534, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3167, + "id": 6533, "name": "value", "nodeType": "VariableDeclaration", - "scope": 3173, - "src": "3203:10:5", + "scope": 6539, + "src": "3292:10:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3646,10 +3706,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3166, + "id": 6532, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3203:4:5", + "src": "3292:4:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3659,20 +3719,20 @@ "visibility": "internal" } ], - "src": "3202:12:5" + "src": "3291:12:19" }, "payable": false, "returnParameters": { - "id": 3171, + "id": 6537, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3170, + "id": 6536, "name": "bonus", "nodeType": "VariableDeclaration", - "scope": 3173, - "src": "3238:10:5", + "scope": 6539, + "src": "3327:10:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3680,10 +3740,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3169, + "id": 6535, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3238:4:5", + "src": "3327:4:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3693,23 +3753,23 @@ "visibility": "internal" } ], - "src": "3237:12:5" + "src": "3326:12:19" }, - "scope": 3194, - "src": "3175:77:5", + "scope": 6564, + "src": "3264:77:19", "stateMutability": "view", - "superFunction": 4404, + "superFunction": 1181, "visibility": "external" }, { "body": { - "id": 3178, + "id": 6544, "nodeType": "Block", - "src": "3306:2:5", + "src": "3395:2:19", "statements": [] }, "documentation": null, - "id": 3179, + "id": 6545, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -3717,23 +3777,23 @@ "name": "isEnded", "nodeType": "FunctionDefinition", "parameters": { - "id": 3174, + "id": 6540, "nodeType": "ParameterList", "parameters": [], - "src": "3274:2:5" + "src": "3363:2:19" }, "payable": false, "returnParameters": { - "id": 3177, + "id": 6543, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3176, + "id": 6542, "name": "", "nodeType": "VariableDeclaration", - "scope": 3179, - "src": "3300:4:5", + "scope": 6545, + "src": "3389:4:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3741,10 +3801,10 @@ "typeString": "bool" }, "typeName": { - "id": 3175, + "id": 6541, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3300:4:5", + "src": "3389:4:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3754,23 +3814,23 @@ "visibility": "internal" } ], - "src": "3299:6:5" + "src": "3388:6:19" }, - "scope": 3194, - "src": "3258:50:5", + "scope": 6564, + "src": "3347:50:19", "stateMutability": "view", - "superFunction": 4409, + "superFunction": 1186, "visibility": "external" }, { "body": { - "id": 3184, + "id": 6550, "nodeType": "Block", - "src": "3367:2:5", + "src": "3456:2:19", "statements": [] }, "documentation": null, - "id": 3185, + "id": 6551, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -3778,23 +3838,23 @@ "name": "isSaleActive", "nodeType": "FunctionDefinition", "parameters": { - "id": 3180, + "id": 6546, "nodeType": "ParameterList", "parameters": [], - "src": "3335:2:5" + "src": "3424:2:19" }, "payable": false, "returnParameters": { - "id": 3183, + "id": 6549, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3182, + "id": 6548, "name": "", "nodeType": "VariableDeclaration", - "scope": 3185, - "src": "3361:4:5", + "scope": 6551, + "src": "3450:4:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3802,10 +3862,10 @@ "typeString": "bool" }, "typeName": { - "id": 3181, + "id": 6547, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3361:4:5", + "src": "3450:4:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3815,23 +3875,23 @@ "visibility": "internal" } ], - "src": "3360:6:5" + "src": "3449:6:19" }, - "scope": 3194, - "src": "3314:55:5", + "scope": 6564, + "src": "3403:55:19", "stateMutability": "view", - "superFunction": 4414, + "superFunction": 1191, "visibility": "external" }, { "body": { - "id": 3188, + "id": 6554, "nodeType": "Block", - "src": "3403:2:5", + "src": "3492:2:19", "statements": [] }, "documentation": null, - "id": 3189, + "id": 6555, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -3839,33 +3899,33 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 3186, + "id": 6552, "nodeType": "ParameterList", "parameters": [], - "src": "3383:2:5" + "src": "3472:2:19" }, "payable": true, "returnParameters": { - "id": 3187, + "id": 6553, "nodeType": "ParameterList", "parameters": [], - "src": "3403:0:5" + "src": "3492:0:19" }, - "scope": 3194, - "src": "3375:30:5", + "scope": 6564, + "src": "3464:30:19", "stateMutability": "payable", - "superFunction": 4417, + "superFunction": null, "visibility": "external" }, { "body": { - "id": 3192, + "id": 6562, "nodeType": "Block", - "src": "3449:2:5", + "src": "3565:2:19", "statements": [] }, "documentation": null, - "id": 3193, + "id": 6563, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -3873,43 +3933,96 @@ "name": "buyTokens", "nodeType": "FunctionDefinition", "parameters": { - "id": 3190, + "id": 6560, "nodeType": "ParameterList", - "parameters": [], - "src": "3429:2:5" + "parameters": [ + { + "constant": false, + "id": 6557, + "name": "method", + "nodeType": "VariableDeclaration", + "scope": 6563, + "src": "3519:14:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6556, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3519:7:19", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6559, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 6563, + "src": "3535:11:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6558, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3535:4:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3518:29:19" }, "payable": true, "returnParameters": { - "id": 3191, + "id": 6561, "nodeType": "ParameterList", "parameters": [], - "src": "3449:0:5" + "src": "3565:0:19" }, - "scope": 3194, - "src": "3411:40:5", + "scope": 6564, + "src": "3500:67:19", "stateMutability": "payable", - "superFunction": 4420, + "superFunction": 1198, "visibility": "external" } ], - "scope": 3195, - "src": "476:2977:5" + "scope": 6565, + "src": "524:3045:19" } ], - "src": "0:3454:5" + "src": "0:3570:19" }, "legacyAST": { - "absolutePath": "/home/circleci/code/contracts/W12FundCrowdsaleStub.sol", + "absolutePath": "/home/circleci/code/contracts/mocks/crowdsale/W12FundCrowdsaleStub.sol", "exportedSymbols": { "W12FundCrowdsaleStub": [ - 3194 + 6564 ] }, - "id": 3195, + "id": 6565, "nodeType": "SourceUnit", "nodes": [ { - "id": 2901, + "id": 6263, "literals": [ "solidity", "^", @@ -3917,104 +4030,115 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:5" + "src": "0:24:19" }, { "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 2902, + "id": 6264, "nodeType": "ImportDirective", - "scope": 3195, - "sourceUnit": 6941, - "src": "26:63:5", + "scope": 6565, + "sourceUnit": 9689, + "src": "26:63:19", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "openzeppelin-solidity/contracts/ReentrancyGuard.sol", "file": "openzeppelin-solidity/contracts/ReentrancyGuard.sol", - "id": 2903, + "id": 6265, "nodeType": "ImportDirective", - "scope": 3195, - "sourceUnit": 6691, - "src": "90:61:5", + "scope": 6565, + "sourceUnit": 9332, + "src": "90:61:19", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 2904, + "id": 6266, "nodeType": "ImportDirective", - "scope": 3195, - "sourceUnit": 6855, - "src": "152:59:5", + "scope": 6565, + "sourceUnit": 9603, + "src": "152:59:19", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", + "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", + "id": 6267, + "nodeType": "ImportDirective", + "scope": 6565, + "sourceUnit": 9766, + "src": "212:63:19", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "solidity-bytes-utils/contracts/BytesLib.sol", "file": "solidity-bytes-utils/contracts/BytesLib.sol", - "id": 2905, + "id": 6268, "nodeType": "ImportDirective", - "scope": 3195, - "sourceUnit": 7280, - "src": "212:53:5", + "scope": 6565, + "sourceUnit": 10028, + "src": "276:53:19", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "id": 2906, + "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Crowdsale.sol", + "file": "../../crowdsale/IW12Crowdsale.sol", + "id": 6269, "nodeType": "ImportDirective", - "scope": 3195, - "sourceUnit": 7018, - "src": "266:63:5", + "scope": 6565, + "sourceUnit": 1205, + "src": "330:43:19", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/home/circleci/code/contracts/interfaces/IW12Crowdsale.sol", - "file": "./interfaces/IW12Crowdsale.sol", - "id": 2907, + "absolutePath": "/home/circleci/code/contracts/crowdsale/IW12Fund.sol", + "file": "../../crowdsale/IW12Fund.sol", + "id": 6270, "nodeType": "ImportDirective", - "scope": 3195, - "sourceUnit": 4427, - "src": "330:40:5", + "scope": 6565, + "sourceUnit": 1242, + "src": "374:38:19", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/home/circleci/code/contracts/interfaces/IW12Fund.sol", - "file": "./interfaces/IW12Fund.sol", - "id": 2908, + "absolutePath": "/home/circleci/code/contracts/token/IWToken.sol", + "file": "../../token/IWToken.sol", + "id": 6271, "nodeType": "ImportDirective", - "scope": 3195, - "sourceUnit": 4485, - "src": "371:35:5", + "scope": 6565, + "sourceUnit": 7631, + "src": "413:33:19", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/libs/Percent.sol", - "file": "./libs/Percent.sol", - "id": 2909, + "file": "../../libs/Percent.sol", + "id": 6272, "nodeType": "ImportDirective", - "scope": 3195, - "sourceUnit": 4632, - "src": "407:28:5", + "scope": 6565, + "sourceUnit": 5104, + "src": "447:32:19", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/versioning/Versionable.sol", - "file": "./versioning/Versionable.sol", - "id": 2910, + "file": "../../versioning/Versionable.sol", + "id": 6273, "nodeType": "ImportDirective", - "scope": 3195, - "sourceUnit": 6510, - "src": "436:38:5", + "scope": 6565, + "sourceUnit": 9071, + "src": "480:42:19", "symbolAliases": [], "unitAlias": "" }, @@ -4024,102 +4148,102 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 2911, + "id": 6274, "name": "Versionable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6509, - "src": "509:11:5", + "referencedDeclaration": 9070, + "src": "557:11:19", "typeDescriptions": { - "typeIdentifier": "t_contract$_Versionable_$6509", + "typeIdentifier": "t_contract$_Versionable_$9070", "typeString": "contract Versionable" } }, - "id": 2912, + "id": 6275, "nodeType": "InheritanceSpecifier", - "src": "509:11:5" + "src": "557:11:19" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 2913, + "id": 6276, "name": "IW12Crowdsale", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4426, - "src": "522:13:5", + "referencedDeclaration": 1204, + "src": "570:13:19", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } }, - "id": 2914, + "id": 6277, "nodeType": "InheritanceSpecifier", - "src": "522:13:5" + "src": "570:13:19" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 2915, + "id": 6278, "name": "Ownable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6940, - "src": "537:7:5", + "referencedDeclaration": 9688, + "src": "585:7:19", "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$6940", + "typeIdentifier": "t_contract$_Ownable_$9688", "typeString": "contract Ownable" } }, - "id": 2916, + "id": 6279, "nodeType": "InheritanceSpecifier", - "src": "537:7:5" + "src": "585:7:19" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 2917, + "id": 6280, "name": "ReentrancyGuard", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6690, - "src": "546:15:5", + "referencedDeclaration": 9331, + "src": "594:15:19", "typeDescriptions": { - "typeIdentifier": "t_contract$_ReentrancyGuard_$6690", + "typeIdentifier": "t_contract$_ReentrancyGuard_$9331", "typeString": "contract ReentrancyGuard" } }, - "id": 2918, + "id": 6281, "nodeType": "InheritanceSpecifier", - "src": "546:15:5" + "src": "594:15:19" } ], "contractDependencies": [ - 4426, - 6509, - 6690, - 6940 + 1204, + 9070, + 9331, + 9688 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 3194, + "id": 6564, "linearizedBaseContracts": [ - 3194, - 6690, - 6940, - 4426, - 6509 + 6564, + 9331, + 9688, + 1204, + 9070 ], "name": "W12FundCrowdsaleStub", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 2920, + "id": 6283, "name": "_currentMilestoneIndex", "nodeType": "VariableDeclaration", - "scope": 3194, - "src": "568:27:5", + "scope": 6564, + "src": "616:27:19", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -4127,10 +4251,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2919, + "id": 6282, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "568:4:5", + "src": "616:4:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4141,11 +4265,11 @@ }, { "constant": false, - "id": 2922, + "id": 6285, "name": "_currentMilestoneIndexFound", "nodeType": "VariableDeclaration", - "scope": 3194, - "src": "601:32:5", + "scope": 6564, + "src": "649:32:19", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -4153,10 +4277,10 @@ "typeString": "bool" }, "typeName": { - "id": 2921, + "id": 6284, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "601:4:5", + "src": "649:4:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4167,11 +4291,11 @@ }, { "constant": false, - "id": 2924, + "id": 6287, "name": "_lastMilestoneIndex", "nodeType": "VariableDeclaration", - "scope": 3194, - "src": "639:24:5", + "scope": 6564, + "src": "687:24:19", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -4179,10 +4303,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2923, + "id": 6286, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "639:4:5", + "src": "687:4:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4193,11 +4317,11 @@ }, { "constant": false, - "id": 2926, + "id": 6289, "name": "_lastMilestoneIndexFound", "nodeType": "VariableDeclaration", - "scope": 3194, - "src": "669:29:5", + "scope": 6564, + "src": "717:29:19", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -4205,10 +4329,10 @@ "typeString": "bool" }, "typeName": { - "id": 2925, + "id": 6288, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "669:4:5", + "src": "717:4:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4219,44 +4343,44 @@ }, { "constant": false, - "id": 2930, + "id": 6293, "name": "_currentMilestones", "nodeType": "VariableDeclaration", - "scope": 3194, - "src": "704:46:5", + "scope": 6564, + "src": "752:46:19", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$2945_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$6308_storage_$", "typeString": "mapping(uint256 => struct W12FundCrowdsaleStub.Milestone)" }, "typeName": { - "id": 2929, + "id": 6292, "keyType": { - "id": 2927, + "id": 6290, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "713:4:5", + "src": "761:4:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Mapping", - "src": "704:27:5", + "src": "752:27:19", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$2945_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$6308_storage_$", "typeString": "mapping(uint256 => struct W12FundCrowdsaleStub.Milestone)" }, "valueType": { "contractScope": null, - "id": 2928, + "id": 6291, "name": "Milestone", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2945, - "src": "721:9:5", + "referencedDeclaration": 6308, + "src": "769:9:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$2945_storage_ptr", + "typeIdentifier": "t_struct$_Milestone_$6308_storage_ptr", "typeString": "struct W12FundCrowdsaleStub.Milestone" } } @@ -4266,27 +4390,27 @@ }, { "constant": false, - "id": 2932, + "id": 6295, "name": "_wtoken", "nodeType": "VariableDeclaration", - "scope": 3194, - "src": "756:14:5", + "scope": 6564, + "src": "804:15:19", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" }, "typeName": { "contractScope": null, - "id": 2931, - "name": "WToken", + "id": 6294, + "name": "IWToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5925, - "src": "756:6:5", + "referencedDeclaration": 7630, + "src": "804:7:19", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" } }, "value": null, @@ -4294,15 +4418,15 @@ }, { "canonicalName": "W12FundCrowdsaleStub.Milestone", - "id": 2945, + "id": 6308, "members": [ { "constant": false, - "id": 2934, + "id": 6297, "name": "endDate", "nodeType": "VariableDeclaration", - "scope": 2945, - "src": "804:14:5", + "scope": 6308, + "src": "853:14:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4310,10 +4434,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2933, + "id": 6296, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "804:6:5", + "src": "853:6:19", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -4324,11 +4448,11 @@ }, { "constant": false, - "id": 2936, + "id": 6299, "name": "tranchePercent", "nodeType": "VariableDeclaration", - "scope": 2945, - "src": "828:19:5", + "scope": 6308, + "src": "877:19:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4336,10 +4460,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2935, + "id": 6298, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "828:4:5", + "src": "877:4:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4350,11 +4474,11 @@ }, { "constant": false, - "id": 2938, + "id": 6301, "name": "voteEndDate", "nodeType": "VariableDeclaration", - "scope": 2945, - "src": "857:18:5", + "scope": 6308, + "src": "906:18:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4362,10 +4486,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2937, + "id": 6300, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "857:6:5", + "src": "906:6:19", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -4376,11 +4500,11 @@ }, { "constant": false, - "id": 2940, + "id": 6303, "name": "withdrawalWindow", "nodeType": "VariableDeclaration", - "scope": 2945, - "src": "885:23:5", + "scope": 6308, + "src": "934:23:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4388,10 +4512,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2939, + "id": 6302, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "885:6:5", + "src": "934:6:19", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -4402,11 +4526,11 @@ }, { "constant": false, - "id": 2942, + "id": 6305, "name": "name", "nodeType": "VariableDeclaration", - "scope": 2945, - "src": "918:10:5", + "scope": 6308, + "src": "967:10:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4414,10 +4538,10 @@ "typeString": "bytes" }, "typeName": { - "id": 2941, + "id": 6304, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "918:5:5", + "src": "967:5:19", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -4428,11 +4552,11 @@ }, { "constant": false, - "id": 2944, + "id": 6307, "name": "description", "nodeType": "VariableDeclaration", - "scope": 2945, - "src": "938:17:5", + "scope": 6308, + "src": "987:17:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4440,10 +4564,10 @@ "typeString": "bytes" }, "typeName": { - "id": 2943, + "id": 6306, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "938:5:5", + "src": "987:5:19", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -4455,19 +4579,19 @@ ], "name": "Milestone", "nodeType": "StructDefinition", - "scope": 3194, - "src": "777:185:5", + "scope": 6564, + "src": "826:185:19", "visibility": "public" }, { "body": { - "id": 2953, + "id": 6316, "nodeType": "Block", - "src": "1022:2:5", + "src": "1071:2:19", "statements": [] }, "documentation": null, - "id": 2954, + "id": 6317, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -4476,49 +4600,49 @@ "arguments": [ { "argumentTypes": null, - "id": 2950, + "id": 6313, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2947, - "src": "1006:7:5", + "referencedDeclaration": 6310, + "src": "1055:7:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 2951, + "id": 6314, "modifierName": { "argumentTypes": null, - "id": 2949, + "id": 6312, "name": "Versionable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6509, - "src": "994:11:5", + "referencedDeclaration": 9070, + "src": "1043:11:19", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Versionable_$6509_$", + "typeIdentifier": "t_type$_t_contract$_Versionable_$9070_$", "typeString": "type(contract Versionable)" } }, "nodeType": "ModifierInvocation", - "src": "994:20:5" + "src": "1043:20:19" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 2948, + "id": 6311, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2947, + "id": 6310, "name": "version", "nodeType": "VariableDeclaration", - "scope": 2954, - "src": "980:12:5", + "scope": 6317, + "src": "1029:12:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4526,10 +4650,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2946, + "id": 6309, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "980:4:5", + "src": "1029:4:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4539,30 +4663,30 @@ "visibility": "internal" } ], - "src": "979:14:5" + "src": "1028:14:19" }, "payable": false, "returnParameters": { - "id": 2952, + "id": 6315, "nodeType": "ParameterList", "parameters": [], - "src": "1022:0:5" + "src": "1071:0:19" }, - "scope": 3194, - "src": "968:56:5", + "scope": 6564, + "src": "1017:56:19", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2959, + "id": 6322, "nodeType": "Block", - "src": "1074:2:5", + "src": "1123:2:19", "statements": [] }, "documentation": null, - "id": 2960, + "id": 6323, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -4570,16 +4694,16 @@ "name": "setParameters", "nodeType": "FunctionDefinition", "parameters": { - "id": 2957, + "id": 6320, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2956, + "id": 6319, "name": "price", "nodeType": "VariableDeclaration", - "scope": 2960, - "src": "1053:10:5", + "scope": 6323, + "src": "1102:10:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4587,10 +4711,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2955, + "id": 6318, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1053:4:5", + "src": "1102:4:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4600,30 +4724,30 @@ "visibility": "internal" } ], - "src": "1052:12:5" + "src": "1101:12:19" }, "payable": false, "returnParameters": { - "id": 2958, + "id": 6321, "nodeType": "ParameterList", "parameters": [], - "src": "1074:0:5" + "src": "1123:0:19" }, - "scope": 3194, - "src": "1030:46:5", + "scope": 6564, + "src": "1079:46:19", "stateMutability": "nonpayable", - "superFunction": 4309, + "superFunction": 1083, "visibility": "external" }, { "body": { - "id": 2981, + "id": 6347, "nodeType": "Block", - "src": "1335:2:5", + "src": "1422:2:19", "statements": [] }, "documentation": null, - "id": 2982, + "id": 6348, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -4631,16 +4755,16 @@ "name": "setup", "nodeType": "FunctionDefinition", "parameters": { - "id": 2979, + "id": 6345, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2965, + "id": 6328, "name": "parametersOfStages", "nodeType": "VariableDeclaration", - "scope": 2982, - "src": "1106:28:5", + "scope": 6348, + "src": "1155:28:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4650,27 +4774,27 @@ "typeName": { "baseType": { "baseType": { - "id": 2961, + "id": 6324, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1106:4:5", + "src": "1155:4:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2963, + "id": 6326, "length": { "argumentTypes": null, "hexValue": "36", - "id": 2962, + "id": 6325, "isConstant": false, "isLValue": false, "isPure": false, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1111:1:5", + "src": "1160:1:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": null, @@ -4679,16 +4803,16 @@ "value": "6" }, "nodeType": "ArrayTypeName", - "src": "1106:7:5", + "src": "1155:7:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$6_storage_ptr", "typeString": "uint256[6]" } }, - "id": 2964, + "id": 6327, "length": null, "nodeType": "ArrayTypeName", - "src": "1106:9:5", + "src": "1155:9:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$6_storage_$dyn_storage_ptr", "typeString": "uint256[6][]" @@ -4699,11 +4823,11 @@ }, { "constant": false, - "id": 2968, + "id": 6331, "name": "bonusConditionsOfStages", "nodeType": "VariableDeclaration", - "scope": 2982, - "src": "1144:30:5", + "scope": 6348, + "src": "1193:30:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4712,19 +4836,19 @@ }, "typeName": { "baseType": { - "id": 2966, + "id": 6329, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1144:4:5", + "src": "1193:4:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2967, + "id": 6330, "length": null, "nodeType": "ArrayTypeName", - "src": "1144:6:5", + "src": "1193:6:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -4735,11 +4859,11 @@ }, { "constant": false, - "id": 2973, + "id": 6336, "name": "parametersOfMilestones", "nodeType": "VariableDeclaration", - "scope": 2982, - "src": "1184:32:5", + "scope": 6348, + "src": "1233:32:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4749,27 +4873,27 @@ "typeName": { "baseType": { "baseType": { - "id": 2969, + "id": 6332, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1184:4:5", + "src": "1233:4:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2971, + "id": 6334, "length": { "argumentTypes": null, "hexValue": "34", - "id": 2970, + "id": 6333, "isConstant": false, "isLValue": false, "isPure": false, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1189:1:5", + "src": "1238:1:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": null, @@ -4778,16 +4902,16 @@ "value": "4" }, "nodeType": "ArrayTypeName", - "src": "1184:7:5", + "src": "1233:7:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_storage_ptr", "typeString": "uint256[4]" } }, - "id": 2972, + "id": 6335, "length": null, "nodeType": "ArrayTypeName", - "src": "1184:9:5", + "src": "1233:9:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$4_storage_$dyn_storage_ptr", "typeString": "uint256[4][]" @@ -4798,11 +4922,11 @@ }, { "constant": false, - "id": 2976, + "id": 6339, "name": "nameAndDescriptionsOffsetOfMilestones", "nodeType": "VariableDeclaration", - "scope": 2982, - "src": "1226:46:5", + "scope": 6348, + "src": "1275:46:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4811,19 +4935,19 @@ }, "typeName": { "baseType": { - "id": 2974, + "id": 6337, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "1226:6:5", + "src": "1275:6:19", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 2975, + "id": 6338, "length": null, "nodeType": "ArrayTypeName", - "src": "1226:8:5", + "src": "1275:8:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", "typeString": "uint32[]" @@ -4834,11 +4958,11 @@ }, { "constant": false, - "id": 2978, + "id": 6341, "name": "nameAndDescriptionsOfMilestones", "nodeType": "VariableDeclaration", - "scope": 2982, - "src": "1282:37:5", + "scope": 6348, + "src": "1331:37:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4846,10 +4970,10 @@ "typeString": "bytes" }, "typeName": { - "id": 2977, + "id": 6340, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1282:5:5", + "src": "1331:5:19", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -4857,52 +4981,88 @@ }, "value": null, "visibility": "internal" + }, + { + "constant": false, + "id": 6344, + "name": "paymentMethodsList", + "nodeType": "VariableDeclaration", + "scope": 6348, + "src": "1378:28:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 6342, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1378:7:19", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 6343, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1378:9:19", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "value": null, + "visibility": "internal" } ], - "src": "1096:229:5" + "src": "1145:267:19" }, "payable": false, "returnParameters": { - "id": 2980, + "id": 6346, "nodeType": "ParameterList", "parameters": [], - "src": "1335:0:5" + "src": "1422:0:19" }, - "scope": 3194, - "src": "1082:255:5", + "scope": 6564, + "src": "1131:293:19", "stateMutability": "nonpayable", - "superFunction": 4330, + "superFunction": 1107, "visibility": "external" }, { "body": { - "id": 2989, + "id": 6355, "nodeType": "Block", - "src": "1395:31:5", + "src": "1483:31:19", "statements": [ { "expression": { "argumentTypes": null, - "id": 2987, + "id": 6353, "name": "_wtoken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2932, - "src": "1412:7:5", + "referencedDeclaration": 6295, + "src": "1500:7:19", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" } }, - "functionReturnParameters": 2986, - "id": 2988, + "functionReturnParameters": 6352, + "id": 6354, "nodeType": "Return", - "src": "1405:14:5" + "src": "1493:14:19" } ] }, "documentation": null, - "id": 2990, + "id": 6356, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -4910,109 +5070,109 @@ "name": "getWToken", "nodeType": "FunctionDefinition", "parameters": { - "id": 2983, + "id": 6349, "nodeType": "ParameterList", "parameters": [], - "src": "1361:2:5" + "src": "1448:2:19" }, "payable": false, "returnParameters": { - "id": 2986, + "id": 6352, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2985, + "id": 6351, "name": "", "nodeType": "VariableDeclaration", - "scope": 2990, - "src": "1387:6:5", + "scope": 6356, + "src": "1474:7:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" }, "typeName": { "contractScope": null, - "id": 2984, - "name": "WToken", + "id": 6350, + "name": "IWToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5925, - "src": "1387:6:5", + "referencedDeclaration": 7630, + "src": "1474:7:19", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" } }, "value": null, "visibility": "internal" } ], - "src": "1386:8:5" + "src": "1473:9:19" }, - "scope": 3194, - "src": "1343:83:5", + "scope": 6564, + "src": "1430:84:19", "stateMutability": "view", - "superFunction": 4335, + "superFunction": 1112, "visibility": "external" }, { "body": { - "id": 2999, + "id": 6365, "nodeType": "Block", - "src": "1479:28:5", + "src": "1568:28:19", "statements": [ { "expression": { "argumentTypes": null, - "id": 2997, + "id": 6363, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2995, + "id": 6361, "name": "_wtoken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2932, - "src": "1489:7:5", + "referencedDeclaration": 6295, + "src": "1578:7:19", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2996, + "id": 6362, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2992, - "src": "1499:1:5", + "referencedDeclaration": 6358, + "src": "1588:1:19", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" } }, - "src": "1489:11:5", + "src": "1578:11:19", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" } }, - "id": 2998, + "id": 6364, "nodeType": "ExpressionStatement", - "src": "1489:11:5" + "src": "1578:11:19" } ] }, "documentation": null, - "id": 3000, + "id": 6366, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -5020,58 +5180,58 @@ "name": "_getWTokenMockData", "nodeType": "FunctionDefinition", "parameters": { - "id": 2993, + "id": 6359, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2992, + "id": 6358, "name": "a", "nodeType": "VariableDeclaration", - "scope": 3000, - "src": "1460:8:5", + "scope": 6366, + "src": "1548:9:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" }, "typeName": { "contractScope": null, - "id": 2991, - "name": "WToken", + "id": 6357, + "name": "IWToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5925, - "src": "1460:6:5", + "referencedDeclaration": 7630, + "src": "1548:7:19", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" } }, "value": null, "visibility": "internal" } ], - "src": "1459:10:5" + "src": "1547:11:19" }, "payable": false, "returnParameters": { - "id": 2994, + "id": 6360, "nodeType": "ParameterList", "parameters": [], - "src": "1479:0:5" + "src": "1568:0:19" }, - "scope": 3194, - "src": "1432:75:5", + "scope": 6564, + "src": "1520:76:19", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" }, { "body": { - "id": 3043, + "id": 6409, "nodeType": "Block", - "src": "1614:337:5", + "src": "1703:337:19", "statements": [ { "expression": { @@ -5083,26 +5243,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3017, + "id": 6383, "name": "_currentMilestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2930, - "src": "1645:18:5", + "referencedDeclaration": 6293, + "src": "1734:18:19", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$2945_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$6308_storage_$", "typeString": "mapping(uint256 => struct W12FundCrowdsaleStub.Milestone storage ref)" } }, - "id": 3019, + "id": 6385, "indexExpression": { "argumentTypes": null, - "id": 3018, + "id": 6384, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3002, - "src": "1664:5:5", + "referencedDeclaration": 6368, + "src": "1753:5:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5113,21 +5273,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1645:25:5", + "src": "1734:25:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$2945_storage", + "typeIdentifier": "t_struct$_Milestone_$6308_storage", "typeString": "struct W12FundCrowdsaleStub.Milestone storage ref" } }, - "id": 3020, + "id": 6386, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "endDate", "nodeType": "MemberAccess", - "referencedDeclaration": 2934, - "src": "1645:33:5", + "referencedDeclaration": 6297, + "src": "1734:33:19", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -5139,26 +5299,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3021, + "id": 6387, "name": "_currentMilestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2930, - "src": "1692:18:5", + "referencedDeclaration": 6293, + "src": "1781:18:19", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$2945_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$6308_storage_$", "typeString": "mapping(uint256 => struct W12FundCrowdsaleStub.Milestone storage ref)" } }, - "id": 3023, + "id": 6389, "indexExpression": { "argumentTypes": null, - "id": 3022, + "id": 6388, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3002, - "src": "1711:5:5", + "referencedDeclaration": 6368, + "src": "1800:5:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5169,21 +5329,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1692:25:5", + "src": "1781:25:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$2945_storage", + "typeIdentifier": "t_struct$_Milestone_$6308_storage", "typeString": "struct W12FundCrowdsaleStub.Milestone storage ref" } }, - "id": 3024, + "id": 6390, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "tranchePercent", "nodeType": "MemberAccess", - "referencedDeclaration": 2936, - "src": "1692:40:5", + "referencedDeclaration": 6299, + "src": "1781:40:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5195,26 +5355,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3025, + "id": 6391, "name": "_currentMilestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2930, - "src": "1746:18:5", + "referencedDeclaration": 6293, + "src": "1835:18:19", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$2945_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$6308_storage_$", "typeString": "mapping(uint256 => struct W12FundCrowdsaleStub.Milestone storage ref)" } }, - "id": 3027, + "id": 6393, "indexExpression": { "argumentTypes": null, - "id": 3026, + "id": 6392, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3002, - "src": "1765:5:5", + "referencedDeclaration": 6368, + "src": "1854:5:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5225,21 +5385,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1746:25:5", + "src": "1835:25:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$2945_storage", + "typeIdentifier": "t_struct$_Milestone_$6308_storage", "typeString": "struct W12FundCrowdsaleStub.Milestone storage ref" } }, - "id": 3028, + "id": 6394, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "voteEndDate", "nodeType": "MemberAccess", - "referencedDeclaration": 2938, - "src": "1746:37:5", + "referencedDeclaration": 6301, + "src": "1835:37:19", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -5251,26 +5411,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3029, + "id": 6395, "name": "_currentMilestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2930, - "src": "1797:18:5", + "referencedDeclaration": 6293, + "src": "1886:18:19", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$2945_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$6308_storage_$", "typeString": "mapping(uint256 => struct W12FundCrowdsaleStub.Milestone storage ref)" } }, - "id": 3031, + "id": 6397, "indexExpression": { "argumentTypes": null, - "id": 3030, + "id": 6396, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3002, - "src": "1816:5:5", + "referencedDeclaration": 6368, + "src": "1905:5:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5281,21 +5441,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1797:25:5", + "src": "1886:25:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$2945_storage", + "typeIdentifier": "t_struct$_Milestone_$6308_storage", "typeString": "struct W12FundCrowdsaleStub.Milestone storage ref" } }, - "id": 3032, + "id": 6398, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "withdrawalWindow", "nodeType": "MemberAccess", - "referencedDeclaration": 2940, - "src": "1797:42:5", + "referencedDeclaration": 6303, + "src": "1886:42:19", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -5307,26 +5467,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3033, + "id": 6399, "name": "_currentMilestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2930, - "src": "1853:18:5", + "referencedDeclaration": 6293, + "src": "1942:18:19", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$2945_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$6308_storage_$", "typeString": "mapping(uint256 => struct W12FundCrowdsaleStub.Milestone storage ref)" } }, - "id": 3035, + "id": 6401, "indexExpression": { "argumentTypes": null, - "id": 3034, + "id": 6400, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3002, - "src": "1872:5:5", + "referencedDeclaration": 6368, + "src": "1961:5:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5337,21 +5497,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1853:25:5", + "src": "1942:25:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$2945_storage", + "typeIdentifier": "t_struct$_Milestone_$6308_storage", "typeString": "struct W12FundCrowdsaleStub.Milestone storage ref" } }, - "id": 3036, + "id": 6402, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "name", "nodeType": "MemberAccess", - "referencedDeclaration": 2942, - "src": "1853:30:5", + "referencedDeclaration": 6305, + "src": "1942:30:19", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" @@ -5363,26 +5523,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3037, + "id": 6403, "name": "_currentMilestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2930, - "src": "1897:18:5", + "referencedDeclaration": 6293, + "src": "1986:18:19", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$2945_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$6308_storage_$", "typeString": "mapping(uint256 => struct W12FundCrowdsaleStub.Milestone storage ref)" } }, - "id": 3039, + "id": 6405, "indexExpression": { "argumentTypes": null, - "id": 3038, + "id": 6404, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3002, - "src": "1916:5:5", + "referencedDeclaration": 6368, + "src": "2005:5:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5393,49 +5553,49 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1897:25:5", + "src": "1986:25:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$2945_storage", + "typeIdentifier": "t_struct$_Milestone_$6308_storage", "typeString": "struct W12FundCrowdsaleStub.Milestone storage ref" } }, - "id": 3040, + "id": 6406, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "description", "nodeType": "MemberAccess", - "referencedDeclaration": 2944, - "src": "1897:37:5", + "referencedDeclaration": 6307, + "src": "1986:37:19", "typeDescriptions": { "typeIdentifier": "t_bytes_storage", "typeString": "bytes storage ref" } } ], - "id": 3041, + "id": 6407, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "1631:313:5", + "src": "1720:313:19", "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": 3016, - "id": 3042, + "functionReturnParameters": 6382, + "id": 6408, "nodeType": "Return", - "src": "1624:320:5" + "src": "1713:320:19" } ] }, "documentation": null, - "id": 3044, + "id": 6410, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -5443,16 +5603,16 @@ "name": "getMilestone", "nodeType": "FunctionDefinition", "parameters": { - "id": 3003, + "id": 6369, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3002, + "id": 6368, "name": "index", "nodeType": "VariableDeclaration", - "scope": 3044, - "src": "1535:10:5", + "scope": 6410, + "src": "1624:10:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5460,10 +5620,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3001, + "id": 6367, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1535:4:5", + "src": "1624:4:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5473,20 +5633,20 @@ "visibility": "internal" } ], - "src": "1534:12:5" + "src": "1623:12:19" }, "payable": false, "returnParameters": { - "id": 3016, + "id": 6382, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3005, + "id": 6371, "name": "", "nodeType": "VariableDeclaration", - "scope": 3044, - "src": "1570:6:5", + "scope": 6410, + "src": "1659:6:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5494,10 +5654,10 @@ "typeString": "uint32" }, "typeName": { - "id": 3004, + "id": 6370, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "1570:6:5", + "src": "1659:6:19", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -5508,11 +5668,11 @@ }, { "constant": false, - "id": 3007, + "id": 6373, "name": "", "nodeType": "VariableDeclaration", - "scope": 3044, - "src": "1578:4:5", + "scope": 6410, + "src": "1667:4:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5520,10 +5680,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3006, + "id": 6372, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1578:4:5", + "src": "1667:4:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5534,11 +5694,11 @@ }, { "constant": false, - "id": 3009, + "id": 6375, "name": "", "nodeType": "VariableDeclaration", - "scope": 3044, - "src": "1584:6:5", + "scope": 6410, + "src": "1673:6:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5546,10 +5706,10 @@ "typeString": "uint32" }, "typeName": { - "id": 3008, + "id": 6374, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "1584:6:5", + "src": "1673:6:19", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -5560,11 +5720,11 @@ }, { "constant": false, - "id": 3011, + "id": 6377, "name": "", "nodeType": "VariableDeclaration", - "scope": 3044, - "src": "1592:6:5", + "scope": 6410, + "src": "1681:6:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5572,10 +5732,10 @@ "typeString": "uint32" }, "typeName": { - "id": 3010, + "id": 6376, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "1592:6:5", + "src": "1681:6:19", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -5586,11 +5746,11 @@ }, { "constant": false, - "id": 3013, + "id": 6379, "name": "", "nodeType": "VariableDeclaration", - "scope": 3044, - "src": "1600:5:5", + "scope": 6410, + "src": "1689:5:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5598,10 +5758,10 @@ "typeString": "bytes" }, "typeName": { - "id": 3012, + "id": 6378, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1600:5:5", + "src": "1689:5:19", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -5612,11 +5772,11 @@ }, { "constant": false, - "id": 3015, + "id": 6381, "name": "", "nodeType": "VariableDeclaration", - "scope": 3044, - "src": "1607:5:5", + "scope": 6410, + "src": "1696:5:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5624,10 +5784,10 @@ "typeString": "bytes" }, "typeName": { - "id": 3014, + "id": 6380, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1607:5:5", + "src": "1696:5:19", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -5637,24 +5797,24 @@ "visibility": "internal" } ], - "src": "1569:44:5" + "src": "1658:44:19" }, - "scope": 3194, - "src": "1513:438:5", + "scope": 6564, + "src": "1602:438:19", "stateMutability": "view", - "superFunction": 4352, + "superFunction": 1129, "visibility": "external" }, { "body": { - "id": 3074, + "id": 6440, "nodeType": "Block", - "src": "2063:229:5", + "src": "2152:229:19", "statements": [ { "expression": { "argumentTypes": null, - "id": 3072, + "id": 6438, "isConstant": false, "isLValue": false, "isPure": false, @@ -5663,26 +5823,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3061, + "id": 6427, "name": "_currentMilestones", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2930, - "src": "2073:18:5", + "referencedDeclaration": 6293, + "src": "2162:18:19", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$2945_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Milestone_$6308_storage_$", "typeString": "mapping(uint256 => struct W12FundCrowdsaleStub.Milestone storage ref)" } }, - "id": 3063, + "id": 6429, "indexExpression": { "argumentTypes": null, - "id": 3062, + "id": 6428, "name": "idx", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3046, - "src": "2092:3:5", + "referencedDeclaration": 6412, + "src": "2181:3:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5693,9 +5853,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2073:23:5", + "src": "2162:23:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$2945_storage", + "typeIdentifier": "t_struct$_Milestone_$6308_storage", "typeString": "struct W12FundCrowdsaleStub.Milestone storage ref" } }, @@ -5706,12 +5866,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3065, + "id": 6431, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3048, - "src": "2132:1:5", + "referencedDeclaration": 6414, + "src": "2221:1:19", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -5719,12 +5879,12 @@ }, { "argumentTypes": null, - "id": 3066, + "id": 6432, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3050, - "src": "2163:1:5", + "referencedDeclaration": 6416, + "src": "2252:1:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5732,12 +5892,12 @@ }, { "argumentTypes": null, - "id": 3067, + "id": 6433, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3052, - "src": "2191:1:5", + "referencedDeclaration": 6418, + "src": "2280:1:19", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -5745,12 +5905,12 @@ }, { "argumentTypes": null, - "id": 3068, + "id": 6434, "name": "d", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3054, - "src": "2224:1:5", + "referencedDeclaration": 6420, + "src": "2313:1:19", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -5758,12 +5918,12 @@ }, { "argumentTypes": null, - "id": 3069, + "id": 6435, "name": "e", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3056, - "src": "2245:1:5", + "referencedDeclaration": 6422, + "src": "2334:1:19", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -5771,12 +5931,12 @@ }, { "argumentTypes": null, - "id": 3070, + "id": 6436, "name": "f", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3058, - "src": "2273:1:5", + "referencedDeclaration": 6424, + "src": "2362:1:19", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -5785,18 +5945,18 @@ ], "expression": { "argumentTypes": null, - "id": 3064, + "id": 6430, "name": "Milestone", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2945, - "src": "2099:9:5", + "referencedDeclaration": 6308, + "src": "2188:9:19", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Milestone_$2945_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_Milestone_$6308_storage_ptr_$", "typeString": "type(struct W12FundCrowdsaleStub.Milestone storage pointer)" } }, - "id": 3071, + "id": 6437, "isConstant": false, "isLValue": false, "isPure": false, @@ -5811,26 +5971,26 @@ "description" ], "nodeType": "FunctionCall", - "src": "2099:186:5", + "src": "2188:186:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$2945_memory", + "typeIdentifier": "t_struct$_Milestone_$6308_memory", "typeString": "struct W12FundCrowdsaleStub.Milestone memory" } }, - "src": "2073:212:5", + "src": "2162:212:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$2945_storage", + "typeIdentifier": "t_struct$_Milestone_$6308_storage", "typeString": "struct W12FundCrowdsaleStub.Milestone storage ref" } }, - "id": 3073, + "id": 6439, "nodeType": "ExpressionStatement", - "src": "2073:212:5" + "src": "2162:212:19" } ] }, "documentation": null, - "id": 3075, + "id": 6441, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -5838,16 +5998,16 @@ "name": "_getMilestoneMockData", "nodeType": "FunctionDefinition", "parameters": { - "id": 3059, + "id": 6425, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3046, + "id": 6412, "name": "idx", "nodeType": "VariableDeclaration", - "scope": 3075, - "src": "1988:8:5", + "scope": 6441, + "src": "2077:8:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5855,10 +6015,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3045, + "id": 6411, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1988:4:5", + "src": "2077:4:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5869,11 +6029,11 @@ }, { "constant": false, - "id": 3048, + "id": 6414, "name": "a", "nodeType": "VariableDeclaration", - "scope": 3075, - "src": "1998:8:5", + "scope": 6441, + "src": "2087:8:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5881,10 +6041,10 @@ "typeString": "uint32" }, "typeName": { - "id": 3047, + "id": 6413, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "1998:6:5", + "src": "2087:6:19", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -5895,11 +6055,11 @@ }, { "constant": false, - "id": 3050, + "id": 6416, "name": "b", "nodeType": "VariableDeclaration", - "scope": 3075, - "src": "2008:6:5", + "scope": 6441, + "src": "2097:6:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5907,10 +6067,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3049, + "id": 6415, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2008:4:5", + "src": "2097:4:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5921,11 +6081,11 @@ }, { "constant": false, - "id": 3052, + "id": 6418, "name": "c", "nodeType": "VariableDeclaration", - "scope": 3075, - "src": "2016:8:5", + "scope": 6441, + "src": "2105:8:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5933,10 +6093,10 @@ "typeString": "uint32" }, "typeName": { - "id": 3051, + "id": 6417, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "2016:6:5", + "src": "2105:6:19", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -5947,11 +6107,11 @@ }, { "constant": false, - "id": 3054, + "id": 6420, "name": "d", "nodeType": "VariableDeclaration", - "scope": 3075, - "src": "2026:8:5", + "scope": 6441, + "src": "2115:8:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5959,10 +6119,10 @@ "typeString": "uint32" }, "typeName": { - "id": 3053, + "id": 6419, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "2026:6:5", + "src": "2115:6:19", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -5973,11 +6133,11 @@ }, { "constant": false, - "id": 3056, + "id": 6422, "name": "e", "nodeType": "VariableDeclaration", - "scope": 3075, - "src": "2036:7:5", + "scope": 6441, + "src": "2125:7:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5985,10 +6145,10 @@ "typeString": "bytes" }, "typeName": { - "id": 3055, + "id": 6421, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2036:5:5", + "src": "2125:5:19", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -5999,11 +6159,11 @@ }, { "constant": false, - "id": 3058, + "id": 6424, "name": "f", "nodeType": "VariableDeclaration", - "scope": 3075, - "src": "2045:7:5", + "scope": 6441, + "src": "2134:7:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6011,10 +6171,10 @@ "typeString": "bytes" }, "typeName": { - "id": 3057, + "id": 6423, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2045:5:5", + "src": "2134:5:19", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -6024,30 +6184,30 @@ "visibility": "internal" } ], - "src": "1987:66:5" + "src": "2076:66:19" }, "payable": false, "returnParameters": { - "id": 3060, + "id": 6426, "nodeType": "ParameterList", "parameters": [], - "src": "2063:0:5" + "src": "2152:0:19" }, - "scope": 3194, - "src": "1957:335:5", + "scope": 6564, + "src": "2046:335:19", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" }, { "body": { - "id": 3094, + "id": 6460, "nodeType": "Block", - "src": "2397:2:5", + "src": "2486:2:19", "statements": [] }, "documentation": null, - "id": 3095, + "id": 6461, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -6055,16 +6215,16 @@ "name": "getStage", "nodeType": "FunctionDefinition", "parameters": { - "id": 3078, + "id": 6444, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3077, + "id": 6443, "name": "index", "nodeType": "VariableDeclaration", - "scope": 3095, - "src": "2316:10:5", + "scope": 6461, + "src": "2405:10:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6072,10 +6232,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3076, + "id": 6442, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2316:4:5", + "src": "2405:4:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6085,20 +6245,20 @@ "visibility": "internal" } ], - "src": "2315:12:5" + "src": "2404:12:19" }, "payable": false, "returnParameters": { - "id": 3093, + "id": 6459, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3080, + "id": 6446, "name": "", "nodeType": "VariableDeclaration", - "scope": 3095, - "src": "2351:6:5", + "scope": 6461, + "src": "2440:6:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6106,10 +6266,10 @@ "typeString": "uint32" }, "typeName": { - "id": 3079, + "id": 6445, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "2351:6:5", + "src": "2440:6:19", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -6120,11 +6280,11 @@ }, { "constant": false, - "id": 3082, + "id": 6448, "name": "", "nodeType": "VariableDeclaration", - "scope": 3095, - "src": "2359:6:5", + "scope": 6461, + "src": "2448:6:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6132,10 +6292,10 @@ "typeString": "uint32" }, "typeName": { - "id": 3081, + "id": 6447, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "2359:6:5", + "src": "2448:6:19", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -6146,11 +6306,11 @@ }, { "constant": false, - "id": 3084, + "id": 6450, "name": "", "nodeType": "VariableDeclaration", - "scope": 3095, - "src": "2367:4:5", + "scope": 6461, + "src": "2456:4:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6158,10 +6318,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3083, + "id": 6449, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2367:4:5", + "src": "2456:4:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6172,11 +6332,11 @@ }, { "constant": false, - "id": 3086, + "id": 6452, "name": "", "nodeType": "VariableDeclaration", - "scope": 3095, - "src": "2373:6:5", + "scope": 6461, + "src": "2462:6:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6184,10 +6344,10 @@ "typeString": "uint32" }, "typeName": { - "id": 3085, + "id": 6451, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "2373:6:5", + "src": "2462:6:19", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -6198,11 +6358,11 @@ }, { "constant": false, - "id": 3089, + "id": 6455, "name": "", "nodeType": "VariableDeclaration", - "scope": 3095, - "src": "2381:6:5", + "scope": 6461, + "src": "2470:6:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6211,19 +6371,19 @@ }, "typeName": { "baseType": { - "id": 3087, + "id": 6453, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2381:4:5", + "src": "2470:4:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3088, + "id": 6454, "length": null, "nodeType": "ArrayTypeName", - "src": "2381:6:5", + "src": "2470:6:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -6234,11 +6394,11 @@ }, { "constant": false, - "id": 3092, + "id": 6458, "name": "", "nodeType": "VariableDeclaration", - "scope": 3095, - "src": "2389:6:5", + "scope": 6461, + "src": "2478:6:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6247,19 +6407,19 @@ }, "typeName": { "baseType": { - "id": 3090, + "id": 6456, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2389:4:5", + "src": "2478:4:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3091, + "id": 6457, "length": null, "nodeType": "ArrayTypeName", - "src": "2389:6:5", + "src": "2478:6:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -6269,19 +6429,19 @@ "visibility": "internal" } ], - "src": "2350:46:5" + "src": "2439:46:19" }, - "scope": 3194, - "src": "2298:101:5", + "scope": 6564, + "src": "2387:101:19", "stateMutability": "view", - "superFunction": 4371, + "superFunction": 1148, "visibility": "external" }, { "body": { - "id": 3106, + "id": 6472, "nodeType": "Block", - "src": "2476:77:5", + "src": "2565:77:19", "statements": [ { "expression": { @@ -6289,12 +6449,12 @@ "components": [ { "argumentTypes": null, - "id": 3102, + "id": 6468, "name": "_currentMilestoneIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2920, - "src": "2494:22:5", + "referencedDeclaration": 6283, + "src": "2583:22:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6302,40 +6462,40 @@ }, { "argumentTypes": null, - "id": 3103, + "id": 6469, "name": "_currentMilestoneIndexFound", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2922, - "src": "2518:27:5", + "referencedDeclaration": 6285, + "src": "2607:27:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], - "id": 3104, + "id": 6470, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "2493:53:5", + "src": "2582:53:19", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", "typeString": "tuple(uint256,bool)" } }, - "functionReturnParameters": 3101, - "id": 3105, + "functionReturnParameters": 6467, + "id": 6471, "nodeType": "Return", - "src": "2486:60:5" + "src": "2575:60:19" } ] }, "documentation": null, - "id": 3107, + "id": 6473, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -6343,23 +6503,23 @@ "name": "getCurrentMilestoneIndex", "nodeType": "FunctionDefinition", "parameters": { - "id": 3096, + "id": 6462, "nodeType": "ParameterList", "parameters": [], - "src": "2438:2:5" + "src": "2527:2:19" }, "payable": false, "returnParameters": { - "id": 3101, + "id": 6467, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3098, + "id": 6464, "name": "", "nodeType": "VariableDeclaration", - "scope": 3107, - "src": "2464:4:5", + "scope": 6473, + "src": "2553:4:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6367,10 +6527,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3097, + "id": 6463, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2464:4:5", + "src": "2553:4:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6381,11 +6541,11 @@ }, { "constant": false, - "id": 3100, + "id": 6466, "name": "", "nodeType": "VariableDeclaration", - "scope": 3107, - "src": "2470:4:5", + "scope": 6473, + "src": "2559:4:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6393,10 +6553,10 @@ "typeString": "bool" }, "typeName": { - "id": 3099, + "id": 6465, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2470:4:5", + "src": "2559:4:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6406,36 +6566,36 @@ "visibility": "internal" } ], - "src": "2463:12:5" + "src": "2552:12:19" }, - "scope": 3194, - "src": "2405:148:5", + "scope": 6564, + "src": "2494:148:19", "stateMutability": "view", - "superFunction": 4378, + "superFunction": 1155, "visibility": "external" }, { "body": { - "id": 3122, + "id": 6488, "nodeType": "Block", - "src": "2627:84:5", + "src": "2716:84:19", "statements": [ { "expression": { "argumentTypes": null, - "id": 3116, + "id": 6482, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3114, + "id": 6480, "name": "_currentMilestoneIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2920, - "src": "2637:22:5", + "referencedDeclaration": 6283, + "src": "2726:22:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6445,43 +6605,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3115, + "id": 6481, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3109, - "src": "2662:1:5", + "referencedDeclaration": 6475, + "src": "2751:1:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2637:26:5", + "src": "2726:26:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3117, + "id": 6483, "nodeType": "ExpressionStatement", - "src": "2637:26:5" + "src": "2726:26:19" }, { "expression": { "argumentTypes": null, - "id": 3120, + "id": 6486, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3118, + "id": 6484, "name": "_currentMilestoneIndexFound", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2922, - "src": "2673:27:5", + "referencedDeclaration": 6285, + "src": "2762:27:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6491,31 +6651,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3119, + "id": 6485, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3111, - "src": "2703:1:5", + "referencedDeclaration": 6477, + "src": "2792:1:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2673:31:5", + "src": "2762:31:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3121, + "id": 6487, "nodeType": "ExpressionStatement", - "src": "2673:31:5" + "src": "2762:31:19" } ] }, "documentation": null, - "id": 3123, + "id": 6489, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -6523,16 +6683,16 @@ "name": "_getCurrentMilestoneIndexMockData", "nodeType": "FunctionDefinition", "parameters": { - "id": 3112, + "id": 6478, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3109, + "id": 6475, "name": "a", "nodeType": "VariableDeclaration", - "scope": 3123, - "src": "2602:6:5", + "scope": 6489, + "src": "2691:6:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6540,10 +6700,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3108, + "id": 6474, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2602:4:5", + "src": "2691:4:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6554,11 +6714,11 @@ }, { "constant": false, - "id": 3111, + "id": 6477, "name": "b", "nodeType": "VariableDeclaration", - "scope": 3123, - "src": "2610:6:5", + "scope": 6489, + "src": "2699:6:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6566,10 +6726,10 @@ "typeString": "bool" }, "typeName": { - "id": 3110, + "id": 6476, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2610:4:5", + "src": "2699:4:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6579,26 +6739,26 @@ "visibility": "internal" } ], - "src": "2601:16:5" + "src": "2690:16:19" }, "payable": false, "returnParameters": { - "id": 3113, + "id": 6479, "nodeType": "ParameterList", "parameters": [], - "src": "2627:0:5" + "src": "2716:0:19" }, - "scope": 3194, - "src": "2559:152:5", + "scope": 6564, + "src": "2648:152:19", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" }, { "body": { - "id": 3134, + "id": 6500, "nodeType": "Block", - "src": "2797:71:5", + "src": "2886:71:19", "statements": [ { "expression": { @@ -6606,12 +6766,12 @@ "components": [ { "argumentTypes": null, - "id": 3130, + "id": 6496, "name": "_lastMilestoneIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2924, - "src": "2815:19:5", + "referencedDeclaration": 6287, + "src": "2904:19:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6619,40 +6779,40 @@ }, { "argumentTypes": null, - "id": 3131, + "id": 6497, "name": "_lastMilestoneIndexFound", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2926, - "src": "2836:24:5", + "referencedDeclaration": 6289, + "src": "2925:24:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], - "id": 3132, + "id": 6498, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "2814:47:5", + "src": "2903:47:19", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", "typeString": "tuple(uint256,bool)" } }, - "functionReturnParameters": 3129, - "id": 3133, + "functionReturnParameters": 6495, + "id": 6499, "nodeType": "Return", - "src": "2807:54:5" + "src": "2896:54:19" } ] }, "documentation": null, - "id": 3135, + "id": 6501, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -6660,23 +6820,23 @@ "name": "getLastMilestoneIndex", "nodeType": "FunctionDefinition", "parameters": { - "id": 3124, + "id": 6490, "nodeType": "ParameterList", "parameters": [], - "src": "2747:2:5" + "src": "2836:2:19" }, "payable": false, "returnParameters": { - "id": 3129, + "id": 6495, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3126, + "id": 6492, "name": "index", "nodeType": "VariableDeclaration", - "scope": 3135, - "src": "2773:10:5", + "scope": 6501, + "src": "2862:10:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6684,10 +6844,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3125, + "id": 6491, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2773:4:5", + "src": "2862:4:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6698,11 +6858,11 @@ }, { "constant": false, - "id": 3128, + "id": 6494, "name": "found", "nodeType": "VariableDeclaration", - "scope": 3135, - "src": "2785:10:5", + "scope": 6501, + "src": "2874:10:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6710,10 +6870,10 @@ "typeString": "bool" }, "typeName": { - "id": 3127, + "id": 6493, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2785:4:5", + "src": "2874:4:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6723,36 +6883,36 @@ "visibility": "internal" } ], - "src": "2772:24:5" + "src": "2861:24:19" }, - "scope": 3194, - "src": "2717:151:5", + "scope": 6564, + "src": "2806:151:19", "stateMutability": "view", - "superFunction": 4385, + "superFunction": 1162, "visibility": "external" }, { "body": { - "id": 3150, + "id": 6516, "nodeType": "Block", - "src": "2939:78:5", + "src": "3028:78:19", "statements": [ { "expression": { "argumentTypes": null, - "id": 3144, + "id": 6510, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3142, + "id": 6508, "name": "_lastMilestoneIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2924, - "src": "2949:19:5", + "referencedDeclaration": 6287, + "src": "3038:19:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6762,43 +6922,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3143, + "id": 6509, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3137, - "src": "2971:1:5", + "referencedDeclaration": 6503, + "src": "3060:1:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2949:23:5", + "src": "3038:23:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3145, + "id": 6511, "nodeType": "ExpressionStatement", - "src": "2949:23:5" + "src": "3038:23:19" }, { "expression": { "argumentTypes": null, - "id": 3148, + "id": 6514, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3146, + "id": 6512, "name": "_lastMilestoneIndexFound", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2926, - "src": "2982:24:5", + "referencedDeclaration": 6289, + "src": "3071:24:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6808,31 +6968,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3147, + "id": 6513, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3139, - "src": "3009:1:5", + "referencedDeclaration": 6505, + "src": "3098:1:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2982:28:5", + "src": "3071:28:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3149, + "id": 6515, "nodeType": "ExpressionStatement", - "src": "2982:28:5" + "src": "3071:28:19" } ] }, "documentation": null, - "id": 3151, + "id": 6517, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -6840,16 +7000,16 @@ "name": "_getLastMilestoneIndexMockData", "nodeType": "FunctionDefinition", "parameters": { - "id": 3140, + "id": 6506, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3137, + "id": 6503, "name": "a", "nodeType": "VariableDeclaration", - "scope": 3151, - "src": "2914:6:5", + "scope": 6517, + "src": "3003:6:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6857,10 +7017,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3136, + "id": 6502, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2914:4:5", + "src": "3003:4:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6871,11 +7031,11 @@ }, { "constant": false, - "id": 3139, + "id": 6505, "name": "b", "nodeType": "VariableDeclaration", - "scope": 3151, - "src": "2922:6:5", + "scope": 6517, + "src": "3011:6:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6883,10 +7043,10 @@ "typeString": "bool" }, "typeName": { - "id": 3138, + "id": 6504, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2922:4:5", + "src": "3011:4:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6896,30 +7056,30 @@ "visibility": "internal" } ], - "src": "2913:16:5" + "src": "3002:16:19" }, "payable": false, "returnParameters": { - "id": 3141, + "id": 6507, "nodeType": "ParameterList", "parameters": [], - "src": "2939:0:5" + "src": "3028:0:19" }, - "scope": 3194, - "src": "2874:143:5", + "scope": 6564, + "src": "2963:143:19", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" }, { "body": { - "id": 3156, + "id": 6522, "nodeType": "Block", - "src": "3080:2:5", + "src": "3169:2:19", "statements": [] }, "documentation": null, - "id": 3157, + "id": 6523, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -6927,23 +7087,23 @@ "name": "milestonesLength", "nodeType": "FunctionDefinition", "parameters": { - "id": 3152, + "id": 6518, "nodeType": "ParameterList", "parameters": [], - "src": "3048:2:5" + "src": "3137:2:19" }, "payable": false, "returnParameters": { - "id": 3155, + "id": 6521, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3154, + "id": 6520, "name": "", "nodeType": "VariableDeclaration", - "scope": 3157, - "src": "3074:4:5", + "scope": 6523, + "src": "3163:4:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6951,10 +7111,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3153, + "id": 6519, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3074:4:5", + "src": "3163:4:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6964,23 +7124,23 @@ "visibility": "internal" } ], - "src": "3073:6:5" + "src": "3162:6:19" }, - "scope": 3194, - "src": "3023:59:5", + "scope": 6564, + "src": "3112:59:19", "stateMutability": "view", - "superFunction": 4390, + "superFunction": 1167, "visibility": "external" }, { "body": { - "id": 3164, + "id": 6530, "nodeType": "Block", - "src": "3167:2:5", + "src": "3256:2:19", "statements": [] }, "documentation": null, - "id": 3165, + "id": 6531, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -6988,23 +7148,23 @@ "name": "getCurrentStageIndex", "nodeType": "FunctionDefinition", "parameters": { - "id": 3158, + "id": 6524, "nodeType": "ParameterList", "parameters": [], - "src": "3117:2:5" + "src": "3206:2:19" }, "payable": false, "returnParameters": { - "id": 3163, + "id": 6529, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3160, + "id": 6526, "name": "index", "nodeType": "VariableDeclaration", - "scope": 3165, - "src": "3143:10:5", + "scope": 6531, + "src": "3232:10:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7012,10 +7172,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3159, + "id": 6525, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3143:4:5", + "src": "3232:4:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7026,11 +7186,11 @@ }, { "constant": false, - "id": 3162, + "id": 6528, "name": "found", "nodeType": "VariableDeclaration", - "scope": 3165, - "src": "3155:10:5", + "scope": 6531, + "src": "3244:10:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7038,10 +7198,10 @@ "typeString": "bool" }, "typeName": { - "id": 3161, + "id": 6527, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3155:4:5", + "src": "3244:4:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7051,23 +7211,23 @@ "visibility": "internal" } ], - "src": "3142:24:5" + "src": "3231:24:19" }, - "scope": 3194, - "src": "3088:81:5", + "scope": 6564, + "src": "3177:81:19", "stateMutability": "view", - "superFunction": 4397, + "superFunction": 1174, "visibility": "external" }, { "body": { - "id": 3172, + "id": 6538, "nodeType": "Block", - "src": "3250:2:5", + "src": "3339:2:19", "statements": [] }, "documentation": null, - "id": 3173, + "id": 6539, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -7075,16 +7235,16 @@ "name": "getSaleVolumeBonus", "nodeType": "FunctionDefinition", "parameters": { - "id": 3168, + "id": 6534, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3167, + "id": 6533, "name": "value", "nodeType": "VariableDeclaration", - "scope": 3173, - "src": "3203:10:5", + "scope": 6539, + "src": "3292:10:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7092,10 +7252,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3166, + "id": 6532, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3203:4:5", + "src": "3292:4:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7105,20 +7265,20 @@ "visibility": "internal" } ], - "src": "3202:12:5" + "src": "3291:12:19" }, "payable": false, "returnParameters": { - "id": 3171, + "id": 6537, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3170, + "id": 6536, "name": "bonus", "nodeType": "VariableDeclaration", - "scope": 3173, - "src": "3238:10:5", + "scope": 6539, + "src": "3327:10:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7126,10 +7286,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3169, + "id": 6535, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3238:4:5", + "src": "3327:4:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7139,23 +7299,23 @@ "visibility": "internal" } ], - "src": "3237:12:5" + "src": "3326:12:19" }, - "scope": 3194, - "src": "3175:77:5", + "scope": 6564, + "src": "3264:77:19", "stateMutability": "view", - "superFunction": 4404, + "superFunction": 1181, "visibility": "external" }, { "body": { - "id": 3178, + "id": 6544, "nodeType": "Block", - "src": "3306:2:5", + "src": "3395:2:19", "statements": [] }, "documentation": null, - "id": 3179, + "id": 6545, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -7163,23 +7323,23 @@ "name": "isEnded", "nodeType": "FunctionDefinition", "parameters": { - "id": 3174, + "id": 6540, "nodeType": "ParameterList", "parameters": [], - "src": "3274:2:5" + "src": "3363:2:19" }, "payable": false, "returnParameters": { - "id": 3177, + "id": 6543, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3176, + "id": 6542, "name": "", "nodeType": "VariableDeclaration", - "scope": 3179, - "src": "3300:4:5", + "scope": 6545, + "src": "3389:4:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7187,10 +7347,10 @@ "typeString": "bool" }, "typeName": { - "id": 3175, + "id": 6541, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3300:4:5", + "src": "3389:4:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7200,23 +7360,23 @@ "visibility": "internal" } ], - "src": "3299:6:5" + "src": "3388:6:19" }, - "scope": 3194, - "src": "3258:50:5", + "scope": 6564, + "src": "3347:50:19", "stateMutability": "view", - "superFunction": 4409, + "superFunction": 1186, "visibility": "external" }, { "body": { - "id": 3184, + "id": 6550, "nodeType": "Block", - "src": "3367:2:5", + "src": "3456:2:19", "statements": [] }, "documentation": null, - "id": 3185, + "id": 6551, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -7224,23 +7384,23 @@ "name": "isSaleActive", "nodeType": "FunctionDefinition", "parameters": { - "id": 3180, + "id": 6546, "nodeType": "ParameterList", "parameters": [], - "src": "3335:2:5" + "src": "3424:2:19" }, "payable": false, "returnParameters": { - "id": 3183, + "id": 6549, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3182, + "id": 6548, "name": "", "nodeType": "VariableDeclaration", - "scope": 3185, - "src": "3361:4:5", + "scope": 6551, + "src": "3450:4:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7248,10 +7408,10 @@ "typeString": "bool" }, "typeName": { - "id": 3181, + "id": 6547, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3361:4:5", + "src": "3450:4:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7261,23 +7421,23 @@ "visibility": "internal" } ], - "src": "3360:6:5" + "src": "3449:6:19" }, - "scope": 3194, - "src": "3314:55:5", + "scope": 6564, + "src": "3403:55:19", "stateMutability": "view", - "superFunction": 4414, + "superFunction": 1191, "visibility": "external" }, { "body": { - "id": 3188, + "id": 6554, "nodeType": "Block", - "src": "3403:2:5", + "src": "3492:2:19", "statements": [] }, "documentation": null, - "id": 3189, + "id": 6555, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -7285,33 +7445,33 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 3186, + "id": 6552, "nodeType": "ParameterList", "parameters": [], - "src": "3383:2:5" + "src": "3472:2:19" }, "payable": true, "returnParameters": { - "id": 3187, + "id": 6553, "nodeType": "ParameterList", "parameters": [], - "src": "3403:0:5" + "src": "3492:0:19" }, - "scope": 3194, - "src": "3375:30:5", + "scope": 6564, + "src": "3464:30:19", "stateMutability": "payable", - "superFunction": 4417, + "superFunction": null, "visibility": "external" }, { "body": { - "id": 3192, + "id": 6562, "nodeType": "Block", - "src": "3449:2:5", + "src": "3565:2:19", "statements": [] }, "documentation": null, - "id": 3193, + "id": 6563, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -7319,30 +7479,83 @@ "name": "buyTokens", "nodeType": "FunctionDefinition", "parameters": { - "id": 3190, + "id": 6560, "nodeType": "ParameterList", - "parameters": [], - "src": "3429:2:5" + "parameters": [ + { + "constant": false, + "id": 6557, + "name": "method", + "nodeType": "VariableDeclaration", + "scope": 6563, + "src": "3519:14:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6556, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3519:7:19", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6559, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 6563, + "src": "3535:11:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6558, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3535:4:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3518:29:19" }, "payable": true, "returnParameters": { - "id": 3191, + "id": 6561, "nodeType": "ParameterList", "parameters": [], - "src": "3449:0:5" + "src": "3565:0:19" }, - "scope": 3194, - "src": "3411:40:5", + "scope": 6564, + "src": "3500:67:19", "stateMutability": "payable", - "superFunction": 4420, + "superFunction": 1198, "visibility": "external" } ], - "scope": 3195, - "src": "476:2977:5" + "scope": 6565, + "src": "524:3045:19" } ], - "src": "0:3454:5" + "src": "0:3570:19" }, "compiler": { "name": "solc", @@ -7350,5 +7563,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-02T11:52:56.687Z" + "updatedAt": "2018-10-22T07:56:01.575Z" } \ No newline at end of file diff --git a/build/contracts/W12FundFactory.json b/build/contracts/W12FundFactory.json index 4dbdf5b1..1560d1cf 100644 --- a/build/contracts/W12FundFactory.json +++ b/build/contracts/W12FundFactory.json @@ -20,6 +20,10 @@ { "name": "version", "type": "uint256" + }, + { + "name": "_rates", + "type": "address" } ], "payable": false, @@ -66,24 +70,24 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b5060405160208061232a83398101604052516000556122f6806100346000396000f3006080604052600436106100325763ffffffff60e060020a60003504166317444626811461003757806354fd4d501461007d575b600080fd5b34801561004357600080fd5b50610061600160a060020a03600435811690602435166044356100a4565b60408051600160a060020a039092168252519081900360200190f35b34801561008957600080fd5b50610092610274565b60408051918252519081900360200190f35b60008054826100b161027a565b9182526020820152604080519182900301906000f0801580156100d8573d6000803e3d6000fd5b50905080600160a060020a031663acb3c073856040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801561013657600080fd5b505af115801561014a573d6000803e3d6000fd5b5050505080600160a060020a03166323bffccc846040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b1580156101a957600080fd5b505af11580156101bd573d6000803e3d6000fd5b5050604080517ff2fde38b0000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a038516935063f2fde38b9250602480830192600092919082900301818387803b15801561022157600080fd5b505af1158015610235573d6000803e3d6000fd5b5050604051600160a060020a03841692507fbeacbaab8887097be64d667b2a06e62db7e00cc1429a8ebe02535e97a6cc8fcd9150600090a29392505050565b60005481565b6040516120408061028b833901905600608060405260016002553480156200001657600080fd5b5060405160408062002040833981016040528051602090910151600082905560018054600160a060020a03191633179055620000608164010000000062001dfc6200009b82021704565b80156200008557506064620000838264010000000062001e4f620000d882021704565b105b15156200009157600080fd5b600d555062000184565b6000620000b06401000000006200012a810204565b8210158015620000d25750620000ce6401000000006200012f810204565b8211155b92915050565b6000620000ee826401000000006200009b810204565b1515620000fa57600080fd5b620000d2620001116401000000006200014c810204565b8390600a0a64010000000062001d1f6200015182021704565b600090565b60006200014464010000000062000167810204565b600a0a905090565b600290565b600081838115156200015f57fe5b049392505050565b60006200017c6401000000006200014c810204565b600201905090565b611eac80620001946000396000f3006080604052600436106101455763ffffffff60e060020a60003504166304cd5294811461014a5780630babd8641461017457806311fa7da2146101a557806319ae48ed146101df57806323585f96146101f457806323bffccc14610220578063278ecde1146102435780633b97e8561461025b5780633fa911ae14610270578063483a20b21461028557806354fd4d50146102a65780635641f3c3146102bb5780636ebc0af1146102d0578063715018a6146102e55780638119c065146102fa5780638ce2bc2a1461030f5780638da5cb5b14610324578063958799cb1461033957806397a993aa146103505780639c1e03a01461038f5780639e80baac146103a4578063a328665a146103b9578063ac2a2a34146103ce578063acb3c073146103e3578063ad044f4914610404578063d908296214610419578063f2fde38b1461042e575b600080fd5b34801561015657600080fd5b5061016260043561044f565b60408051918252519081900360200190f35b34801561018057600080fd5b50610189610679565b60408051600160a060020a039092168252519081900360200190f35b3480156101b157600080fd5b506101c6600160a060020a0360043516610688565b6040805192835260208301919091528051918290030190f35b3480156101eb57600080fd5b506101626106c5565b34801561020057600080fd5b5061020c6004356106cb565b604080519115158252519081900360200190f35b34801561022c57600080fd5b50610241600160a060020a03600435166106e0565b005b34801561024f57600080fd5b5061024160043561073b565b34801561026757600080fd5b50610162610af5565b34801561027c57600080fd5b5061020c610afb565b34801561029157600080fd5b50610241600160a060020a0360043516610d10565b3480156102b257600080fd5b50610162610e99565b3480156102c757600080fd5b50610189610e9f565b3480156102dc57600080fd5b50610241610eae565b3480156102f157600080fd5b5061024161102f565b34801561030657600080fd5b5061018961109d565b34801561031b57600080fd5b506101626110ac565b34801561033057600080fd5b50610189611130565b610241600160a060020a036004351660243561113f565b34801561035c57600080fd5b50610371600160a060020a036004351661127c565b60408051938452602084019290925282820152519081900360600190f35b34801561039b57600080fd5b5061018961129d565b3480156103b057600080fd5b5061020c6112ac565b3480156103c557600080fd5b5061016261169d565b3480156103da57600080fd5b506103716116a3565b3480156103ef57600080fd5b50610241600160a060020a0360043516611c59565b34801561041057600080fd5b50610162611cb4565b34801561042557600080fd5b50610162611cba565b34801561043a57600080fd5b50610241600160a060020a0360043516611cc0565b60008060008060008061046e6008600754611ce390919063ffffffff16565b6007541061047e57600754610492565b60075461049290600863ffffffff611ce316565b94507f19999999999999999999999999999999999999999999999999999999999999998511156104c157600080fd5b84600a0a6000198115156104d157fe5b0493503392508615806104fa5750600160a060020a038316600090815260086020526040902054155b8061050457503031155b806105a35750600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015291518a9392909216916370a08231916024808201926020929091908290030181600087803b15801561057557600080fd5b505af1158015610589573d6000803e3d6000fd5b505050506040513d602081101561059f57600080fd5b5051105b806105c55750600160a060020a03831660009081526008602052604090205487115b156105cf5761066f565b600a54600160a060020a038416600090815260086020526040902060020154610610913031916106049163ffffffff611cf616565b9063ffffffff611d1f16565b9150838210156106235784600a0a610626565b60015b600160a060020a03841660009081526008602052604090205490915061066c908290610604908a906106609083888663ffffffff611cf616565b9063ffffffff611cf616565b95505b5050505050919050565b600654600160a060020a031681565b600080600160a060020a03831615156106a057600080fd5b5050600160a060020a0316600090815260086020526040902080546001909101549091565b600c5481565b60096020526000908152604090205460ff1681565b600154600160a060020a031633146106f757600080fd5b600160a060020a038116151561070c57600080fd5b6005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080600160025414151561074f57600080fd5b6002805533915061075e610afb565b151561076957600080fd5b6000831161077657600080fd5b600160a060020a03821660009081526008602052604090205483111561079b57600080fd5b600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301529151869392909216916370a08231916024808201926020929091908290030181600087803b15801561080657600080fd5b505af115801561081a573d6000803e3d6000fd5b505050506040513d602081101561083057600080fd5b5051101561083d57600080fd5b600654604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290518592600160a060020a03169163dd62ed3e9160448083019260209291908290030181600087803b1580156108a857600080fd5b505af11580156108bc573d6000803e3d6000fd5b505050506040513d60208110156108d257600080fd5b505110156108df57600080fd5b6108e88361044f565b9050600081116108f757600080fd5b600160a060020a038216600090815260086020526040902054610920908463ffffffff611d3416565b600160a060020a038316600090815260086020526040902090815560075460019091015461098c9161096491600a9190910a9061060490879063ffffffff611cf616565b600160a060020a0384166000908152600860205260409020600201549063ffffffff611d3416565b600160a060020a038316600090815260086020526040902060020155600b546109bb908263ffffffff611ce316565b600b5560065460048054604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a03878116948201949094529183166024830152604482018790525191909216916323b872dd9160648083019260209291908290030181600087803b158015610a3a57600080fd5b505af1158015610a4e573d6000803e3d6000fd5b505050506040513d6020811015610a6457600080fd5b50511515610a7157600080fd5b604051600160a060020a0383169082156108fc029083906000818181858888f19350505050158015610aa7573d6000803e3d6000fd5b5060408051828152602081018590528151600160a060020a038516927ffc48f4f163cfed28aaf3be3f0b162a1338fab214afc9340eafc6cb081c71fadf928290030190a25050600160025550565b60075481565b600354604080517fd6d65f3d00000000000000000000000000000000000000000000000000000000815281516000938493849384938493600160a060020a03169263d6d65f3d926004808201939182900301818787803b158015610b5e57600080fd5b505af1158015610b72573d6000803e3d6000fd5b505050506040513d6040811015610b8857600080fd5b5080516020909101519094509250831515610ba257610d09565b6003546040805160e060020a632442e1cb028152600481018790529051600160a060020a0390921691632442e1cb9160248082019260009290919082900301818387803b158015610bf257600080fd5b505af1158015610c06573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c0811015610c2f57600080fd5b815160208301516040840151606085015160808601805194969395929491939283019291640100000000811115610c6557600080fd5b82016020810184811115610c7857600080fd5b8151640100000000811182820187101715610c9257600080fd5b50509291906020018051640100000000811115610cae57600080fd5b82016020810184811115610cc157600080fd5b8151640100000000811182820187101715610cdb57600080fd5b50509291905050505050935050509150428263ffffffff1611158015610d0657508063ffffffff1642105b94505b5050505090565b600154600160a060020a03163314610d2757600080fd5b600160a060020a0381161515610d3c57600080fd5b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038316908117909155604080517f4090cb640000000000000000000000000000000000000000000000000000000081529051634090cb64916004808201926020929091908290030181600087803b158015610db857600080fd5b505af1158015610dcc573d6000803e3d6000fd5b505050506040513d6020811015610de257600080fd5b50516006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039283161790819055604080517f313ce5670000000000000000000000000000000000000000000000000000000081529051919092169163313ce5679160048083019260209291908290030181600087803b158015610e6457600080fd5b505af1158015610e78573d6000803e3d6000fd5b505050506040513d6020811015610e8e57600080fd5b505160ff1660075550565b60005481565b600554600160a060020a031681565b600154600090819081908190600160a060020a03163314610ece57600080fd5b600254600114610edd57600080fd5b60028055610ee96112ac565b1515610ef457600080fd5b610efc6110ac565b9350610f066116a3565b9350509250600084111515610f1a57600080fd5b6000828152600960205260408120805460ff19166001179055600d541115610f6557600d54610f5090859063ffffffff611d4616565b9050610f62848263ffffffff611d3416565b93505b600c54610f78908463ffffffff611ce316565b600c556000811115610fc057600554604051600160a060020a039091169082156108fc029083906000818181858888f19350505050158015610fbe573d6000803e3d6000fd5b505b604051339085156108fc029086906000818181858888f19350505050158015610fed573d6000803e3d6000fd5b5060408051858152905133917f4a966617f50ccad97beb624d8e13820bf2a745e1640fed943858499286fc9829919081900360200190a2505060016002555050565b600154600160a060020a0316331461104657600080fd5b600154604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26001805473ffffffffffffffffffffffffffffffffffffffff19169055565b600454600160a060020a031681565b60008060008060006110bc6116a3565b50935093508360001480156110cf575082155b806110d957503031155b156110e357610d09565b600b54600a546110f89163ffffffff611d3416565b600c5490925061111e90611112868663ffffffff611ce316565b9063ffffffff611d3416565b9050610d06828263ffffffff611d4616565b600154600160a060020a031681565b600354600160a060020a031633811461115757600080fd5b6000821161116457600080fd5b6000341161117157600080fd5b600160a060020a03831660009081526008602052604090205461119a908363ffffffff611ce316565b600160a060020a0384166000908152600860205260409020908155600201546111c9903463ffffffff611ce316565b600160a060020a038416600090815260086020526040902060028101829055546007546112029261060491600a0a63ffffffff611cf616565b600160a060020a038416600090815260086020526040902060010155600a54611231903463ffffffff611ce316565b600a5560408051348152602081018490528151600160a060020a038616927f363f315f930a17d1266b86a20d6dd34b1cfbc5a9db9f13a65d06a689c3a2af8a928290030190a2505050565b60086020526000908152604090208054600182015460029092015490919083565b600354600160a060020a031681565b600080600080600080600360009054906101000a9004600160a060020a0316600160a060020a031663d6d65f3d6040518163ffffffff1660e060020a0281526004016040805180830381600087803b15801561130757600080fd5b505af115801561131b573d6000803e3d6000fd5b505050506040513d604081101561133157600080fd5b508051602090910151600354604080517f14f66d340000000000000000000000000000000000000000000000000000000081528151949950929750600160a060020a03909116926314f66d349260048082019392918290030181600087803b15801561139c57600080fd5b505af11580156113b0573d6000803e3d6000fd5b505050506040513d60408110156113c657600080fd5b505192508315156113d657611695565b8415156113e65760019550611695565b6003546040805160e060020a632442e1cb028152600481018890529051600160a060020a0390921691632442e1cb9160248082019260009290919082900301818387803b15801561143657600080fd5b505af115801561144a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c081101561147357600080fd5b8151602083015160408401516060850151608086018051949693959294919392830192916401000000008111156114a957600080fd5b820160208101848111156114bc57600080fd5b81516401000000008111828201871017156114d657600080fd5b505092919060200180516401000000008111156114f257600080fd5b8201602081018481111561150557600080fd5b815164010000000081118282018710171561151f57600080fd5b50506003546040805160e060020a632442e1cb028152600481018f905290519a9c50600160a060020a0390911699632442e1cb9950602480830199506000985090965090869003019350849250859150889050803b15801561158057600080fd5b505af1158015611594573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c08110156115bd57600080fd5b8151602083015160408401516060850151608086018051949693959294919392830192916401000000008111156115f357600080fd5b8201602081018481111561160657600080fd5b815164010000000081118282018710171561162057600080fd5b5050929190602001805164010000000081111561163c57600080fd5b8201602081018481111561164f57600080fd5b815164010000000081118282018710171561166957600080fd5b505092919050505050509350505050428263ffffffff1611806116925750428163ffffffff1611155b95505b505050505090565b600d5481565b600080600080600080600080600080600080600360009054906101000a9004600160a060020a0316600160a060020a031663d6d65f3d6040518163ffffffff1660e060020a0281526004016040805180830381600087803b15801561170757600080fd5b505af115801561171b573d6000803e3d6000fd5b505050506040513d604081101561173157600080fd5b508051602090910151600354604080517f14f66d340000000000000000000000000000000000000000000000000000000081528151949d50929b50600160a060020a03909116926314f66d349260048082019392918290030181600087803b15801561179c57600080fd5b505af11580156117b0573d6000803e3d6000fd5b505050506040513d60408110156117c657600080fd5b50516003546040805160e060020a632442e1cb028152600481018490529051929950600160a060020a0390911691632442e1cb9160248082019260009290919082900301818387803b15801561181b57600080fd5b505af115801561182f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c081101561185857600080fd5b81516020830151604084015160608501516080860180519496939592949193928301929164010000000081111561188e57600080fd5b820160208101848111156118a157600080fd5b81516401000000008111828201871017156118bb57600080fd5b505092919060200180516401000000008111156118d757600080fd5b820160208101848111156118ea57600080fd5b815164010000000081118282018710171561190457600080fd5b50509291905050505050985050505087158061192557506119236112ac565b155b1561192f57611c4b565b88158061194257508563ffffffff164210155b61194f5760018903611951565b885b6003546040805160e060020a632442e1cb028152600481018490529051929b50600160a060020a0390911691632442e1cb9160248082019260009290919082900301818387803b1580156119a457600080fd5b505af11580156119b8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c08110156119e157600080fd5b815160208301516040840151606085015160808601805194969395929491939283019291640100000000811115611a1757600080fd5b82016020810184811115611a2a57600080fd5b8151640100000000811182820187101715611a4457600080fd5b50509291906020018051640100000000811115611a6057600080fd5b82016020810184811115611a7357600080fd5b8151640100000000811182820187101715611a8d57600080fd5b50509291905050505050965050955050600960008a815260200190815260200160002060009054906101000a900460ff1692508215611acb57611c4b565b8891505b6000821115611c41576003546040805160e060020a632442e1cb0281526000199094016004850181905290519093600160a060020a0390921691632442e1cb91602480830192600092919082900301818387803b158015611b2f57600080fd5b505af1158015611b43573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c0811015611b6c57600080fd5b815160208301516040840151606085015160808601805194969395929491939283019291640100000000811115611ba257600080fd5b82016020810184811115611bb557600080fd5b8151640100000000811182820187101715611bcf57600080fd5b50509291906020018051640100000000811115611beb57600080fd5b82016020810184811115611bfe57600080fd5b8151640100000000811182820187101715611c1857600080fd5b505092919050505050505050915050611c3a818c611ce390919063ffffffff16565b9a50611acf565b848b8a9b509b509b505b505050505050505050909192565b600154600160a060020a03163314611c7057600080fd5b600160a060020a0381161515611c8557600080fd5b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600a5481565b600b5481565b600154600160a060020a03163314611cd757600080fd5b611ce081611d7e565b50565b81810182811015611cf057fe5b92915050565b6000821515611d0757506000611cf0565b50818102818382811515611d1757fe5b0414611cf057fe5b60008183811515611d2c57fe5b049392505050565b600082821115611d4057fe5b50900390565b6000611d5182611dfc565b1515611d5c57600080fd5b611d77611d67611e21565b610604858563ffffffff611cf616565b9392505050565b600160a060020a0381161515611d9357600080fd5b600154604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000611e06611e33565b8210158015611cf05750611e18611e21565b82111592915050565b6000611e2b611e38565b600a0a905090565b600090565b6000611e42611e4a565b600201905090565b600290565b6000611e5a82611dfc565b1515611e6557600080fd5b611cf0611e70611e4a565b8390600a0a63ffffffff611d1f165600a165627a7a72305820311074774ed09ff1abad7efeeaaaf0d8dbb95454119635ff28c1f2f4c3c2ac7e0029a165627a7a723058206e41d5957b2640dd5f4fd132f7592abd06db20e66a4a29b195b2edae2a9776d90029", - "deployedBytecode": "0x6080604052600436106100325763ffffffff60e060020a60003504166317444626811461003757806354fd4d501461007d575b600080fd5b34801561004357600080fd5b50610061600160a060020a03600435811690602435166044356100a4565b60408051600160a060020a039092168252519081900360200190f35b34801561008957600080fd5b50610092610274565b60408051918252519081900360200190f35b60008054826100b161027a565b9182526020820152604080519182900301906000f0801580156100d8573d6000803e3d6000fd5b50905080600160a060020a031663acb3c073856040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801561013657600080fd5b505af115801561014a573d6000803e3d6000fd5b5050505080600160a060020a03166323bffccc846040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b1580156101a957600080fd5b505af11580156101bd573d6000803e3d6000fd5b5050604080517ff2fde38b0000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a038516935063f2fde38b9250602480830192600092919082900301818387803b15801561022157600080fd5b505af1158015610235573d6000803e3d6000fd5b5050604051600160a060020a03841692507fbeacbaab8887097be64d667b2a06e62db7e00cc1429a8ebe02535e97a6cc8fcd9150600090a29392505050565b60005481565b6040516120408061028b833901905600608060405260016002553480156200001657600080fd5b5060405160408062002040833981016040528051602090910151600082905560018054600160a060020a03191633179055620000608164010000000062001dfc6200009b82021704565b80156200008557506064620000838264010000000062001e4f620000d882021704565b105b15156200009157600080fd5b600d555062000184565b6000620000b06401000000006200012a810204565b8210158015620000d25750620000ce6401000000006200012f810204565b8211155b92915050565b6000620000ee826401000000006200009b810204565b1515620000fa57600080fd5b620000d2620001116401000000006200014c810204565b8390600a0a64010000000062001d1f6200015182021704565b600090565b60006200014464010000000062000167810204565b600a0a905090565b600290565b600081838115156200015f57fe5b049392505050565b60006200017c6401000000006200014c810204565b600201905090565b611eac80620001946000396000f3006080604052600436106101455763ffffffff60e060020a60003504166304cd5294811461014a5780630babd8641461017457806311fa7da2146101a557806319ae48ed146101df57806323585f96146101f457806323bffccc14610220578063278ecde1146102435780633b97e8561461025b5780633fa911ae14610270578063483a20b21461028557806354fd4d50146102a65780635641f3c3146102bb5780636ebc0af1146102d0578063715018a6146102e55780638119c065146102fa5780638ce2bc2a1461030f5780638da5cb5b14610324578063958799cb1461033957806397a993aa146103505780639c1e03a01461038f5780639e80baac146103a4578063a328665a146103b9578063ac2a2a34146103ce578063acb3c073146103e3578063ad044f4914610404578063d908296214610419578063f2fde38b1461042e575b600080fd5b34801561015657600080fd5b5061016260043561044f565b60408051918252519081900360200190f35b34801561018057600080fd5b50610189610679565b60408051600160a060020a039092168252519081900360200190f35b3480156101b157600080fd5b506101c6600160a060020a0360043516610688565b6040805192835260208301919091528051918290030190f35b3480156101eb57600080fd5b506101626106c5565b34801561020057600080fd5b5061020c6004356106cb565b604080519115158252519081900360200190f35b34801561022c57600080fd5b50610241600160a060020a03600435166106e0565b005b34801561024f57600080fd5b5061024160043561073b565b34801561026757600080fd5b50610162610af5565b34801561027c57600080fd5b5061020c610afb565b34801561029157600080fd5b50610241600160a060020a0360043516610d10565b3480156102b257600080fd5b50610162610e99565b3480156102c757600080fd5b50610189610e9f565b3480156102dc57600080fd5b50610241610eae565b3480156102f157600080fd5b5061024161102f565b34801561030657600080fd5b5061018961109d565b34801561031b57600080fd5b506101626110ac565b34801561033057600080fd5b50610189611130565b610241600160a060020a036004351660243561113f565b34801561035c57600080fd5b50610371600160a060020a036004351661127c565b60408051938452602084019290925282820152519081900360600190f35b34801561039b57600080fd5b5061018961129d565b3480156103b057600080fd5b5061020c6112ac565b3480156103c557600080fd5b5061016261169d565b3480156103da57600080fd5b506103716116a3565b3480156103ef57600080fd5b50610241600160a060020a0360043516611c59565b34801561041057600080fd5b50610162611cb4565b34801561042557600080fd5b50610162611cba565b34801561043a57600080fd5b50610241600160a060020a0360043516611cc0565b60008060008060008061046e6008600754611ce390919063ffffffff16565b6007541061047e57600754610492565b60075461049290600863ffffffff611ce316565b94507f19999999999999999999999999999999999999999999999999999999999999998511156104c157600080fd5b84600a0a6000198115156104d157fe5b0493503392508615806104fa5750600160a060020a038316600090815260086020526040902054155b8061050457503031155b806105a35750600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015291518a9392909216916370a08231916024808201926020929091908290030181600087803b15801561057557600080fd5b505af1158015610589573d6000803e3d6000fd5b505050506040513d602081101561059f57600080fd5b5051105b806105c55750600160a060020a03831660009081526008602052604090205487115b156105cf5761066f565b600a54600160a060020a038416600090815260086020526040902060020154610610913031916106049163ffffffff611cf616565b9063ffffffff611d1f16565b9150838210156106235784600a0a610626565b60015b600160a060020a03841660009081526008602052604090205490915061066c908290610604908a906106609083888663ffffffff611cf616565b9063ffffffff611cf616565b95505b5050505050919050565b600654600160a060020a031681565b600080600160a060020a03831615156106a057600080fd5b5050600160a060020a0316600090815260086020526040902080546001909101549091565b600c5481565b60096020526000908152604090205460ff1681565b600154600160a060020a031633146106f757600080fd5b600160a060020a038116151561070c57600080fd5b6005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080600160025414151561074f57600080fd5b6002805533915061075e610afb565b151561076957600080fd5b6000831161077657600080fd5b600160a060020a03821660009081526008602052604090205483111561079b57600080fd5b600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301529151869392909216916370a08231916024808201926020929091908290030181600087803b15801561080657600080fd5b505af115801561081a573d6000803e3d6000fd5b505050506040513d602081101561083057600080fd5b5051101561083d57600080fd5b600654604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290518592600160a060020a03169163dd62ed3e9160448083019260209291908290030181600087803b1580156108a857600080fd5b505af11580156108bc573d6000803e3d6000fd5b505050506040513d60208110156108d257600080fd5b505110156108df57600080fd5b6108e88361044f565b9050600081116108f757600080fd5b600160a060020a038216600090815260086020526040902054610920908463ffffffff611d3416565b600160a060020a038316600090815260086020526040902090815560075460019091015461098c9161096491600a9190910a9061060490879063ffffffff611cf616565b600160a060020a0384166000908152600860205260409020600201549063ffffffff611d3416565b600160a060020a038316600090815260086020526040902060020155600b546109bb908263ffffffff611ce316565b600b5560065460048054604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a03878116948201949094529183166024830152604482018790525191909216916323b872dd9160648083019260209291908290030181600087803b158015610a3a57600080fd5b505af1158015610a4e573d6000803e3d6000fd5b505050506040513d6020811015610a6457600080fd5b50511515610a7157600080fd5b604051600160a060020a0383169082156108fc029083906000818181858888f19350505050158015610aa7573d6000803e3d6000fd5b5060408051828152602081018590528151600160a060020a038516927ffc48f4f163cfed28aaf3be3f0b162a1338fab214afc9340eafc6cb081c71fadf928290030190a25050600160025550565b60075481565b600354604080517fd6d65f3d00000000000000000000000000000000000000000000000000000000815281516000938493849384938493600160a060020a03169263d6d65f3d926004808201939182900301818787803b158015610b5e57600080fd5b505af1158015610b72573d6000803e3d6000fd5b505050506040513d6040811015610b8857600080fd5b5080516020909101519094509250831515610ba257610d09565b6003546040805160e060020a632442e1cb028152600481018790529051600160a060020a0390921691632442e1cb9160248082019260009290919082900301818387803b158015610bf257600080fd5b505af1158015610c06573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c0811015610c2f57600080fd5b815160208301516040840151606085015160808601805194969395929491939283019291640100000000811115610c6557600080fd5b82016020810184811115610c7857600080fd5b8151640100000000811182820187101715610c9257600080fd5b50509291906020018051640100000000811115610cae57600080fd5b82016020810184811115610cc157600080fd5b8151640100000000811182820187101715610cdb57600080fd5b50509291905050505050935050509150428263ffffffff1611158015610d0657508063ffffffff1642105b94505b5050505090565b600154600160a060020a03163314610d2757600080fd5b600160a060020a0381161515610d3c57600080fd5b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038316908117909155604080517f4090cb640000000000000000000000000000000000000000000000000000000081529051634090cb64916004808201926020929091908290030181600087803b158015610db857600080fd5b505af1158015610dcc573d6000803e3d6000fd5b505050506040513d6020811015610de257600080fd5b50516006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039283161790819055604080517f313ce5670000000000000000000000000000000000000000000000000000000081529051919092169163313ce5679160048083019260209291908290030181600087803b158015610e6457600080fd5b505af1158015610e78573d6000803e3d6000fd5b505050506040513d6020811015610e8e57600080fd5b505160ff1660075550565b60005481565b600554600160a060020a031681565b600154600090819081908190600160a060020a03163314610ece57600080fd5b600254600114610edd57600080fd5b60028055610ee96112ac565b1515610ef457600080fd5b610efc6110ac565b9350610f066116a3565b9350509250600084111515610f1a57600080fd5b6000828152600960205260408120805460ff19166001179055600d541115610f6557600d54610f5090859063ffffffff611d4616565b9050610f62848263ffffffff611d3416565b93505b600c54610f78908463ffffffff611ce316565b600c556000811115610fc057600554604051600160a060020a039091169082156108fc029083906000818181858888f19350505050158015610fbe573d6000803e3d6000fd5b505b604051339085156108fc029086906000818181858888f19350505050158015610fed573d6000803e3d6000fd5b5060408051858152905133917f4a966617f50ccad97beb624d8e13820bf2a745e1640fed943858499286fc9829919081900360200190a2505060016002555050565b600154600160a060020a0316331461104657600080fd5b600154604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26001805473ffffffffffffffffffffffffffffffffffffffff19169055565b600454600160a060020a031681565b60008060008060006110bc6116a3565b50935093508360001480156110cf575082155b806110d957503031155b156110e357610d09565b600b54600a546110f89163ffffffff611d3416565b600c5490925061111e90611112868663ffffffff611ce316565b9063ffffffff611d3416565b9050610d06828263ffffffff611d4616565b600154600160a060020a031681565b600354600160a060020a031633811461115757600080fd5b6000821161116457600080fd5b6000341161117157600080fd5b600160a060020a03831660009081526008602052604090205461119a908363ffffffff611ce316565b600160a060020a0384166000908152600860205260409020908155600201546111c9903463ffffffff611ce316565b600160a060020a038416600090815260086020526040902060028101829055546007546112029261060491600a0a63ffffffff611cf616565b600160a060020a038416600090815260086020526040902060010155600a54611231903463ffffffff611ce316565b600a5560408051348152602081018490528151600160a060020a038616927f363f315f930a17d1266b86a20d6dd34b1cfbc5a9db9f13a65d06a689c3a2af8a928290030190a2505050565b60086020526000908152604090208054600182015460029092015490919083565b600354600160a060020a031681565b600080600080600080600360009054906101000a9004600160a060020a0316600160a060020a031663d6d65f3d6040518163ffffffff1660e060020a0281526004016040805180830381600087803b15801561130757600080fd5b505af115801561131b573d6000803e3d6000fd5b505050506040513d604081101561133157600080fd5b508051602090910151600354604080517f14f66d340000000000000000000000000000000000000000000000000000000081528151949950929750600160a060020a03909116926314f66d349260048082019392918290030181600087803b15801561139c57600080fd5b505af11580156113b0573d6000803e3d6000fd5b505050506040513d60408110156113c657600080fd5b505192508315156113d657611695565b8415156113e65760019550611695565b6003546040805160e060020a632442e1cb028152600481018890529051600160a060020a0390921691632442e1cb9160248082019260009290919082900301818387803b15801561143657600080fd5b505af115801561144a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c081101561147357600080fd5b8151602083015160408401516060850151608086018051949693959294919392830192916401000000008111156114a957600080fd5b820160208101848111156114bc57600080fd5b81516401000000008111828201871017156114d657600080fd5b505092919060200180516401000000008111156114f257600080fd5b8201602081018481111561150557600080fd5b815164010000000081118282018710171561151f57600080fd5b50506003546040805160e060020a632442e1cb028152600481018f905290519a9c50600160a060020a0390911699632442e1cb9950602480830199506000985090965090869003019350849250859150889050803b15801561158057600080fd5b505af1158015611594573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c08110156115bd57600080fd5b8151602083015160408401516060850151608086018051949693959294919392830192916401000000008111156115f357600080fd5b8201602081018481111561160657600080fd5b815164010000000081118282018710171561162057600080fd5b5050929190602001805164010000000081111561163c57600080fd5b8201602081018481111561164f57600080fd5b815164010000000081118282018710171561166957600080fd5b505092919050505050509350505050428263ffffffff1611806116925750428163ffffffff1611155b95505b505050505090565b600d5481565b600080600080600080600080600080600080600360009054906101000a9004600160a060020a0316600160a060020a031663d6d65f3d6040518163ffffffff1660e060020a0281526004016040805180830381600087803b15801561170757600080fd5b505af115801561171b573d6000803e3d6000fd5b505050506040513d604081101561173157600080fd5b508051602090910151600354604080517f14f66d340000000000000000000000000000000000000000000000000000000081528151949d50929b50600160a060020a03909116926314f66d349260048082019392918290030181600087803b15801561179c57600080fd5b505af11580156117b0573d6000803e3d6000fd5b505050506040513d60408110156117c657600080fd5b50516003546040805160e060020a632442e1cb028152600481018490529051929950600160a060020a0390911691632442e1cb9160248082019260009290919082900301818387803b15801561181b57600080fd5b505af115801561182f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c081101561185857600080fd5b81516020830151604084015160608501516080860180519496939592949193928301929164010000000081111561188e57600080fd5b820160208101848111156118a157600080fd5b81516401000000008111828201871017156118bb57600080fd5b505092919060200180516401000000008111156118d757600080fd5b820160208101848111156118ea57600080fd5b815164010000000081118282018710171561190457600080fd5b50509291905050505050985050505087158061192557506119236112ac565b155b1561192f57611c4b565b88158061194257508563ffffffff164210155b61194f5760018903611951565b885b6003546040805160e060020a632442e1cb028152600481018490529051929b50600160a060020a0390911691632442e1cb9160248082019260009290919082900301818387803b1580156119a457600080fd5b505af11580156119b8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c08110156119e157600080fd5b815160208301516040840151606085015160808601805194969395929491939283019291640100000000811115611a1757600080fd5b82016020810184811115611a2a57600080fd5b8151640100000000811182820187101715611a4457600080fd5b50509291906020018051640100000000811115611a6057600080fd5b82016020810184811115611a7357600080fd5b8151640100000000811182820187101715611a8d57600080fd5b50509291905050505050965050955050600960008a815260200190815260200160002060009054906101000a900460ff1692508215611acb57611c4b565b8891505b6000821115611c41576003546040805160e060020a632442e1cb0281526000199094016004850181905290519093600160a060020a0390921691632442e1cb91602480830192600092919082900301818387803b158015611b2f57600080fd5b505af1158015611b43573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c0811015611b6c57600080fd5b815160208301516040840151606085015160808601805194969395929491939283019291640100000000811115611ba257600080fd5b82016020810184811115611bb557600080fd5b8151640100000000811182820187101715611bcf57600080fd5b50509291906020018051640100000000811115611beb57600080fd5b82016020810184811115611bfe57600080fd5b8151640100000000811182820187101715611c1857600080fd5b505092919050505050505050915050611c3a818c611ce390919063ffffffff16565b9a50611acf565b848b8a9b509b509b505b505050505050505050909192565b600154600160a060020a03163314611c7057600080fd5b600160a060020a0381161515611c8557600080fd5b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600a5481565b600b5481565b600154600160a060020a03163314611cd757600080fd5b611ce081611d7e565b50565b81810182811015611cf057fe5b92915050565b6000821515611d0757506000611cf0565b50818102818382811515611d1757fe5b0414611cf057fe5b60008183811515611d2c57fe5b049392505050565b600082821115611d4057fe5b50900390565b6000611d5182611dfc565b1515611d5c57600080fd5b611d77611d67611e21565b610604858563ffffffff611cf616565b9392505050565b600160a060020a0381161515611d9357600080fd5b600154604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000611e06611e33565b8210158015611cf05750611e18611e21565b82111592915050565b6000611e2b611e38565b600a0a905090565b600090565b6000611e42611e4a565b600201905090565b600290565b6000611e5a82611dfc565b1515611e6557600080fd5b611cf0611e70611e4a565b8390600a0a63ffffffff611d1f165600a165627a7a72305820311074774ed09ff1abad7efeeaaaf0d8dbb95454119635ff28c1f2f4c3c2ac7e0029a165627a7a723058206e41d5957b2640dd5f4fd132f7592abd06db20e66a4a29b195b2edae2a9776d90029", - "sourceMap": "133:513:6:-;;;241:56;8:9:-1;5:2;;;30:1;27;20:12;5:2;241:56:6;;;;;;;;;;;;;123:7:26;:18;133:513:6;;;;;;", - "deployedSourceMap": "133:513:6:-;;;;;;;;;-1:-1:-1;;;133:513:6;;;;;;;;;;;;;;;;;;303:341;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;303:341:6;-1:-1:-1;;;;;303:341:6;;;;;;;;;;;;;;;;-1:-1:-1;;;;;303:341:6;;;;;;;;;;;;;;53:19:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;53:19:26;;;;;;;;;;;;;;;;;;;;303:341:6;402:15;450:7;;459:17;438:39;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;438:39:6;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;438:39:6;429:48;;488:6;-1:-1:-1;;;;;488:14:6;;503:4;488:20;;;;;-1:-1:-1;;;488:20:6;;;;;;;-1:-1:-1;;;;;488:20:6;-1:-1:-1;;;;;488:20:6;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;488:20:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;488:20:6;;;;518:6;-1:-1:-1;;;;;518:23:6;;542:13;518:38;;;;;-1:-1:-1;;;518:38:6;;;;;;;-1:-1:-1;;;;;518:38:6;-1:-1:-1;;;;;518:38:6;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;518:38:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;566:36:6;;;;;;591:10;566:36;;;;;;-1:-1:-1;;;;;566:24:6;;;-1:-1:-1;566:24:6;;-1:-1:-1;566:36:6;;;;;-1:-1:-1;;566:36:6;;;;;;;-1:-1:-1;566:24:6;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;566:36:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;618:19:6;;-1:-1:-1;;;;;618:19:6;;;-1:-1:-1;618:19:6;;-1:-1:-1;618:19:6;;;303:341;;;;;:::o;53:19:26:-;;;;:::o;133:513:6:-;;;;;;;;;;:::o", - "source": "pragma solidity ^0.4.24;\n\nimport \"./W12Fund.sol\";\nimport \"./interfaces/IW12FundFactory.sol\";\nimport \"./versioning/Versionable.sol\";\n\ncontract W12FundFactory is Versionable, IW12FundFactory {\n event FundCreated(address indexed fund);\n\n constructor(uint version) Versionable(version) public {}\n\n function createFund(address swap, address serviceWallet, uint trancheFeePercent) external returns (IW12Fund result) {\n result = new W12Fund(version, trancheFeePercent);\n\n result.setSwap(swap);\n result.setServiceWallet(serviceWallet);\n result.transferOwnership(msg.sender);\n\n emit FundCreated(result);\n }\n}\n", - "sourcePath": "/home/circleci/code/contracts/W12FundFactory.sol", + "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", + "sourcePath": "/home/circleci/code/contracts/crowdsale/factories/W12FundFactory.sol", "ast": { - "absolutePath": "/home/circleci/code/contracts/W12FundFactory.sol", + "absolutePath": "/home/circleci/code/contracts/crowdsale/factories/W12FundFactory.sol", "exportedSymbols": { "W12FundFactory": [ - 3260 + 4680 ] }, - "id": 3261, + "id": 4681, "nodeType": "SourceUnit", "nodes": [ { - "id": 3196, + "id": 4607, "literals": [ "solidity", "^", @@ -91,38 +95,38 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:6" + "src": "0:24:10" }, { - "absolutePath": "/home/circleci/code/contracts/W12Fund.sol", - "file": "./W12Fund.sol", - "id": 3197, + "absolutePath": "/home/circleci/code/contracts/crowdsale/factories/IW12FundFactory.sol", + "file": "./IW12FundFactory.sol", + "id": 4608, "nodeType": "ImportDirective", - "scope": 3261, - "sourceUnit": 2900, - "src": "26:23:6", + "scope": 4681, + "sourceUnit": 4467, + "src": "26:31:10", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/home/circleci/code/contracts/interfaces/IW12FundFactory.sol", - "file": "./interfaces/IW12FundFactory.sol", - "id": 3198, + "absolutePath": "/home/circleci/code/contracts/crowdsale/W12Fund.sol", + "file": "../W12Fund.sol", + "id": 4609, "nodeType": "ImportDirective", - "scope": 3261, - "sourceUnit": 4500, - "src": "50:42:6", + "scope": 4681, + "sourceUnit": 4425, + "src": "58:24:10", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/versioning/Versionable.sol", - "file": "./versioning/Versionable.sol", - "id": 3199, + "file": "../../versioning/Versionable.sol", + "id": 4610, "nodeType": "ImportDirective", - "scope": 3261, - "sourceUnit": 6510, - "src": "93:38:6", + "scope": 4681, + "sourceUnit": 9071, + "src": "83:42:10", "symbolAliases": [], "unitAlias": "" }, @@ -132,74 +136,102 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 3200, + "id": 4611, "name": "Versionable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6509, - "src": "160:11:6", + "referencedDeclaration": 9070, + "src": "154:11:10", "typeDescriptions": { - "typeIdentifier": "t_contract$_Versionable_$6509", + "typeIdentifier": "t_contract$_Versionable_$9070", "typeString": "contract Versionable" } }, - "id": 3201, + "id": 4612, "nodeType": "InheritanceSpecifier", - "src": "160:11:6" + "src": "154:11:10" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 3202, + "id": 4613, "name": "IW12FundFactory", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4499, - "src": "173:15:6", + "referencedDeclaration": 4466, + "src": "167:15:10", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12FundFactory_$4499", + "typeIdentifier": "t_contract$_IW12FundFactory_$4466", "typeString": "contract IW12FundFactory" } }, - "id": 3203, + "id": 4614, "nodeType": "InheritanceSpecifier", - "src": "173:15:6" + "src": "167:15:10" } ], "contractDependencies": [ - 2899, - 4499, - 6509 + 4424, + 4466, + 9070 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 3260, + "id": 4680, "linearizedBaseContracts": [ - 3260, - 4499, - 6509 + 4680, + 4466, + 9070 ], "name": "W12FundFactory", "nodeType": "ContractDefinition", "nodes": [ + { + "constant": false, + "id": 4616, + "name": "rates", + "nodeType": "VariableDeclaration", + "scope": 4680, + "src": "189:12:10", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + }, + "typeName": { + "contractScope": null, + "id": 4615, + "name": "IRates", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7015, + "src": "189:6:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "value": null, + "visibility": "internal" + }, { "anonymous": false, "documentation": null, - "id": 3207, + "id": 4620, "name": "FundCreated", "nodeType": "EventDefinition", "parameters": { - "id": 3206, + "id": 4619, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3205, + "id": 4618, "indexed": true, "name": "fund", "nodeType": "VariableDeclaration", - "scope": 3207, - "src": "213:20:6", + "scope": 4620, + "src": "226:20:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -207,10 +239,10 @@ "typeString": "address" }, "typeName": { - "id": 3204, + "id": 4617, "name": "address", "nodeType": "ElementaryTypeName", - "src": "213:7:6", + "src": "226:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -220,19 +252,66 @@ "visibility": "internal" } ], - "src": "212:22:6" + "src": "225:22:10" }, - "src": "195:40:6" + "src": "208:40:10" }, { "body": { - "id": 3215, + "id": 4634, "nodeType": "Block", - "src": "295:2:6", - "statements": [] + "src": "323:31:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 4632, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4630, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4616, + "src": "333:5:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4631, + "name": "_rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4624, + "src": "341:6:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "src": "333:14:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "id": 4633, + "nodeType": "ExpressionStatement", + "src": "333:14:10" + } + ] }, "documentation": null, - "id": 3216, + "id": 4635, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -241,49 +320,49 @@ "arguments": [ { "argumentTypes": null, - "id": 3212, + "id": 4627, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3209, - "src": "279:7:6", + "referencedDeclaration": 4622, + "src": "307:7:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 3213, + "id": 4628, "modifierName": { "argumentTypes": null, - "id": 3211, + "id": 4626, "name": "Versionable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6509, - "src": "267:11:6", + "referencedDeclaration": 9070, + "src": "295:11:10", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Versionable_$6509_$", + "typeIdentifier": "t_type$_t_contract$_Versionable_$9070_$", "typeString": "type(contract Versionable)" } }, "nodeType": "ModifierInvocation", - "src": "267:20:6" + "src": "295:20:10" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 3210, + "id": 4625, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3209, + "id": 4622, "name": "version", "nodeType": "VariableDeclaration", - "scope": 3216, - "src": "253:12:6", + "scope": 4635, + "src": "266:12:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -291,10 +370,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3208, + "id": 4621, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "253:4:6", + "src": "266:4:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -302,47 +381,75 @@ }, "value": null, "visibility": "internal" + }, + { + "constant": false, + "id": 4624, + "name": "_rates", + "nodeType": "VariableDeclaration", + "scope": 4635, + "src": "280:13:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + }, + "typeName": { + "contractScope": null, + "id": 4623, + "name": "IRates", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7015, + "src": "280:6:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "value": null, + "visibility": "internal" } ], - "src": "252:14:6" + "src": "265:29:10" }, "payable": false, "returnParameters": { - "id": 3214, + "id": 4629, "nodeType": "ParameterList", "parameters": [], - "src": "295:0:6" + "src": "323:0:10" }, - "scope": 3260, - "src": "241:56:6", + "scope": 4680, + "src": "254:100:10", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3258, + "id": 4678, "nodeType": "Block", - "src": "419:225:6", + "src": "476:232:10", "statements": [ { "expression": { "argumentTypes": null, - "id": 3233, + "id": 4653, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3227, + "id": 4646, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3225, - "src": "429:6:6", + "referencedDeclaration": 4644, + "src": "486:6:10", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", + "typeIdentifier": "t_contract$_IW12Fund_$1241", "typeString": "contract IW12Fund" } }, @@ -353,12 +460,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3230, + "id": 4649, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6498, - "src": "450:7:6", + "referencedDeclaration": 9059, + "src": "507:7:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -366,16 +473,29 @@ }, { "argumentTypes": null, - "id": 3231, + "id": 4650, "name": "trancheFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3222, - "src": "459:17:6", + "referencedDeclaration": 4641, + "src": "516:17:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } + }, + { + "argumentTypes": null, + "id": 4651, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4616, + "src": "535:5:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } } ], "expression": { @@ -387,33 +507,37 @@ { "typeIdentifier": "t_uint256", "typeString": "uint256" + }, + { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" } ], - "id": 3229, + "id": 4648, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "NewExpression", - "src": "438:11:6", + "src": "495:11:10", "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_uint256_$_t_uint256_$returns$_t_contract$_W12Fund_$2899_$", - "typeString": "function (uint256,uint256) returns (contract W12Fund)" + "typeIdentifier": "t_function_creation_nonpayable$_t_uint256_$_t_uint256_$_t_contract$_IRates_$7015_$returns$_t_contract$_W12Fund_$4424_$", + "typeString": "function (uint256,uint256,contract IRates) returns (contract W12Fund)" }, "typeName": { "contractScope": null, - "id": 3228, + "id": 4647, "name": "W12Fund", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2899, - "src": "442:7:6", + "referencedDeclaration": 4424, + "src": "499:7:10", "typeDescriptions": { - "typeIdentifier": "t_contract$_W12Fund_$2899", + "typeIdentifier": "t_contract$_W12Fund_$4424", "typeString": "contract W12Fund" } } }, - "id": 3232, + "id": 4652, "isConstant": false, "isLValue": false, "isPure": false, @@ -421,21 +545,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "438:39:6", + "src": "495:46:10", "typeDescriptions": { - "typeIdentifier": "t_contract$_W12Fund_$2899", + "typeIdentifier": "t_contract$_W12Fund_$4424", "typeString": "contract W12Fund" } }, - "src": "429:48:6", + "src": "486:55:10", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", + "typeIdentifier": "t_contract$_IW12Fund_$1241", "typeString": "contract IW12Fund" } }, - "id": 3234, + "id": 4654, "nodeType": "ExpressionStatement", - "src": "429:48:6" + "src": "486:55:10" }, { "expression": { @@ -443,12 +567,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3238, + "id": 4658, "name": "swap", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3218, - "src": "503:4:6", + "referencedDeclaration": 4637, + "src": "567:4:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -464,32 +588,32 @@ ], "expression": { "argumentTypes": null, - "id": 3235, + "id": 4655, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3225, - "src": "488:6:6", + "referencedDeclaration": 4644, + "src": "552:6:10", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", + "typeIdentifier": "t_contract$_IW12Fund_$1241", "typeString": "contract IW12Fund" } }, - "id": 3237, + "id": 4657, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "setSwap", "nodeType": "MemberAccess", - "referencedDeclaration": 4471, - "src": "488:14:6", + "referencedDeclaration": 1222, + "src": "552:14:10", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", "typeString": "function (address) external" } }, - "id": 3239, + "id": 4659, "isConstant": false, "isLValue": false, "isPure": false, @@ -497,15 +621,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "488:20:6", + "src": "552:20:10", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3240, + "id": 4660, "nodeType": "ExpressionStatement", - "src": "488:20:6" + "src": "552:20:10" }, { "expression": { @@ -513,12 +637,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3244, + "id": 4664, "name": "serviceWallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3220, - "src": "542:13:6", + "referencedDeclaration": 4639, + "src": "606:13:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -534,32 +658,32 @@ ], "expression": { "argumentTypes": null, - "id": 3241, + "id": 4661, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3225, - "src": "518:6:6", + "referencedDeclaration": 4644, + "src": "582:6:10", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", + "typeIdentifier": "t_contract$_IW12Fund_$1241", "typeString": "contract IW12Fund" } }, - "id": 3243, + "id": 4663, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "setServiceWallet", "nodeType": "MemberAccess", - "referencedDeclaration": 4466, - "src": "518:23:6", + "referencedDeclaration": 1217, + "src": "582:23:10", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", "typeString": "function (address) external" } }, - "id": 3245, + "id": 4665, "isConstant": false, "isLValue": false, "isPure": false, @@ -567,15 +691,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "518:38:6", + "src": "582:38:10", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3246, + "id": 4666, "nodeType": "ExpressionStatement", - "src": "518:38:6" + "src": "582:38:10" }, { "expression": { @@ -585,18 +709,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3250, + "id": 4670, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "591:3:6", + "referencedDeclaration": 10042, + "src": "655:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3251, + "id": 4671, "isConstant": false, "isLValue": false, "isPure": false, @@ -604,7 +728,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "591:10:6", + "src": "655:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -620,32 +744,32 @@ ], "expression": { "argumentTypes": null, - "id": 3247, + "id": 4667, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3225, - "src": "566:6:6", + "referencedDeclaration": 4644, + "src": "630:6:10", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", + "typeIdentifier": "t_contract$_IW12Fund_$1241", "typeString": "contract IW12Fund" } }, - "id": 3249, + "id": 4669, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transferOwnership", "nodeType": "MemberAccess", - "referencedDeclaration": 4476, - "src": "566:24:6", + "referencedDeclaration": 1227, + "src": "630:24:10", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", "typeString": "function (address) external" } }, - "id": 3252, + "id": 4672, "isConstant": false, "isLValue": false, "isPure": false, @@ -653,15 +777,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "566:36:6", + "src": "630:36:10", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3253, + "id": 4673, "nodeType": "ExpressionStatement", - "src": "566:36:6" + "src": "630:36:10" }, { "eventCall": { @@ -669,14 +793,14 @@ "arguments": [ { "argumentTypes": null, - "id": 3255, + "id": 4675, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3225, - "src": "630:6:6", + "referencedDeclaration": 4644, + "src": "694:6:10", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", + "typeIdentifier": "t_contract$_IW12Fund_$1241", "typeString": "contract IW12Fund" } } @@ -684,22 +808,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_IW12Fund_$4484", + "typeIdentifier": "t_contract$_IW12Fund_$1241", "typeString": "contract IW12Fund" } ], - "id": 3254, + "id": 4674, "name": "FundCreated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3207, - "src": "618:11:6", + "referencedDeclaration": 4620, + "src": "682:11:10", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 3256, + "id": 4676, "isConstant": false, "isLValue": false, "isPure": false, @@ -707,20 +831,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "618:19:6", + "src": "682:19:10", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3257, + "id": 4677, "nodeType": "EmitStatement", - "src": "613:24:6" + "src": "677:24:10" } ] }, "documentation": null, - "id": 3259, + "id": 4679, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -728,16 +852,16 @@ "name": "createFund", "nodeType": "FunctionDefinition", "parameters": { - "id": 3223, + "id": 4642, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3218, + "id": 4637, "name": "swap", "nodeType": "VariableDeclaration", - "scope": 3259, - "src": "323:12:6", + "scope": 4679, + "src": "380:12:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -745,10 +869,10 @@ "typeString": "address" }, "typeName": { - "id": 3217, + "id": 4636, "name": "address", "nodeType": "ElementaryTypeName", - "src": "323:7:6", + "src": "380:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -759,11 +883,11 @@ }, { "constant": false, - "id": 3220, + "id": 4639, "name": "serviceWallet", "nodeType": "VariableDeclaration", - "scope": 3259, - "src": "337:21:6", + "scope": 4679, + "src": "394:21:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -771,10 +895,10 @@ "typeString": "address" }, "typeName": { - "id": 3219, + "id": 4638, "name": "address", "nodeType": "ElementaryTypeName", - "src": "337:7:6", + "src": "394:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -785,11 +909,11 @@ }, { "constant": false, - "id": 3222, + "id": 4641, "name": "trancheFeePercent", "nodeType": "VariableDeclaration", - "scope": 3259, - "src": "360:22:6", + "scope": 4679, + "src": "417:22:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -797,10 +921,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3221, + "id": 4640, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "360:4:6", + "src": "417:4:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -810,35 +934,35 @@ "visibility": "internal" } ], - "src": "322:61:6" + "src": "379:61:10" }, "payable": false, "returnParameters": { - "id": 3226, + "id": 4645, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3225, + "id": 4644, "name": "result", "nodeType": "VariableDeclaration", - "scope": 3259, - "src": "402:15:6", + "scope": 4679, + "src": "459:15:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", + "typeIdentifier": "t_contract$_IW12Fund_$1241", "typeString": "contract IW12Fund" }, "typeName": { "contractScope": null, - "id": 3224, + "id": 4643, "name": "IW12Fund", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4484, - "src": "402:8:6", + "referencedDeclaration": 1241, + "src": "459:8:10", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", + "typeIdentifier": "t_contract$_IW12Fund_$1241", "typeString": "contract IW12Fund" } }, @@ -846,33 +970,33 @@ "visibility": "internal" } ], - "src": "401:17:6" + "src": "458:17:10" }, - "scope": 3260, - "src": "303:341:6", + "scope": 4680, + "src": "360:348:10", "stateMutability": "nonpayable", - "superFunction": 4498, + "superFunction": 4465, "visibility": "external" } ], - "scope": 3261, - "src": "133:513:6" + "scope": 4681, + "src": "127:583:10" } ], - "src": "0:647:6" + "src": "0:711:10" }, "legacyAST": { - "absolutePath": "/home/circleci/code/contracts/W12FundFactory.sol", + "absolutePath": "/home/circleci/code/contracts/crowdsale/factories/W12FundFactory.sol", "exportedSymbols": { "W12FundFactory": [ - 3260 + 4680 ] }, - "id": 3261, + "id": 4681, "nodeType": "SourceUnit", "nodes": [ { - "id": 3196, + "id": 4607, "literals": [ "solidity", "^", @@ -880,38 +1004,38 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:6" + "src": "0:24:10" }, { - "absolutePath": "/home/circleci/code/contracts/W12Fund.sol", - "file": "./W12Fund.sol", - "id": 3197, + "absolutePath": "/home/circleci/code/contracts/crowdsale/factories/IW12FundFactory.sol", + "file": "./IW12FundFactory.sol", + "id": 4608, "nodeType": "ImportDirective", - "scope": 3261, - "sourceUnit": 2900, - "src": "26:23:6", + "scope": 4681, + "sourceUnit": 4467, + "src": "26:31:10", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/home/circleci/code/contracts/interfaces/IW12FundFactory.sol", - "file": "./interfaces/IW12FundFactory.sol", - "id": 3198, + "absolutePath": "/home/circleci/code/contracts/crowdsale/W12Fund.sol", + "file": "../W12Fund.sol", + "id": 4609, "nodeType": "ImportDirective", - "scope": 3261, - "sourceUnit": 4500, - "src": "50:42:6", + "scope": 4681, + "sourceUnit": 4425, + "src": "58:24:10", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/versioning/Versionable.sol", - "file": "./versioning/Versionable.sol", - "id": 3199, + "file": "../../versioning/Versionable.sol", + "id": 4610, "nodeType": "ImportDirective", - "scope": 3261, - "sourceUnit": 6510, - "src": "93:38:6", + "scope": 4681, + "sourceUnit": 9071, + "src": "83:42:10", "symbolAliases": [], "unitAlias": "" }, @@ -921,74 +1045,102 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 3200, + "id": 4611, "name": "Versionable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6509, - "src": "160:11:6", + "referencedDeclaration": 9070, + "src": "154:11:10", "typeDescriptions": { - "typeIdentifier": "t_contract$_Versionable_$6509", + "typeIdentifier": "t_contract$_Versionable_$9070", "typeString": "contract Versionable" } }, - "id": 3201, + "id": 4612, "nodeType": "InheritanceSpecifier", - "src": "160:11:6" + "src": "154:11:10" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 3202, + "id": 4613, "name": "IW12FundFactory", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4499, - "src": "173:15:6", + "referencedDeclaration": 4466, + "src": "167:15:10", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12FundFactory_$4499", + "typeIdentifier": "t_contract$_IW12FundFactory_$4466", "typeString": "contract IW12FundFactory" } }, - "id": 3203, + "id": 4614, "nodeType": "InheritanceSpecifier", - "src": "173:15:6" + "src": "167:15:10" } ], "contractDependencies": [ - 2899, - 4499, - 6509 + 4424, + 4466, + 9070 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 3260, + "id": 4680, "linearizedBaseContracts": [ - 3260, - 4499, - 6509 + 4680, + 4466, + 9070 ], "name": "W12FundFactory", "nodeType": "ContractDefinition", "nodes": [ + { + "constant": false, + "id": 4616, + "name": "rates", + "nodeType": "VariableDeclaration", + "scope": 4680, + "src": "189:12:10", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + }, + "typeName": { + "contractScope": null, + "id": 4615, + "name": "IRates", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7015, + "src": "189:6:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "value": null, + "visibility": "internal" + }, { "anonymous": false, "documentation": null, - "id": 3207, + "id": 4620, "name": "FundCreated", "nodeType": "EventDefinition", "parameters": { - "id": 3206, + "id": 4619, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3205, + "id": 4618, "indexed": true, "name": "fund", "nodeType": "VariableDeclaration", - "scope": 3207, - "src": "213:20:6", + "scope": 4620, + "src": "226:20:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -996,10 +1148,10 @@ "typeString": "address" }, "typeName": { - "id": 3204, + "id": 4617, "name": "address", "nodeType": "ElementaryTypeName", - "src": "213:7:6", + "src": "226:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1009,19 +1161,66 @@ "visibility": "internal" } ], - "src": "212:22:6" + "src": "225:22:10" }, - "src": "195:40:6" + "src": "208:40:10" }, { "body": { - "id": 3215, + "id": 4634, "nodeType": "Block", - "src": "295:2:6", - "statements": [] + "src": "323:31:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 4632, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4630, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4616, + "src": "333:5:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4631, + "name": "_rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4624, + "src": "341:6:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "src": "333:14:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "id": 4633, + "nodeType": "ExpressionStatement", + "src": "333:14:10" + } + ] }, "documentation": null, - "id": 3216, + "id": 4635, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -1030,49 +1229,49 @@ "arguments": [ { "argumentTypes": null, - "id": 3212, + "id": 4627, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3209, - "src": "279:7:6", + "referencedDeclaration": 4622, + "src": "307:7:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 3213, + "id": 4628, "modifierName": { "argumentTypes": null, - "id": 3211, + "id": 4626, "name": "Versionable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6509, - "src": "267:11:6", + "referencedDeclaration": 9070, + "src": "295:11:10", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Versionable_$6509_$", + "typeIdentifier": "t_type$_t_contract$_Versionable_$9070_$", "typeString": "type(contract Versionable)" } }, "nodeType": "ModifierInvocation", - "src": "267:20:6" + "src": "295:20:10" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 3210, + "id": 4625, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3209, + "id": 4622, "name": "version", "nodeType": "VariableDeclaration", - "scope": 3216, - "src": "253:12:6", + "scope": 4635, + "src": "266:12:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1080,10 +1279,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3208, + "id": 4621, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "253:4:6", + "src": "266:4:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1091,47 +1290,75 @@ }, "value": null, "visibility": "internal" + }, + { + "constant": false, + "id": 4624, + "name": "_rates", + "nodeType": "VariableDeclaration", + "scope": 4635, + "src": "280:13:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + }, + "typeName": { + "contractScope": null, + "id": 4623, + "name": "IRates", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7015, + "src": "280:6:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "value": null, + "visibility": "internal" } ], - "src": "252:14:6" + "src": "265:29:10" }, "payable": false, "returnParameters": { - "id": 3214, + "id": 4629, "nodeType": "ParameterList", "parameters": [], - "src": "295:0:6" + "src": "323:0:10" }, - "scope": 3260, - "src": "241:56:6", + "scope": 4680, + "src": "254:100:10", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3258, + "id": 4678, "nodeType": "Block", - "src": "419:225:6", + "src": "476:232:10", "statements": [ { "expression": { "argumentTypes": null, - "id": 3233, + "id": 4653, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3227, + "id": 4646, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3225, - "src": "429:6:6", + "referencedDeclaration": 4644, + "src": "486:6:10", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", + "typeIdentifier": "t_contract$_IW12Fund_$1241", "typeString": "contract IW12Fund" } }, @@ -1142,12 +1369,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3230, + "id": 4649, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6498, - "src": "450:7:6", + "referencedDeclaration": 9059, + "src": "507:7:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1155,16 +1382,29 @@ }, { "argumentTypes": null, - "id": 3231, + "id": 4650, "name": "trancheFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3222, - "src": "459:17:6", + "referencedDeclaration": 4641, + "src": "516:17:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } + }, + { + "argumentTypes": null, + "id": 4651, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4616, + "src": "535:5:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } } ], "expression": { @@ -1176,33 +1416,37 @@ { "typeIdentifier": "t_uint256", "typeString": "uint256" + }, + { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" } ], - "id": 3229, + "id": 4648, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "NewExpression", - "src": "438:11:6", + "src": "495:11:10", "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_uint256_$_t_uint256_$returns$_t_contract$_W12Fund_$2899_$", - "typeString": "function (uint256,uint256) returns (contract W12Fund)" + "typeIdentifier": "t_function_creation_nonpayable$_t_uint256_$_t_uint256_$_t_contract$_IRates_$7015_$returns$_t_contract$_W12Fund_$4424_$", + "typeString": "function (uint256,uint256,contract IRates) returns (contract W12Fund)" }, "typeName": { "contractScope": null, - "id": 3228, + "id": 4647, "name": "W12Fund", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2899, - "src": "442:7:6", + "referencedDeclaration": 4424, + "src": "499:7:10", "typeDescriptions": { - "typeIdentifier": "t_contract$_W12Fund_$2899", + "typeIdentifier": "t_contract$_W12Fund_$4424", "typeString": "contract W12Fund" } } }, - "id": 3232, + "id": 4652, "isConstant": false, "isLValue": false, "isPure": false, @@ -1210,21 +1454,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "438:39:6", + "src": "495:46:10", "typeDescriptions": { - "typeIdentifier": "t_contract$_W12Fund_$2899", + "typeIdentifier": "t_contract$_W12Fund_$4424", "typeString": "contract W12Fund" } }, - "src": "429:48:6", + "src": "486:55:10", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", + "typeIdentifier": "t_contract$_IW12Fund_$1241", "typeString": "contract IW12Fund" } }, - "id": 3234, + "id": 4654, "nodeType": "ExpressionStatement", - "src": "429:48:6" + "src": "486:55:10" }, { "expression": { @@ -1232,12 +1476,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3238, + "id": 4658, "name": "swap", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3218, - "src": "503:4:6", + "referencedDeclaration": 4637, + "src": "567:4:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1253,32 +1497,32 @@ ], "expression": { "argumentTypes": null, - "id": 3235, + "id": 4655, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3225, - "src": "488:6:6", + "referencedDeclaration": 4644, + "src": "552:6:10", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", + "typeIdentifier": "t_contract$_IW12Fund_$1241", "typeString": "contract IW12Fund" } }, - "id": 3237, + "id": 4657, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "setSwap", "nodeType": "MemberAccess", - "referencedDeclaration": 4471, - "src": "488:14:6", + "referencedDeclaration": 1222, + "src": "552:14:10", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", "typeString": "function (address) external" } }, - "id": 3239, + "id": 4659, "isConstant": false, "isLValue": false, "isPure": false, @@ -1286,15 +1530,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "488:20:6", + "src": "552:20:10", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3240, + "id": 4660, "nodeType": "ExpressionStatement", - "src": "488:20:6" + "src": "552:20:10" }, { "expression": { @@ -1302,12 +1546,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3244, + "id": 4664, "name": "serviceWallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3220, - "src": "542:13:6", + "referencedDeclaration": 4639, + "src": "606:13:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1323,32 +1567,32 @@ ], "expression": { "argumentTypes": null, - "id": 3241, + "id": 4661, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3225, - "src": "518:6:6", + "referencedDeclaration": 4644, + "src": "582:6:10", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", + "typeIdentifier": "t_contract$_IW12Fund_$1241", "typeString": "contract IW12Fund" } }, - "id": 3243, + "id": 4663, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "setServiceWallet", "nodeType": "MemberAccess", - "referencedDeclaration": 4466, - "src": "518:23:6", + "referencedDeclaration": 1217, + "src": "582:23:10", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", "typeString": "function (address) external" } }, - "id": 3245, + "id": 4665, "isConstant": false, "isLValue": false, "isPure": false, @@ -1356,15 +1600,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "518:38:6", + "src": "582:38:10", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3246, + "id": 4666, "nodeType": "ExpressionStatement", - "src": "518:38:6" + "src": "582:38:10" }, { "expression": { @@ -1374,18 +1618,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3250, + "id": 4670, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "591:3:6", + "referencedDeclaration": 10042, + "src": "655:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3251, + "id": 4671, "isConstant": false, "isLValue": false, "isPure": false, @@ -1393,7 +1637,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "591:10:6", + "src": "655:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1409,32 +1653,32 @@ ], "expression": { "argumentTypes": null, - "id": 3247, + "id": 4667, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3225, - "src": "566:6:6", + "referencedDeclaration": 4644, + "src": "630:6:10", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", + "typeIdentifier": "t_contract$_IW12Fund_$1241", "typeString": "contract IW12Fund" } }, - "id": 3249, + "id": 4669, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transferOwnership", "nodeType": "MemberAccess", - "referencedDeclaration": 4476, - "src": "566:24:6", + "referencedDeclaration": 1227, + "src": "630:24:10", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", "typeString": "function (address) external" } }, - "id": 3252, + "id": 4672, "isConstant": false, "isLValue": false, "isPure": false, @@ -1442,15 +1686,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "566:36:6", + "src": "630:36:10", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3253, + "id": 4673, "nodeType": "ExpressionStatement", - "src": "566:36:6" + "src": "630:36:10" }, { "eventCall": { @@ -1458,14 +1702,14 @@ "arguments": [ { "argumentTypes": null, - "id": 3255, + "id": 4675, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3225, - "src": "630:6:6", + "referencedDeclaration": 4644, + "src": "694:6:10", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", + "typeIdentifier": "t_contract$_IW12Fund_$1241", "typeString": "contract IW12Fund" } } @@ -1473,22 +1717,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_IW12Fund_$4484", + "typeIdentifier": "t_contract$_IW12Fund_$1241", "typeString": "contract IW12Fund" } ], - "id": 3254, + "id": 4674, "name": "FundCreated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3207, - "src": "618:11:6", + "referencedDeclaration": 4620, + "src": "682:11:10", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 3256, + "id": 4676, "isConstant": false, "isLValue": false, "isPure": false, @@ -1496,20 +1740,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "618:19:6", + "src": "682:19:10", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3257, + "id": 4677, "nodeType": "EmitStatement", - "src": "613:24:6" + "src": "677:24:10" } ] }, "documentation": null, - "id": 3259, + "id": 4679, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1517,16 +1761,16 @@ "name": "createFund", "nodeType": "FunctionDefinition", "parameters": { - "id": 3223, + "id": 4642, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3218, + "id": 4637, "name": "swap", "nodeType": "VariableDeclaration", - "scope": 3259, - "src": "323:12:6", + "scope": 4679, + "src": "380:12:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1534,10 +1778,10 @@ "typeString": "address" }, "typeName": { - "id": 3217, + "id": 4636, "name": "address", "nodeType": "ElementaryTypeName", - "src": "323:7:6", + "src": "380:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1548,11 +1792,11 @@ }, { "constant": false, - "id": 3220, + "id": 4639, "name": "serviceWallet", "nodeType": "VariableDeclaration", - "scope": 3259, - "src": "337:21:6", + "scope": 4679, + "src": "394:21:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1560,10 +1804,10 @@ "typeString": "address" }, "typeName": { - "id": 3219, + "id": 4638, "name": "address", "nodeType": "ElementaryTypeName", - "src": "337:7:6", + "src": "394:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1574,11 +1818,11 @@ }, { "constant": false, - "id": 3222, + "id": 4641, "name": "trancheFeePercent", "nodeType": "VariableDeclaration", - "scope": 3259, - "src": "360:22:6", + "scope": 4679, + "src": "417:22:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1586,10 +1830,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3221, + "id": 4640, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "360:4:6", + "src": "417:4:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1599,35 +1843,35 @@ "visibility": "internal" } ], - "src": "322:61:6" + "src": "379:61:10" }, "payable": false, "returnParameters": { - "id": 3226, + "id": 4645, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3225, + "id": 4644, "name": "result", "nodeType": "VariableDeclaration", - "scope": 3259, - "src": "402:15:6", + "scope": 4679, + "src": "459:15:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", + "typeIdentifier": "t_contract$_IW12Fund_$1241", "typeString": "contract IW12Fund" }, "typeName": { "contractScope": null, - "id": 3224, + "id": 4643, "name": "IW12Fund", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4484, - "src": "402:8:6", + "referencedDeclaration": 1241, + "src": "459:8:10", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Fund_$4484", + "typeIdentifier": "t_contract$_IW12Fund_$1241", "typeString": "contract IW12Fund" } }, @@ -1635,20 +1879,20 @@ "visibility": "internal" } ], - "src": "401:17:6" + "src": "458:17:10" }, - "scope": 3260, - "src": "303:341:6", + "scope": 4680, + "src": "360:348:10", "stateMutability": "nonpayable", - "superFunction": 4498, + "superFunction": 4465, "visibility": "external" } ], - "scope": 3261, - "src": "133:513:6" + "scope": 4681, + "src": "127:583:10" } ], - "src": "0:647:6" + "src": "0:711:10" }, "compiler": { "name": "solc", @@ -1657,11 +1901,13 @@ "networks": { "4": { "events": {}, - "links": {}, - "address": "0x20cef601d499fd4012a6b980d9af9ccce255237f", - "transactionHash": "0x883a73e2d476541b280122ceaf04ca29aa5c06b886c06a579a617a6982bd5824" + "links": { + "FundAccount": "0x4adffa67c9560ecb80b9016527c9529992c3870b" + }, + "address": "0xa1b22be5b855d51f7db442ade4f95bd1c2c9619a", + "transactionHash": "0x837dd0b911a3f534db9d4e8ebef8dc2f95f1f75351bd467a9778b99afe0beed8" } }, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-02T12:01:53.243Z" + "updatedAt": "2018-10-22T07:59:52.067Z" } \ No newline at end of file diff --git a/build/contracts/W12FundStub.json b/build/contracts/W12FundStub.json index 73033f10..876c1d10 100644 --- a/build/contracts/W12FundStub.json +++ b/build/contracts/W12FundStub.json @@ -3,17 +3,12 @@ "abi": [ { "constant": true, - "inputs": [ - { - "name": "wtokensToRefund", - "type": "uint256" - } - ], - "name": "getRefundAmount", + "inputs": [], + "name": "getTotalFundedAssetsSymbols", "outputs": [ { - "name": "result", - "type": "uint256" + "name": "", + "type": "bytes32[]" } ], "payable": false, @@ -34,29 +29,6 @@ "stateMutability": "view", "type": "function" }, - { - "constant": true, - "inputs": [ - { - "name": "buyer", - "type": "address" - } - ], - "name": "getInvestmentsInfo", - "outputs": [ - { - "name": "totalTokensBought", - "type": "uint256" - }, - { - "name": "averageTokenPrice", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, { "constant": true, "inputs": [], @@ -108,7 +80,7 @@ "constant": false, "inputs": [ { - "name": "wtokensToRefund", + "name": "tokenAmount", "type": "uint256" } ], @@ -121,25 +93,11 @@ { "constant": true, "inputs": [], - "name": "tokenDecimals", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "refundAllowed", + "name": "rates", "outputs": [ { "name": "", - "type": "bool" + "type": "address" } ], "payable": false, @@ -188,6 +146,20 @@ "stateMutability": "view", "type": "function" }, + { + "constant": true, + "inputs": [], + "name": "tokenRefundAllowed", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, { "constant": false, "inputs": [], @@ -206,6 +178,25 @@ "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": [], @@ -223,11 +214,11 @@ { "constant": true, "inputs": [], - "name": "getTrancheAmount", + "name": "isWithdrawalWindowActive", "outputs": [ { - "name": "result", - "type": "uint256" + "name": "", + "type": "bool" } ], "payable": false, @@ -249,43 +240,36 @@ "type": "function" }, { - "constant": false, + "constant": true, "inputs": [ { - "name": "buyer", + "name": "_investor", "type": "address" - }, + } + ], + "name": "getInvestorTokenBoughtAmount", + "outputs": [ { - "name": "tokenAmount", + "name": "", "type": "uint256" } ], - "name": "recordPurchase", - "outputs": [], - "payable": true, - "stateMutability": "payable", + "payable": false, + "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { - "name": "", - "type": "address" + "name": "_symbol", + "type": "bytes32" } ], - "name": "buyers", + "name": "getTotalFundedAmount", "outputs": [ { - "name": "totalBought", - "type": "uint256" - }, - { - "name": "averagePrice", - "type": "uint256" - }, - { - "name": "totalFunded", + "name": "", "type": "uint256" } ], @@ -338,19 +322,11 @@ { "constant": true, "inputs": [], - "name": "getTrancheParameters", + "name": "getTrancheInvoice", "outputs": [ { - "name": "", - "type": "uint256" - }, - { - "name": "totalTranchePercentBefore", - "type": "uint256" - }, - { - "name": "", - "type": "uint256" + "name": "result", + "type": "uint256[3]" } ], "payable": false, @@ -371,10 +347,29 @@ "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": "totalFunded", + "name": "totalTokenBought", "outputs": [ { "name": "", @@ -385,10 +380,49 @@ "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": true, - "inputs": [], - "name": "totalRefunded", + "inputs": [ + { + "name": "_investor", + "type": "address" + }, + { + "name": "_symbol", + "type": "bytes32" + } + ], + "name": "getInvestorFundedAmount", "outputs": [ { "name": "", @@ -413,6 +447,20 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "constant": true, + "inputs": [], + "name": "totalTokenRefunded", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -438,6 +486,10 @@ { "name": "_trancheFeePercent", "type": "uint256" + }, + { + "name": "_rates", + "type": "address" } ], "payable": false, @@ -454,17 +506,22 @@ "inputs": [ { "indexed": true, - "name": "buyer", + "name": "investor", "type": "address" }, { "indexed": false, - "name": "weiAmount", + "name": "tokenAmount", "type": "uint256" }, { "indexed": false, - "name": "tokenAmount", + "name": "symbol", + "type": "bytes32" + }, + { + "indexed": false, + "name": "cost", "type": "uint256" } ], @@ -476,13 +533,30 @@ "inputs": [ { "indexed": true, - "name": "buyer", + "name": "investor", "type": "address" }, { "indexed": false, - "name": "weiAmount", + "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, @@ -490,7 +564,7 @@ "type": "uint256" } ], - "name": "FundsRefunded", + "name": "TokenRefunded", "type": "event" }, { @@ -501,12 +575,34 @@ "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" }, @@ -543,49 +639,39 @@ "constant": false, "inputs": [ { - "name": "amount", - "type": "uint256" - } - ], - "name": "_setTotalFunded", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ + "name": "_symbol", + "type": "bytes32" + }, { - "name": "amount", + "name": "_amount", "type": "uint256" } ], - "name": "_setTotalRefunded", + "name": "_outFunds", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" } ], - "bytecode": "0x608060405260016002553480156200001657600080fd5b5060405160c0806200218883398101604090815281516020830151918301516060840151608085015160a090950151600084905560018054600160a060020a031916331790559294919290919085816200007e8164010000000062001e3b620001a482021704565b8015620000a357506064620000a18264010000000062001e8e620001e182021704565b105b1515620000af57600080fd5b600d555060038054600160a060020a03808816600160a060020a031992831617909255600480548784169083161781556006805487851693169290921791829055604080517f313ce5670000000000000000000000000000000000000000000000000000000081529051929093169263313ce56792818301926020928290030181600087803b1580156200014257600080fd5b505af115801562000157573d6000803e3d6000fd5b505050506040513d60208110156200016e57600080fd5b505160ff16600755600d5560058054600160a060020a031916600160a060020a0392909216919091179055506200028d92505050565b6000620001b964010000000062000233810204565b8210158015620001db5750620001d764010000000062000238810204565b8211155b92915050565b6000620001f782640100000000620001a4810204565b15156200020357600080fd5b620001db6200021a64010000000062000255810204565b8390600a0a64010000000062001d5e6200025a82021704565b600090565b60006200024d64010000000062000270810204565b600a0a905090565b600290565b600081838115156200026857fe5b049392505050565b60006200028564010000000062000255810204565b600201905090565b611eeb806200029d6000396000f30060806040526004361061015b5763ffffffff60e060020a60003504166304cd5294811461015d5780630babd8641461018757806311fa7da2146101b857806319ae48ed146101f257806323585f961461020757806323bffccc14610233578063278ecde1146102545780633b97e8561461026c5780633fa911ae14610281578063483a20b21461029657806354fd4d50146102b75780635641f3c3146102cc5780636ebc0af1146102e1578063715018a6146102f6578063774dfa4e1461030b5780638119c065146103235780638ce2bc2a146103385780638da5cb5b1461034d578063958799cb1461036257806397a993aa146103795780639c1e03a0146103b85780639e80baac146103cd578063a328665a146103e2578063a5db096a146103f7578063ac2a2a341461040f578063acb3c07314610424578063ad044f4914610445578063d90829621461045a578063f2fde38b1461046f575b005b34801561016957600080fd5b50610175600435610490565b60408051918252519081900360200190f35b34801561019357600080fd5b5061019c6106ba565b60408051600160a060020a039092168252519081900360200190f35b3480156101c457600080fd5b506101d9600160a060020a03600435166106c9565b6040805192835260208301919091528051918290030190f35b3480156101fe57600080fd5b50610175610706565b34801561021357600080fd5b5061021f60043561070c565b604080519115158252519081900360200190f35b34801561023f57600080fd5b5061015b600160a060020a0360043516610721565b34801561026057600080fd5b5061015b60043561077c565b34801561027857600080fd5b50610175610b36565b34801561028d57600080fd5b5061021f610b3c565b3480156102a257600080fd5b5061015b600160a060020a0360043516610d51565b3480156102c357600080fd5b50610175610eda565b3480156102d857600080fd5b5061019c610ee0565b3480156102ed57600080fd5b5061015b610eef565b34801561030257600080fd5b5061015b611070565b34801561031757600080fd5b5061015b6004356110de565b34801561032f57600080fd5b5061019c6110e3565b34801561034457600080fd5b506101756110f2565b34801561035957600080fd5b5061019c611176565b61015b600160a060020a0360043516602435611185565b34801561038557600080fd5b5061039a600160a060020a03600435166112b6565b60408051938452602084019290925282820152519081900360600190f35b3480156103c457600080fd5b5061019c6112d7565b3480156103d957600080fd5b5061021f6112e6565b3480156103ee57600080fd5b506101756116d7565b34801561040357600080fd5b5061015b6004356116dd565b34801561041b57600080fd5b5061039a6116e2565b34801561043057600080fd5b5061015b600160a060020a0360043516611c98565b34801561045157600080fd5b50610175611cf3565b34801561046657600080fd5b50610175611cf9565b34801561047b57600080fd5b5061015b600160a060020a0360043516611cff565b6000806000806000806104af6008600754611d2290919063ffffffff16565b600754106104bf576007546104d3565b6007546104d390600863ffffffff611d2216565b94507f199999999999999999999999999999999999999999999999999999999999999985111561050257600080fd5b84600a0a60001981151561051257fe5b04935033925086158061053b5750600160a060020a038316600090815260086020526040902054155b8061054557503031155b806105e45750600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015291518a9392909216916370a08231916024808201926020929091908290030181600087803b1580156105b657600080fd5b505af11580156105ca573d6000803e3d6000fd5b505050506040513d60208110156105e057600080fd5b5051105b806106065750600160a060020a03831660009081526008602052604090205487115b15610610576106b0565b600a54600160a060020a038416600090815260086020526040902060020154610651913031916106459163ffffffff611d3516565b9063ffffffff611d5e16565b9150838210156106645784600a0a610667565b60015b600160a060020a0384166000908152600860205260409020549091506106ad908290610645908a906106a19083888663ffffffff611d3516565b9063ffffffff611d3516565b95505b5050505050919050565b600654600160a060020a031681565b600080600160a060020a03831615156106e157600080fd5b5050600160a060020a0316600090815260086020526040902080546001909101549091565b600c5481565b60096020526000908152604090205460ff1681565b600154600160a060020a0316331461073857600080fd5b600160a060020a038116151561074d57600080fd5b6005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080600160025414151561079057600080fd5b6002805533915061079f610b3c565b15156107aa57600080fd5b600083116107b757600080fd5b600160a060020a0382166000908152600860205260409020548311156107dc57600080fd5b600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301529151869392909216916370a08231916024808201926020929091908290030181600087803b15801561084757600080fd5b505af115801561085b573d6000803e3d6000fd5b505050506040513d602081101561087157600080fd5b5051101561087e57600080fd5b600654604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290518592600160a060020a03169163dd62ed3e9160448083019260209291908290030181600087803b1580156108e957600080fd5b505af11580156108fd573d6000803e3d6000fd5b505050506040513d602081101561091357600080fd5b5051101561092057600080fd5b61092983610490565b90506000811161093857600080fd5b600160a060020a038216600090815260086020526040902054610961908463ffffffff611d7316565b600160a060020a03831660009081526008602052604090209081556007546001909101546109cd916109a591600a9190910a9061064590879063ffffffff611d3516565b600160a060020a0384166000908152600860205260409020600201549063ffffffff611d7316565b600160a060020a038316600090815260086020526040902060020155600b546109fc908263ffffffff611d2216565b600b5560065460048054604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a03878116948201949094529183166024830152604482018790525191909216916323b872dd9160648083019260209291908290030181600087803b158015610a7b57600080fd5b505af1158015610a8f573d6000803e3d6000fd5b505050506040513d6020811015610aa557600080fd5b50511515610ab257600080fd5b604051600160a060020a0383169082156108fc029083906000818181858888f19350505050158015610ae8573d6000803e3d6000fd5b5060408051828152602081018590528151600160a060020a038516927ffc48f4f163cfed28aaf3be3f0b162a1338fab214afc9340eafc6cb081c71fadf928290030190a25050600160025550565b60075481565b600354604080517fd6d65f3d00000000000000000000000000000000000000000000000000000000815281516000938493849384938493600160a060020a03169263d6d65f3d926004808201939182900301818787803b158015610b9f57600080fd5b505af1158015610bb3573d6000803e3d6000fd5b505050506040513d6040811015610bc957600080fd5b5080516020909101519094509250831515610be357610d4a565b6003546040805160e060020a632442e1cb028152600481018790529051600160a060020a0390921691632442e1cb9160248082019260009290919082900301818387803b158015610c3357600080fd5b505af1158015610c47573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c0811015610c7057600080fd5b815160208301516040840151606085015160808601805194969395929491939283019291640100000000811115610ca657600080fd5b82016020810184811115610cb957600080fd5b8151640100000000811182820187101715610cd357600080fd5b50509291906020018051640100000000811115610cef57600080fd5b82016020810184811115610d0257600080fd5b8151640100000000811182820187101715610d1c57600080fd5b50509291905050505050935050509150428263ffffffff1611158015610d4757508063ffffffff1642105b94505b5050505090565b600154600160a060020a03163314610d6857600080fd5b600160a060020a0381161515610d7d57600080fd5b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038316908117909155604080517f4090cb640000000000000000000000000000000000000000000000000000000081529051634090cb64916004808201926020929091908290030181600087803b158015610df957600080fd5b505af1158015610e0d573d6000803e3d6000fd5b505050506040513d6020811015610e2357600080fd5b50516006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039283161790819055604080517f313ce5670000000000000000000000000000000000000000000000000000000081529051919092169163313ce5679160048083019260209291908290030181600087803b158015610ea557600080fd5b505af1158015610eb9573d6000803e3d6000fd5b505050506040513d6020811015610ecf57600080fd5b505160ff1660075550565b60005481565b600554600160a060020a031681565b600154600090819081908190600160a060020a03163314610f0f57600080fd5b600254600114610f1e57600080fd5b60028055610f2a6112e6565b1515610f3557600080fd5b610f3d6110f2565b9350610f476116e2565b9350509250600084111515610f5b57600080fd5b6000828152600960205260408120805460ff19166001179055600d541115610fa657600d54610f9190859063ffffffff611d8516565b9050610fa3848263ffffffff611d7316565b93505b600c54610fb9908463ffffffff611d2216565b600c55600081111561100157600554604051600160a060020a039091169082156108fc029083906000818181858888f19350505050158015610fff573d6000803e3d6000fd5b505b604051339085156108fc029086906000818181858888f1935050505015801561102e573d6000803e3d6000fd5b5060408051858152905133917f4a966617f50ccad97beb624d8e13820bf2a745e1640fed943858499286fc9829919081900360200190a2505060016002555050565b600154600160a060020a0316331461108757600080fd5b600154604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26001805473ffffffffffffffffffffffffffffffffffffffff19169055565b600a55565b600454600160a060020a031681565b60008060008060006111026116e2565b5093509350836000148015611115575082155b8061111f57503031155b1561112957610d4a565b600b54600a5461113e9163ffffffff611d7316565b600c5490925061116490611158868663ffffffff611d2216565b9063ffffffff611d7316565b9050610d47828263ffffffff611d8516565b600154600160a060020a031681565b600354600160a060020a03166000821161119e57600080fd5b600034116111ab57600080fd5b600160a060020a0383166000908152600860205260409020546111d4908363ffffffff611d2216565b600160a060020a038416600090815260086020526040902090815560020154611203903463ffffffff611d2216565b600160a060020a0384166000908152600860205260409020600281018290555460075461123c9261064591600a0a63ffffffff611d3516565b600160a060020a038416600090815260086020526040902060010155600a5461126b903463ffffffff611d2216565b600a5560408051348152602081018490528151600160a060020a038616927f363f315f930a17d1266b86a20d6dd34b1cfbc5a9db9f13a65d06a689c3a2af8a928290030190a2505050565b60086020526000908152604090208054600182015460029092015490919083565b600354600160a060020a031681565b600080600080600080600360009054906101000a9004600160a060020a0316600160a060020a031663d6d65f3d6040518163ffffffff1660e060020a0281526004016040805180830381600087803b15801561134157600080fd5b505af1158015611355573d6000803e3d6000fd5b505050506040513d604081101561136b57600080fd5b508051602090910151600354604080517f14f66d340000000000000000000000000000000000000000000000000000000081528151949950929750600160a060020a03909116926314f66d349260048082019392918290030181600087803b1580156113d657600080fd5b505af11580156113ea573d6000803e3d6000fd5b505050506040513d604081101561140057600080fd5b50519250831515611410576116cf565b84151561142057600195506116cf565b6003546040805160e060020a632442e1cb028152600481018890529051600160a060020a0390921691632442e1cb9160248082019260009290919082900301818387803b15801561147057600080fd5b505af1158015611484573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c08110156114ad57600080fd5b8151602083015160408401516060850151608086018051949693959294919392830192916401000000008111156114e357600080fd5b820160208101848111156114f657600080fd5b815164010000000081118282018710171561151057600080fd5b5050929190602001805164010000000081111561152c57600080fd5b8201602081018481111561153f57600080fd5b815164010000000081118282018710171561155957600080fd5b50506003546040805160e060020a632442e1cb028152600481018f905290519a9c50600160a060020a0390911699632442e1cb9950602480830199506000985090965090869003019350849250859150889050803b1580156115ba57600080fd5b505af11580156115ce573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c08110156115f757600080fd5b81516020830151604084015160608501516080860180519496939592949193928301929164010000000081111561162d57600080fd5b8201602081018481111561164057600080fd5b815164010000000081118282018710171561165a57600080fd5b5050929190602001805164010000000081111561167657600080fd5b8201602081018481111561168957600080fd5b81516401000000008111828201871017156116a357600080fd5b505092919050505050509350505050428263ffffffff1611806116cc5750428163ffffffff1611155b95505b505050505090565b600d5481565b600b55565b600080600080600080600080600080600080600360009054906101000a9004600160a060020a0316600160a060020a031663d6d65f3d6040518163ffffffff1660e060020a0281526004016040805180830381600087803b15801561174657600080fd5b505af115801561175a573d6000803e3d6000fd5b505050506040513d604081101561177057600080fd5b508051602090910151600354604080517f14f66d340000000000000000000000000000000000000000000000000000000081528151949d50929b50600160a060020a03909116926314f66d349260048082019392918290030181600087803b1580156117db57600080fd5b505af11580156117ef573d6000803e3d6000fd5b505050506040513d604081101561180557600080fd5b50516003546040805160e060020a632442e1cb028152600481018490529051929950600160a060020a0390911691632442e1cb9160248082019260009290919082900301818387803b15801561185a57600080fd5b505af115801561186e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c081101561189757600080fd5b8151602083015160408401516060850151608086018051949693959294919392830192916401000000008111156118cd57600080fd5b820160208101848111156118e057600080fd5b81516401000000008111828201871017156118fa57600080fd5b5050929190602001805164010000000081111561191657600080fd5b8201602081018481111561192957600080fd5b815164010000000081118282018710171561194357600080fd5b50509291905050505050985050505087158061196457506119626112e6565b155b1561196e57611c8a565b88158061198157508563ffffffff164210155b61198e5760018903611990565b885b6003546040805160e060020a632442e1cb028152600481018490529051929b50600160a060020a0390911691632442e1cb9160248082019260009290919082900301818387803b1580156119e357600080fd5b505af11580156119f7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c0811015611a2057600080fd5b815160208301516040840151606085015160808601805194969395929491939283019291640100000000811115611a5657600080fd5b82016020810184811115611a6957600080fd5b8151640100000000811182820187101715611a8357600080fd5b50509291906020018051640100000000811115611a9f57600080fd5b82016020810184811115611ab257600080fd5b8151640100000000811182820187101715611acc57600080fd5b50509291905050505050965050955050600960008a815260200190815260200160002060009054906101000a900460ff1692508215611b0a57611c8a565b8891505b6000821115611c80576003546040805160e060020a632442e1cb0281526000199094016004850181905290519093600160a060020a0390921691632442e1cb91602480830192600092919082900301818387803b158015611b6e57600080fd5b505af1158015611b82573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c0811015611bab57600080fd5b815160208301516040840151606085015160808601805194969395929491939283019291640100000000811115611be157600080fd5b82016020810184811115611bf457600080fd5b8151640100000000811182820187101715611c0e57600080fd5b50509291906020018051640100000000811115611c2a57600080fd5b82016020810184811115611c3d57600080fd5b8151640100000000811182820187101715611c5757600080fd5b505092919050505050505050915050611c79818c611d2290919063ffffffff16565b9a50611b0e565b848b8a9b509b509b505b505050505050505050909192565b600154600160a060020a03163314611caf57600080fd5b600160a060020a0381161515611cc457600080fd5b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600a5481565b600b5481565b600154600160a060020a03163314611d1657600080fd5b611d1f81611dbd565b50565b81810182811015611d2f57fe5b92915050565b6000821515611d4657506000611d2f565b50818102818382811515611d5657fe5b0414611d2f57fe5b60008183811515611d6b57fe5b049392505050565b600082821115611d7f57fe5b50900390565b6000611d9082611e3b565b1515611d9b57600080fd5b611db6611da6611e60565b610645858563ffffffff611d3516565b9392505050565b600160a060020a0381161515611dd257600080fd5b600154604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000611e45611e72565b8210158015611d2f5750611e57611e60565b82111592915050565b6000611e6a611e77565b600a0a905090565b600090565b6000611e81611e89565b600201905090565b600290565b6000611e9982611e3b565b1515611ea457600080fd5b611d2f611eaf611e89565b8390600a0a63ffffffff611d5e165600a165627a7a723058209684668488aa869a25da5ae9018c355c58c5ec5078d32a44d242eafd886be4440029", - "deployedBytecode": "0x60806040526004361061015b5763ffffffff60e060020a60003504166304cd5294811461015d5780630babd8641461018757806311fa7da2146101b857806319ae48ed146101f257806323585f961461020757806323bffccc14610233578063278ecde1146102545780633b97e8561461026c5780633fa911ae14610281578063483a20b21461029657806354fd4d50146102b75780635641f3c3146102cc5780636ebc0af1146102e1578063715018a6146102f6578063774dfa4e1461030b5780638119c065146103235780638ce2bc2a146103385780638da5cb5b1461034d578063958799cb1461036257806397a993aa146103795780639c1e03a0146103b85780639e80baac146103cd578063a328665a146103e2578063a5db096a146103f7578063ac2a2a341461040f578063acb3c07314610424578063ad044f4914610445578063d90829621461045a578063f2fde38b1461046f575b005b34801561016957600080fd5b50610175600435610490565b60408051918252519081900360200190f35b34801561019357600080fd5b5061019c6106ba565b60408051600160a060020a039092168252519081900360200190f35b3480156101c457600080fd5b506101d9600160a060020a03600435166106c9565b6040805192835260208301919091528051918290030190f35b3480156101fe57600080fd5b50610175610706565b34801561021357600080fd5b5061021f60043561070c565b604080519115158252519081900360200190f35b34801561023f57600080fd5b5061015b600160a060020a0360043516610721565b34801561026057600080fd5b5061015b60043561077c565b34801561027857600080fd5b50610175610b36565b34801561028d57600080fd5b5061021f610b3c565b3480156102a257600080fd5b5061015b600160a060020a0360043516610d51565b3480156102c357600080fd5b50610175610eda565b3480156102d857600080fd5b5061019c610ee0565b3480156102ed57600080fd5b5061015b610eef565b34801561030257600080fd5b5061015b611070565b34801561031757600080fd5b5061015b6004356110de565b34801561032f57600080fd5b5061019c6110e3565b34801561034457600080fd5b506101756110f2565b34801561035957600080fd5b5061019c611176565b61015b600160a060020a0360043516602435611185565b34801561038557600080fd5b5061039a600160a060020a03600435166112b6565b60408051938452602084019290925282820152519081900360600190f35b3480156103c457600080fd5b5061019c6112d7565b3480156103d957600080fd5b5061021f6112e6565b3480156103ee57600080fd5b506101756116d7565b34801561040357600080fd5b5061015b6004356116dd565b34801561041b57600080fd5b5061039a6116e2565b34801561043057600080fd5b5061015b600160a060020a0360043516611c98565b34801561045157600080fd5b50610175611cf3565b34801561046657600080fd5b50610175611cf9565b34801561047b57600080fd5b5061015b600160a060020a0360043516611cff565b6000806000806000806104af6008600754611d2290919063ffffffff16565b600754106104bf576007546104d3565b6007546104d390600863ffffffff611d2216565b94507f199999999999999999999999999999999999999999999999999999999999999985111561050257600080fd5b84600a0a60001981151561051257fe5b04935033925086158061053b5750600160a060020a038316600090815260086020526040902054155b8061054557503031155b806105e45750600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015291518a9392909216916370a08231916024808201926020929091908290030181600087803b1580156105b657600080fd5b505af11580156105ca573d6000803e3d6000fd5b505050506040513d60208110156105e057600080fd5b5051105b806106065750600160a060020a03831660009081526008602052604090205487115b15610610576106b0565b600a54600160a060020a038416600090815260086020526040902060020154610651913031916106459163ffffffff611d3516565b9063ffffffff611d5e16565b9150838210156106645784600a0a610667565b60015b600160a060020a0384166000908152600860205260409020549091506106ad908290610645908a906106a19083888663ffffffff611d3516565b9063ffffffff611d3516565b95505b5050505050919050565b600654600160a060020a031681565b600080600160a060020a03831615156106e157600080fd5b5050600160a060020a0316600090815260086020526040902080546001909101549091565b600c5481565b60096020526000908152604090205460ff1681565b600154600160a060020a0316331461073857600080fd5b600160a060020a038116151561074d57600080fd5b6005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080600160025414151561079057600080fd5b6002805533915061079f610b3c565b15156107aa57600080fd5b600083116107b757600080fd5b600160a060020a0382166000908152600860205260409020548311156107dc57600080fd5b600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301529151869392909216916370a08231916024808201926020929091908290030181600087803b15801561084757600080fd5b505af115801561085b573d6000803e3d6000fd5b505050506040513d602081101561087157600080fd5b5051101561087e57600080fd5b600654604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290518592600160a060020a03169163dd62ed3e9160448083019260209291908290030181600087803b1580156108e957600080fd5b505af11580156108fd573d6000803e3d6000fd5b505050506040513d602081101561091357600080fd5b5051101561092057600080fd5b61092983610490565b90506000811161093857600080fd5b600160a060020a038216600090815260086020526040902054610961908463ffffffff611d7316565b600160a060020a03831660009081526008602052604090209081556007546001909101546109cd916109a591600a9190910a9061064590879063ffffffff611d3516565b600160a060020a0384166000908152600860205260409020600201549063ffffffff611d7316565b600160a060020a038316600090815260086020526040902060020155600b546109fc908263ffffffff611d2216565b600b5560065460048054604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a03878116948201949094529183166024830152604482018790525191909216916323b872dd9160648083019260209291908290030181600087803b158015610a7b57600080fd5b505af1158015610a8f573d6000803e3d6000fd5b505050506040513d6020811015610aa557600080fd5b50511515610ab257600080fd5b604051600160a060020a0383169082156108fc029083906000818181858888f19350505050158015610ae8573d6000803e3d6000fd5b5060408051828152602081018590528151600160a060020a038516927ffc48f4f163cfed28aaf3be3f0b162a1338fab214afc9340eafc6cb081c71fadf928290030190a25050600160025550565b60075481565b600354604080517fd6d65f3d00000000000000000000000000000000000000000000000000000000815281516000938493849384938493600160a060020a03169263d6d65f3d926004808201939182900301818787803b158015610b9f57600080fd5b505af1158015610bb3573d6000803e3d6000fd5b505050506040513d6040811015610bc957600080fd5b5080516020909101519094509250831515610be357610d4a565b6003546040805160e060020a632442e1cb028152600481018790529051600160a060020a0390921691632442e1cb9160248082019260009290919082900301818387803b158015610c3357600080fd5b505af1158015610c47573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c0811015610c7057600080fd5b815160208301516040840151606085015160808601805194969395929491939283019291640100000000811115610ca657600080fd5b82016020810184811115610cb957600080fd5b8151640100000000811182820187101715610cd357600080fd5b50509291906020018051640100000000811115610cef57600080fd5b82016020810184811115610d0257600080fd5b8151640100000000811182820187101715610d1c57600080fd5b50509291905050505050935050509150428263ffffffff1611158015610d4757508063ffffffff1642105b94505b5050505090565b600154600160a060020a03163314610d6857600080fd5b600160a060020a0381161515610d7d57600080fd5b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038316908117909155604080517f4090cb640000000000000000000000000000000000000000000000000000000081529051634090cb64916004808201926020929091908290030181600087803b158015610df957600080fd5b505af1158015610e0d573d6000803e3d6000fd5b505050506040513d6020811015610e2357600080fd5b50516006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039283161790819055604080517f313ce5670000000000000000000000000000000000000000000000000000000081529051919092169163313ce5679160048083019260209291908290030181600087803b158015610ea557600080fd5b505af1158015610eb9573d6000803e3d6000fd5b505050506040513d6020811015610ecf57600080fd5b505160ff1660075550565b60005481565b600554600160a060020a031681565b600154600090819081908190600160a060020a03163314610f0f57600080fd5b600254600114610f1e57600080fd5b60028055610f2a6112e6565b1515610f3557600080fd5b610f3d6110f2565b9350610f476116e2565b9350509250600084111515610f5b57600080fd5b6000828152600960205260408120805460ff19166001179055600d541115610fa657600d54610f9190859063ffffffff611d8516565b9050610fa3848263ffffffff611d7316565b93505b600c54610fb9908463ffffffff611d2216565b600c55600081111561100157600554604051600160a060020a039091169082156108fc029083906000818181858888f19350505050158015610fff573d6000803e3d6000fd5b505b604051339085156108fc029086906000818181858888f1935050505015801561102e573d6000803e3d6000fd5b5060408051858152905133917f4a966617f50ccad97beb624d8e13820bf2a745e1640fed943858499286fc9829919081900360200190a2505060016002555050565b600154600160a060020a0316331461108757600080fd5b600154604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26001805473ffffffffffffffffffffffffffffffffffffffff19169055565b600a55565b600454600160a060020a031681565b60008060008060006111026116e2565b5093509350836000148015611115575082155b8061111f57503031155b1561112957610d4a565b600b54600a5461113e9163ffffffff611d7316565b600c5490925061116490611158868663ffffffff611d2216565b9063ffffffff611d7316565b9050610d47828263ffffffff611d8516565b600154600160a060020a031681565b600354600160a060020a03166000821161119e57600080fd5b600034116111ab57600080fd5b600160a060020a0383166000908152600860205260409020546111d4908363ffffffff611d2216565b600160a060020a038416600090815260086020526040902090815560020154611203903463ffffffff611d2216565b600160a060020a0384166000908152600860205260409020600281018290555460075461123c9261064591600a0a63ffffffff611d3516565b600160a060020a038416600090815260086020526040902060010155600a5461126b903463ffffffff611d2216565b600a5560408051348152602081018490528151600160a060020a038616927f363f315f930a17d1266b86a20d6dd34b1cfbc5a9db9f13a65d06a689c3a2af8a928290030190a2505050565b60086020526000908152604090208054600182015460029092015490919083565b600354600160a060020a031681565b600080600080600080600360009054906101000a9004600160a060020a0316600160a060020a031663d6d65f3d6040518163ffffffff1660e060020a0281526004016040805180830381600087803b15801561134157600080fd5b505af1158015611355573d6000803e3d6000fd5b505050506040513d604081101561136b57600080fd5b508051602090910151600354604080517f14f66d340000000000000000000000000000000000000000000000000000000081528151949950929750600160a060020a03909116926314f66d349260048082019392918290030181600087803b1580156113d657600080fd5b505af11580156113ea573d6000803e3d6000fd5b505050506040513d604081101561140057600080fd5b50519250831515611410576116cf565b84151561142057600195506116cf565b6003546040805160e060020a632442e1cb028152600481018890529051600160a060020a0390921691632442e1cb9160248082019260009290919082900301818387803b15801561147057600080fd5b505af1158015611484573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c08110156114ad57600080fd5b8151602083015160408401516060850151608086018051949693959294919392830192916401000000008111156114e357600080fd5b820160208101848111156114f657600080fd5b815164010000000081118282018710171561151057600080fd5b5050929190602001805164010000000081111561152c57600080fd5b8201602081018481111561153f57600080fd5b815164010000000081118282018710171561155957600080fd5b50506003546040805160e060020a632442e1cb028152600481018f905290519a9c50600160a060020a0390911699632442e1cb9950602480830199506000985090965090869003019350849250859150889050803b1580156115ba57600080fd5b505af11580156115ce573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c08110156115f757600080fd5b81516020830151604084015160608501516080860180519496939592949193928301929164010000000081111561162d57600080fd5b8201602081018481111561164057600080fd5b815164010000000081118282018710171561165a57600080fd5b5050929190602001805164010000000081111561167657600080fd5b8201602081018481111561168957600080fd5b81516401000000008111828201871017156116a357600080fd5b505092919050505050509350505050428263ffffffff1611806116cc5750428163ffffffff1611155b95505b505050505090565b600d5481565b600b55565b600080600080600080600080600080600080600360009054906101000a9004600160a060020a0316600160a060020a031663d6d65f3d6040518163ffffffff1660e060020a0281526004016040805180830381600087803b15801561174657600080fd5b505af115801561175a573d6000803e3d6000fd5b505050506040513d604081101561177057600080fd5b508051602090910151600354604080517f14f66d340000000000000000000000000000000000000000000000000000000081528151949d50929b50600160a060020a03909116926314f66d349260048082019392918290030181600087803b1580156117db57600080fd5b505af11580156117ef573d6000803e3d6000fd5b505050506040513d604081101561180557600080fd5b50516003546040805160e060020a632442e1cb028152600481018490529051929950600160a060020a0390911691632442e1cb9160248082019260009290919082900301818387803b15801561185a57600080fd5b505af115801561186e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c081101561189757600080fd5b8151602083015160408401516060850151608086018051949693959294919392830192916401000000008111156118cd57600080fd5b820160208101848111156118e057600080fd5b81516401000000008111828201871017156118fa57600080fd5b5050929190602001805164010000000081111561191657600080fd5b8201602081018481111561192957600080fd5b815164010000000081118282018710171561194357600080fd5b50509291905050505050985050505087158061196457506119626112e6565b155b1561196e57611c8a565b88158061198157508563ffffffff164210155b61198e5760018903611990565b885b6003546040805160e060020a632442e1cb028152600481018490529051929b50600160a060020a0390911691632442e1cb9160248082019260009290919082900301818387803b1580156119e357600080fd5b505af11580156119f7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c0811015611a2057600080fd5b815160208301516040840151606085015160808601805194969395929491939283019291640100000000811115611a5657600080fd5b82016020810184811115611a6957600080fd5b8151640100000000811182820187101715611a8357600080fd5b50509291906020018051640100000000811115611a9f57600080fd5b82016020810184811115611ab257600080fd5b8151640100000000811182820187101715611acc57600080fd5b50509291905050505050965050955050600960008a815260200190815260200160002060009054906101000a900460ff1692508215611b0a57611c8a565b8891505b6000821115611c80576003546040805160e060020a632442e1cb0281526000199094016004850181905290519093600160a060020a0390921691632442e1cb91602480830192600092919082900301818387803b158015611b6e57600080fd5b505af1158015611b82573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260c0811015611bab57600080fd5b815160208301516040840151606085015160808601805194969395929491939283019291640100000000811115611be157600080fd5b82016020810184811115611bf457600080fd5b8151640100000000811182820187101715611c0e57600080fd5b50509291906020018051640100000000811115611c2a57600080fd5b82016020810184811115611c3d57600080fd5b8151640100000000811182820187101715611c5757600080fd5b505092919050505050505050915050611c79818c611d2290919063ffffffff16565b9a50611b0e565b848b8a9b509b509b505b505050505050505050909192565b600154600160a060020a03163314611caf57600080fd5b600160a060020a0381161515611cc457600080fd5b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600a5481565b600b5481565b600154600160a060020a03163314611d1657600080fd5b611d1f81611dbd565b50565b81810182811015611d2f57fe5b92915050565b6000821515611d4657506000611d2f565b50818102818382811515611d5657fe5b0414611d2f57fe5b60008183811515611d6b57fe5b049392505050565b600082821115611d7f57fe5b50900390565b6000611d9082611e3b565b1515611d9b57600080fd5b611db6611da6611e60565b610645858563ffffffff611d3516565b9392505050565b600160a060020a0381161515611dd257600080fd5b600154604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000611e45611e72565b8210158015611d2f5750611e57611e60565b82111592915050565b6000611e6a611e77565b600a0a905090565b600090565b6000611e81611e89565b600201905090565b600290565b6000611e9982611e3b565b1515611ea457600080fd5b611d2f611eaf611e89565b8390600a0a63ffffffff611d5e165600a165627a7a723058209684668488aa869a25da5ae9018c355c58c5ec5078d32a44d242eafd886be4440029", - "sourceMap": "81:857:7:-;;;487:1:28;657:51;;119:515:7;8:9:-1;5:2;;;30:1;27;20:12;5:2;119:515:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;123:7:26;:18;;;567:5:31;:18;;-1:-1:-1;;;;;;567:18:31;575:10;567:18;;;119:515:7;;;;;;;;;1406:30:4;119:515:7;1406:28:4;;;;;;:30;:::i;:::-;:72;;;;-1:-1:-1;1475:3:4;1440:32;:18;:30;;;;;;:32;:::i;:::-;:38;1406:72;1398:81;;;;;;;;1490:17;:38;-1:-1:-1;385:9:7;:43;;-1:-1:-1;;;;;385:43:7;;;-1:-1:-1;;;;;;385:43:7;;;;;;;438:4;:18;;;;;;;;;;;466:6;:30;;;;;;;;;;;;;;;522:17;;;;;;;;:6;;;;;:15;;:17;;;;;;;;;;;385:9;522:6;:17;;;5:2:-1;;;;30:1;27;20:12;5:2;522:17:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;522:17:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;522:17:7;506:33;;:13;:33;549:17;:38;597:13;:30;;-1:-1:-1;;;;;;597:30:7;-1:-1:-1;;;;;597:30:7;;;;;;;;;;-1:-1:-1;81:857:7;;-1:-1:-1;;;81:857:7;554:107:14;605:4;634:5;:3;;;;:5;:::i;:::-;628:2;:11;;:26;;;;-1:-1:-1;649:5:14;:3;;;;:5;:::i;:::-;643:2;:11;;628:26;621:33;554:107;-1:-1:-1;;554:107:14:o;806:139::-;859:4;883:13;893:2;883:9;;;;:13;:::i;:::-;875:22;;;;;;;;915:23;928:9;:7;;;;:9;:::i;:::-;915:2;;922;:15;915:6;;;;;;:23;:::i;275:55::-;311:4;275:55;:::o;335:65::-;371:4;392:5;:3;;;;:5;:::i;:::-;386:2;:11;379:18;;335:65;:::o;139:59::-;194:1;139:59;:::o;665:283:30:-;725:7;941:2;936;:7;;;;;;;;;665:283;-1:-1:-1;;;665:283:30:o;203:67:14:-;239:4;258:9;:7;;;;:9;:::i;:::-;254:1;:13;247:20;;203:67;:::o;81:857:7:-;;;;;;;", - "deployedSourceMap": "81:857:7:-;;;;;;;;;-1:-1:-1;;;81:857:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3111:910:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3111:910:4;;;;;;;;;;;;;;;;;;;;;614:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;614:20:4;;;;;;;;-1:-1:-1;;;;;614:20:4;;;;;;;;;;;;;;2641:232;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2641:232:4;-1:-1:-1;;;;;2641:232:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;883:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;883:39:4;;;;747:47;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;747:47:4;;;;;;;;;;;;;;;;;;;;;;;1906:164;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1906:164:4;-1:-1:-1;;;;;1906:164:4;;;;;6446:1022;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6446:1022:4;;;;;640:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;640:25:4;;;;7474:439;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7474:439:4;;;;1541:234;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1541:234:4;-1:-1:-1;;;;;1541:234:4;;;;;53:19:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;53:19:26;;;;580:28:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;580:28:4;;;;5703:737;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5703:737:4;;;;1001:111:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1001:111:31;;;;640:84:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;640:84:7;;;;;555:19:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;555:19:4;;;;4027:554;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4027:554:4;;;;238:20:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:31;;;;2076:559:4;;-1:-1:-1;;;;;2076:559:4;;;;;;;694:47;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;694:47:4;-1:-1:-1;;;;;694:47:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;519:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;519:30:4;;;;7919:484;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7919:484:4;;;;928:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;928:29:4;;;;730:88:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;730:88:7;;;;;4587:1110:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4587:1110:4;;;;1781:119;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1781:119:4;-1:-1:-1;;;;;1781:119:4;;;;;823:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;823:23:4;;;;852:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;852:25:4;;;;1274:103:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1274:103:31;-1:-1:-1;;;;;1274:103:31;;;;;3111:910:4;3179:11;3202:8;3340;3381:13;3673:16;3771:23;3229:20;3247:1;3229:13;;:17;;:20;;;;:::i;:::-;3213:13;;:36;:75;;3275:13;;3213:75;;;3252:13;;:20;;3270:1;3252:20;:17;:20;:::i;:::-;3202:86;-1:-1:-1;3307:14:4;:21;-1:-1:-1;3307:21:4;3299:30;;;;;;3368:3;3362:2;:9;-1:-1:-1;;3351:20:4;;;;;;;;;-1:-1:-1;3397:10:4;;-1:-1:-1;3421:20:4;;;:66;;-1:-1:-1;;;;;;3457:13:4;;;;;;:6;:13;;;;;:25;:30;3421:66;:108;;;-1:-1:-1;3511:4:4;3503:21;:26;3421:108;:165;;;-1:-1:-1;3545:6:4;;:23;;;;;;-1:-1:-1;;;;;3545:23:4;;;;;;;;;3571:15;;3545:6;;;;;:16;;:23;;;;;;;;;;;;;;;:6;;:23;;;5:2:-1;;;;30:1;27;20:12;5:2;3545:23:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3545:23:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3545:23:4;:41;3421:165;:224;;;-1:-1:-1;;;;;;3602:13:4;;;;;;:6;:13;;;;;:25;:43;-1:-1:-1;3421:224:4;3418:245;;;3656:7;;3418:245;3722:11;;-1:-1:-1;;;;;3692:13:4;;;;;;:6;:13;;;;;:25;;;:69;;3747:4;3739:21;;3692:42;;;:29;:42;:::i;:::-;:46;:69;:46;:69;:::i;:::-;3673:88;;3812:3;3797:11;:18;;:34;;3828:3;3822:2;:9;3797:34;;;3818:1;3797:34;-1:-1:-1;;;;;3917:13:4;;;;;;:6;:13;;;;;:25;3771:60;;-1:-1:-1;3851:163:4;;3771:60;;3851:126;;3961:15;;3851:92;;:126;:11;3771:60;3851:48;:28;:48;:::i;:92::-;:109;:126;:109;:126;:::i;:163::-;3842:172;;3111:910;;;;;;;;;:::o;614:20::-;;;-1:-1:-1;;;;;614:20:4;;:::o;2641:232::-;2707:22;;-1:-1:-1;;;;;2773:19:4;;;;2765:28;;;;;;-1:-1:-1;;;;;;;2812:13:4;;;;;:6;:13;;;;;:25;;2839:26;;;;;2812:25;;2641:232::o;883:39::-;;;;:::o;747:47::-;;;;;;;;;;;;;;;:::o;1906:164::-;719:5:31;;-1:-1:-1;;;;;719:5:31;705:10;:19;697:28;;;;;;-1:-1:-1;;;;;1993:28:4;;;;1985:37;;;;;;2033:13;:30;;-1:-1:-1;;2033:30:4;-1:-1:-1;;;;;2033:30:4;;;;;;;;;;1906:164::o;6446:1022::-;6516:13;6831:19;487:1:28;1128:14;;:39;1120:48;;;;;;;;584:1;1174:40;;6532:10:4;;-1:-1:-1;6561:15:4;:13;:15::i;:::-;6553:24;;;;;;;;6613:1;6595:19;;6587:28;;;;;;-1:-1:-1;;;;;6633:13:4;;;;;;:6;:13;;;;;:25;:44;-1:-1:-1;6633:44:4;6625:53;;;;;;6696:6;;:23;;;;;;-1:-1:-1;;;;;6696:23:4;;;;;;;;;6723:15;;6696:6;;;;;:16;;:23;;;;;;;;;;;;;;;:6;;:23;;;5:2:-1;;;;30:1;27;20:12;5:2;6696:23:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6696:23:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6696:23:4;:42;;6688:51;;;;;;6757:6;;:43;;;;;;6774:10;6757:43;;;;6794:4;6757:43;;;;;;6804:15;;-1:-1:-1;;;;;6757:6:4;;:16;;:43;;;;;;;;;;;;;;:6;;:43;;;5:2:-1;;;;30:1;27;20:12;5:2;6757:43:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6757:43:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6757:43:4;:62;;6749:71;;;;;;6853:32;6869:15;6853;:32::i;:::-;6831:54;-1:-1:-1;6921:1:4;6904:18;;6896:27;;;;;;-1:-1:-1;;;;;6962:13:4;;;;;;:6;:13;;;;;:25;:59;;7005:15;6962:59;:42;:59;:::i;:::-;-1:-1:-1;;;;;6934:13:4;;;;;;:6;:13;;;;;:87;;;7160:13;;7122:26;;;;;7059:116;;7102:72;;7154:2;:19;;;;;7102:47;;:15;;:47;:19;:47;:::i;:72::-;-1:-1:-1;;;;;7059:13:4;;;;;;:6;:13;;;;;:25;;;;:116;:42;:116;:::i;:::-;-1:-1:-1;;;;;7031:13:4;;;;;;:6;:13;;;;;:25;;:144;7250:13;;:33;;7268:14;7250:33;:17;:33;:::i;:::-;7234:13;:49;7302:6;;7329:4;;;7302:49;;;;;;-1:-1:-1;;;;;7302:49:4;;;;;;;;;;7329:4;;;7302:49;;;;;;;;;;;:6;;;;;:19;;:49;;;;;;;;;;;;;;:6;;:49;;;5:2:-1;;;;30:1;27;20:12;5:2;7302:49:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7302:49:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7302:49:4;7294:58;;;;;;;;7362:30;;-1:-1:-1;;;;;7362:14:4;;;:30;;;;;7377:14;;7362:30;;;;7377:14;7362;:30;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;7408:53:4;;;;;;;;;;;;;;-1:-1:-1;;;;;7408:53:4;;;;;;;;;;;-1:-1:-1;;487:1:28;1227:14;:38;-1:-1:-1;6446:1022:4:o;640:25::-;;;;:::o;7474:439::-;7563:9;;:36;;;;;;;;7520:4;;;;;;;;;;-1:-1:-1;;;;;7563:9:4;;:34;;:36;;;;;;;;;;;7520:4;7563:9;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;7563:36:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7563:36:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7563:36:4;;;;;;;;;-1:-1:-1;7563:36:4;-1:-1:-1;7738:10:4;;7735:22;;;7750:7;;7735:22;7819:9;;:29;;;-1:-1:-1;;;;;7819:29:4;;;;;;;;;;-1:-1:-1;;;;;7819:9:4;;;;:22;;:29;;;;;:9;;:29;;;;;;;;:9;;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;7819:29:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7819:29:4;;;;;;39:16:-1;36:1;17:17;2:54;101:4;7819:29:4;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;7819:29:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;7819:29:4;;;;;;;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;;7819:29:4;;;;;;7767:81;;;;;;;;7877:3;7866:7;:14;;;;:40;;;;;7890:16;7884:22;;:3;:22;7866:40;7859:47;;7474:439;;;;;;:::o;1541:234::-;719:5:31;;-1:-1:-1;;;;;719:5:31;705:10;:19;697:28;;;;;;-1:-1:-1;;;;;1626:24:4;;;;1618:33;;;;;;1662:9;:22;;-1:-1:-1;;1662:22:4;-1:-1:-1;;;;;1662:22:4;;;;;;;;1703;;;;;;;;:20;;:22;;;;;;;;;;;;;;;-1:-1:-1;1662:22:4;1703;;;5:2:-1;;;;30:1;27;20:12;5:2;1703:22:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1703:22:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1703:22:4;1694:6;:31;;-1:-1:-1;;1694:31:4;-1:-1:-1;;;;;1694:31:4;;;;;;;;1751:17;;;;;;;;:6;;;;;:15;;:17;;;;;1703:22;;1751:17;;;;;;;-1:-1:-1;1751:6:4;:17;;;5:2:-1;;;;30:1;27;20:12;5:2;1751:17:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1751:17:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1751:17:4;1735:33;;:13;:33;-1:-1:-1;1541:234:4:o;53:19:26:-;;;;:::o;580:28:4:-;;;-1:-1:-1;;;;;580:28:4;;:::o;5703:737::-;719:5:31;;5808:18:4;;;;;;;;-1:-1:-1;;;;;719:5:31;705:10;:19;697:28;;;;;;1128:14:28;;487:1;1128:39;1120:48;;;;;;584:1;1174:40;;5772:24:4;:22;:24::i;:::-;5764:33;;;;;;;;5829:18;:16;:18::i;:::-;5808:39;;5903:22;:20;:22::i;:::-;5857:68;;;;;5960:1;5944:13;:17;5936:26;;;;;;;;5973:33;;;;:17;:33;;;;;:40;;-1:-1:-1;;5973:40:4;6009:4;5973:40;;;6047:17;;:21;6043:150;;;6112:17;;6090:40;;:13;;:40;:21;:40;:::i;:::-;6084:46;-1:-1:-1;6160:22:4;:13;6084:46;6160:22;:17;:22;:::i;:::-;6144:38;;6043:150;6233:27;;:47;;6265:14;6233:47;:31;:47;:::i;:::-;6203:27;:77;6301:1;6295:7;;6291:40;;;6304:13;;:27;;-1:-1:-1;;;;;6304:13:4;;;;:27;;;;;6327:3;;6304:13;:27;:13;:27;6327:3;6304:13;:27;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6304:27:4;6291:40;6341:34;;:10;;:34;;;;;6361:13;;6341:34;;;;6361:13;6341:10;:34;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;6391:42:4;;;;;;;;6407:10;;6391:42;;;;;;;;;;-1:-1:-1;;487:1:28;1227:14;:38;-1:-1:-1;;5703:737:4:o;1001:111:31:-;719:5;;-1:-1:-1;;;;;719:5:31;705:10;:19;697:28;;;;;;1077:5;;1058:25;;-1:-1:-1;;;;;1077:5:31;;;;1058:25;;1077:5;;1058:25;1089:5;:18;;-1:-1:-1;;1089:18:31;;;1001:111::o;640:84:7:-;697:11;:20;640:84::o;555:19:4:-;;;-1:-1:-1;;;;;555:19:4;;:::o;4027:554::-;4076:11;4100:19;4121:30;4330:16;4389:21;4157:22;:20;:22::i;:::-;4099:80;;;;;4207:14;4225:1;4207:19;:53;;;;-1:-1:-1;4230:30:4;;4207:53;:95;;;-1:-1:-1;4284:4:4;4276:21;:26;4207:95;4190:130;;;4313:7;;4190:130;4365:13;;4349:11;;:30;;;:15;:30;:::i;:::-;4489:27;;4330:49;;-1:-1:-1;4413:104:4;;:58;:14;4445:25;4413:58;:31;:58;:::i;:::-;:75;:104;:75;:104;:::i;:::-;4389:128;-1:-1:-1;4537:37:4;:11;4389:128;4537:37;:19;:37;:::i;238:20:31:-;;;-1:-1:-1;;;;;238:20:31;;:::o;2076:559:4:-;2159:9;;-1:-1:-1;;;;;2159:9:4;;2188:15;;2180:24;;;;;;2234:1;2222:9;:13;2214:22;;;;;;-1:-1:-1;;;;;2275:13:4;;;;;;:6;:13;;;;;:25;:42;;2305:11;2275:42;:29;:42;:::i;:::-;-1:-1:-1;;;;;2247:13:4;;;;;;:6;:13;;;;;:70;;;2355:25;;;:40;;2385:9;2355:40;:29;:40;:::i;:::-;-1:-1:-1;;;;;2327:13:4;;;;;;:6;:13;;;;;:25;;;:68;;;2491:25;2471:13;;2434:83;;2435:50;;2465:2;:19;2435:50;:29;:50;:::i;2434:83::-;-1:-1:-1;;;;;2405:13:4;;;;;;:6;:13;;;;;:26;;:112;2542:11;;:26;;2558:9;2542:26;:15;:26;:::i;:::-;2528:11;:40;2584:44;;;2605:9;2584:44;;;;;;;;;;-1:-1:-1;;;;;2584:44:4;;;;;;;;;;;2076:559;;;:::o;694:47::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;519:30::-;;;-1:-1:-1;;;;;519:30:4;;:::o;7919:484::-;7974:4;7991:10;8003;8064:14;8193;8266:27;8017:9;;;;;;;;;-1:-1:-1;;;;;8017:9:4;-1:-1:-1;;;;;8017:34:4;;:36;;;;;-1:-1:-1;;;8017:36:4;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8017:36:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8017:36:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8017:36:4;;;;;;;8084:9;;8017:36;8084:33;;;;;;;8017:36;;-1:-1:-1;8017:36:4;;-1:-1:-1;;;;;;8084:9:4;;;;:31;;:33;;;;;8017:36;8084:33;;;;;;:9;;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;8084:33:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8084:33:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8084:33:4;;-1:-1:-1;8131:6:4;;8128:18;;;8139:7;;8128:18;8158:10;;8155:26;;;8177:4;8170:11;;;;8155:26;8221:9;;:29;;;-1:-1:-1;;;;;8221:29:4;;;;;;;;;;-1:-1:-1;;;;;8221:9:4;;;;:22;;:29;;;;;:9;;:29;;;;;;;;:9;;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;8221:29:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8221:29:4;;;;;;39:16:-1;36:1;17:17;2:54;101:4;8221:29:4;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;8221:29:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;8221:29:4;;;;;;;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;;8301:9:4;;:33;;;-1:-1:-1;;;;;8301:33:4;;;;;;;;;;8192:58;;-1:-1:-1;;;;;;8301:9:4;;;;:22;;-1:-1:-1;8301:33:4;;;;;-1:-1:-1;8301:9:4;;-1:-1:-1;8301:33:4;;-1:-1:-1;8301:33:4;;;;;;-1:-1:-1;8301:33:4;;-1:-1:-1;8301:9:4;;-1:-1:-1;8301:9:4;;-1:-1:-1;8301:33:4;;;5:2:-1;;;;30:1;27;20:12;5:2;8301:33:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8301:33:4;;;;;;39:16:-1;36:1;17:17;2:54;101:4;8301:33:4;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;8301:33:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;8301:33:4;;;;;;;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;;8301:33:4;;;;;;8260:74;;;;;;;8362:3;8352:7;:13;;;:44;;;;8393:3;8369:20;:27;;;;8352:44;8345:51;;7919:484;;;;;;;:::o;928:29::-;;;;:::o;730:88:7:-;789:13;:22;730:88::o;4587:1110:4:-;4640:4;4646:30;4678:4;4695:10;4707;4768:14;4836:27;5098:19;5121:23;5192:14;5276:11;5365:20;4721:9;;;;;;;;;-1:-1:-1;;;;;4721:9:4;-1:-1:-1;;;;;4721:34:4;;:36;;;;;-1:-1:-1;;;4721:36:4;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4721:36:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4721:36:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4721:36:4;;;;;;;4788:9;;4721:36;4788:33;;;;;;;4721:36;;-1:-1:-1;4721:36:4;;-1:-1:-1;;;;;;4788:9:4;;;;:31;;:33;;;;;4721:36;4788:33;;;;;;:9;;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;4788:33:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4788:33:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4788:33:4;4869:9;;4788:33;4869;;-1:-1:-1;;;;;4869:33:4;;;;;;;;;;4788;;-1:-1:-1;;;;;;4869:9:4;;;;:22;;:33;;;;;:9;;:33;;;;;;;;:9;;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;4869:33:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4869:33:4;;;;;;39:16:-1;36:1;17:17;2:54;101:4;4869:33:4;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;4869:33:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;4869:33:4;;;;;;;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;;4869:33:4;;;;;;4831:71;;;;;;;4918:5;4917:6;:35;;;;4928:24;:22;:24::i;:::-;4927:25;4917:35;4913:48;;;4954:7;;4913:48;5022:10;;;:41;;;5043:20;5036:27;;:3;:27;;5022:41;:61;;5082:1;5074:5;:9;5022:61;;;5066:5;5022:61;5152:9;;:29;;;-1:-1:-1;;;;;5152:29:4;;;;;;;;;;5014:69;;-1:-1:-1;;;;;;5152:9:4;;;;:22;;:29;;;;;:9;;:29;;;;;;;;:9;;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;5152:29:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5152:29:4;;;;;;39:16:-1;36:1;17:17;2:54;101:4;5152:29:4;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;5152:29:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;5152:29:4;;;;;;;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;;5152:29:4;;;;;;5094:87;;;;;;;;5209:17;:24;5227:5;5209:24;;;;;;;;;;;;;;;;;;;;;5192:41;;5248:9;5244:22;;;5259:7;;5244:22;5290:5;5276:19;;5306:221;5322:1;5313:6;:10;5306:221;;;5397:9;;:30;;;-1:-1:-1;;;;;5397:30:4;;-1:-1:-1;;5339:8:4;;;5397:30;;;;;;;;5339:8;;-1:-1:-1;;;;;5397:9:4;;;;:22;;:30;;;;;:9;;:30;;;;;;;:9;;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;5397:30:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5397:30:4;;;;;;39:16:-1;36:1;17:17;2:54;101:4;5397:30:4;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;5397:30:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;5397:30:4;;;;;;;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;;5397:30:4;;;;;;5362:65;;;;;;;5470:46;5500:15;5470:25;:29;;:46;;;;:::i;:::-;5442:74;;5306:221;;;5558:14;5636:25;5675:5;5537:153;;;;;;4587:1110;;;;;;;;;;;;;:::o;1781:119::-;719:5:31;;-1:-1:-1;;;;;719:5:31;705:10;:19;697:28;;;;;;-1:-1:-1;;;;;1850:19:4;;;;1842:28;;;;;;1881:4;:12;;-1:-1:-1;;1881:12:4;-1:-1:-1;;;;;1881:12:4;;;;;;;;;;1781:119::o;823:23::-;;;;:::o;852:25::-;;;;:::o;1274:103:31:-;719:5;;-1:-1:-1;;;;;719:5:31;705:10;:19;697:28;;;;;;1343:29;1362:9;1343:18;:29::i;:::-;1274:103;:::o;1238:128:30:-;1319:7;;;1339;;;;1332:15;;;;1238:128;;;;:::o;203:380::-;263:9;489:7;;485:36;;;-1:-1:-1;513:1:30;506:8;;485:36;-1:-1:-1;531:7:30;;;536:2;531;:7;551:6;;;;;;;;:12;544:20;;;665:283;725:7;941:2;936;:7;;;;;;;;;665:283;-1:-1:-1;;;665:283:30:o;1060:116::-;1120:7;1142:8;;;;1135:16;;;;-1:-1:-1;1164:7:30;;;1060:116::o;406:142:14:-;464:4;488:13;498:2;488:9;:13::i;:::-;480:22;;;;;;;;520:21;535:5;:3;:5::i;:::-;520:10;:2;527;520:10;:6;:10;:::i;:21::-;513:28;406:142;-1:-1:-1;;;406:142:14:o;1512:171:31:-;-1:-1:-1;;;;;1582:23:31;;;;1574:32;;;;;;1638:5;;1617:38;;-1:-1:-1;;;;;1617:38:31;;;;1638:5;;1617:38;;1638:5;;1617:38;1661:5;:17;;-1:-1:-1;;1661:17:31;-1:-1:-1;;;;;1661:17:31;;;;;;;;;;1512:171::o;554:107:14:-;605:4;634:5;:3;:5::i;:::-;628:2;:11;;:26;;;;;649:5;:3;:5::i;:::-;643:2;:11;;621:33;554:107;-1:-1:-1;;554:107:14:o;335:65::-;371:4;392:5;:3;:5::i;:::-;386:2;:11;379:18;;335:65;:::o;275:55::-;311:4;275:55;:::o;203:67::-;239:4;258:9;:7;:9::i;:::-;254:1;:13;247:20;;203:67;:::o;139:59::-;194:1;139:59;:::o;806:139::-;859:4;883:13;893:2;883:9;:13::i;:::-;875:22;;;;;;;;915:23;928:9;:7;:9::i;:::-;915:2;;922;:15;915:23;:6;:23;:::i", - "source": "pragma solidity ^0.4.24;\n\nimport \"./W12Fund.sol\";\nimport \"./token/WToken.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 )\n W12Fund(version, _trancheFeePercent) public\n {\n crowdsale = IW12Crowdsale(crowdsaleAddress);\n swap = swapAddress;\n wToken = WToken(wTokenAddress);\n tokenDecimals = wToken.decimals();\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 // allow any sender\n modifier onlyFrom(address sender) {\n _;\n }\n}\n", - "sourcePath": "/home/circleci/code/contracts/W12FundStub.sol", + "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", + "sourcePath": "/home/circleci/code/contracts/mocks/crowdsale/W12FundStub.sol", "ast": { - "absolutePath": "/home/circleci/code/contracts/W12FundStub.sol", + "absolutePath": "/home/circleci/code/contracts/mocks/crowdsale/W12FundStub.sol", "exportedSymbols": { "W12FundStub": [ - 3347 + 6702 ] }, - "id": 3348, + "id": 6703, "nodeType": "SourceUnit", "nodes": [ { - "id": 3262, + "id": 6566, "literals": [ "solidity", "^", @@ -593,27 +679,49 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:7" + "src": "0:24:20" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", + "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", + "id": 6567, + "nodeType": "ImportDirective", + "scope": 6703, + "sourceUnit": 9766, + "src": "26:63:20", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/rates/IRates.sol", + "file": "../../rates/IRates.sol", + "id": 6568, + "nodeType": "ImportDirective", + "scope": 6703, + "sourceUnit": 7016, + "src": "90:32:20", + "symbolAliases": [], + "unitAlias": "" }, { - "absolutePath": "/home/circleci/code/contracts/W12Fund.sol", - "file": "./W12Fund.sol", - "id": 3263, + "absolutePath": "/home/circleci/code/contracts/crowdsale/W12Fund.sol", + "file": "../../crowdsale/W12Fund.sol", + "id": 6569, "nodeType": "ImportDirective", - "scope": 3348, - "sourceUnit": 2900, - "src": "26:23:7", + "scope": 6703, + "sourceUnit": 4425, + "src": "123:37:20", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/home/circleci/code/contracts/token/WToken.sol", - "file": "./token/WToken.sol", - "id": 3264, + "absolutePath": "/home/circleci/code/contracts/token/IWToken.sol", + "file": "../../token/IWToken.sol", + "id": 6570, "nodeType": "ImportDirective", - "scope": 3348, - "sourceUnit": 5926, - "src": "50:28:7", + "scope": 6703, + "sourceUnit": 7631, + "src": "161:33:20", "symbolAliases": [], "unitAlias": "" }, @@ -623,67 +731,67 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 3265, + "id": 6571, "name": "W12Fund", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2899, - "src": "105:7:7", + "referencedDeclaration": 4424, + "src": "221:7:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_W12Fund_$2899", + "typeIdentifier": "t_contract$_W12Fund_$4424", "typeString": "contract W12Fund" } }, - "id": 3266, + "id": 6572, "nodeType": "InheritanceSpecifier", - "src": "105:7:7" + "src": "221:7:20" } ], "contractDependencies": [ - 2899, - 4484, - 6509, - 6690, - 6940 + 1241, + 4424, + 9070, + 9331, + 9688 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 3347, + "id": 6702, "linearizedBaseContracts": [ - 3347, - 2899, - 6690, - 6940, - 4484, - 6509 + 6702, + 4424, + 9331, + 9688, + 1241, + 9070 ], "name": "W12FundStub", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 3315, + "id": 6618, "nodeType": "Block", - "src": "375:259:7", + "src": "522:217:20", "statements": [ { "expression": { "argumentTypes": null, - "id": 3289, + "id": 6598, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3285, + "id": 6594, "name": "crowdsale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2022, - "src": "385:9:7", + "referencedDeclaration": 3210, + "src": "532:9:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } }, @@ -694,12 +802,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3287, + "id": 6596, "name": "crowdsaleAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3270, - "src": "411:16:7", + "referencedDeclaration": 6576, + "src": "558:16:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -713,18 +821,18 @@ "typeString": "address" } ], - "id": 3286, + "id": 6595, "name": "IW12Crowdsale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4426, - "src": "397:13:7", + "referencedDeclaration": 1204, + "src": "544:13:20", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IW12Crowdsale_$4426_$", + "typeIdentifier": "t_type$_t_contract$_IW12Crowdsale_$1204_$", "typeString": "type(contract IW12Crowdsale)" } }, - "id": 3288, + "id": 6597, "isConstant": false, "isLValue": false, "isPure": false, @@ -732,38 +840,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "397:31:7", + "src": "544:31:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } }, - "src": "385:43:7", + "src": "532:43:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } }, - "id": 3290, + "id": 6599, "nodeType": "ExpressionStatement", - "src": "385:43:7" + "src": "532:43:20" }, { "expression": { "argumentTypes": null, - "id": 3293, + "id": 6602, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3291, + "id": 6600, "name": "swap", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2024, - "src": "438:4:7", + "referencedDeclaration": 3216, + "src": "585:4:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -773,46 +881,46 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3292, + "id": 6601, "name": "swapAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3272, - "src": "445:11:7", + "referencedDeclaration": 6578, + "src": "592:11:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "438:18:7", + "src": "585:18:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 3294, + "id": 6603, "nodeType": "ExpressionStatement", - "src": "438:18:7" + "src": "585:18:20" }, { "expression": { "argumentTypes": null, - "id": 3299, + "id": 6608, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3295, + "id": 6604, "name": "wToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2028, - "src": "466:6:7", + "referencedDeclaration": 3212, + "src": "613:6:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" } }, "nodeType": "Assignment", @@ -822,12 +930,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3297, + "id": 6606, "name": "wTokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3274, - "src": "482:13:7", + "referencedDeclaration": 6580, + "src": "630:13:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -841,18 +949,18 @@ "typeString": "address" } ], - "id": 3296, - "name": "WToken", + "id": 6605, + "name": "IWToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5925, - "src": "475:6:7", + "referencedDeclaration": 7630, + "src": "622:7:20", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_WToken_$5925_$", - "typeString": "type(contract WToken)" + "typeIdentifier": "t_type$_t_contract$_IWToken_$7630_$", + "typeString": "type(contract IWToken)" } }, - "id": 3298, + "id": 6607, "isConstant": false, "isLValue": false, "isPure": false, @@ -860,38 +968,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "475:21:7", + "src": "622:22:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" } }, - "src": "466:30:7", + "src": "613:31:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" } }, - "id": 3300, + "id": 6609, "nodeType": "ExpressionStatement", - "src": "466:30:7" + "src": "613:31:20" }, { "expression": { "argumentTypes": null, - "id": 3305, + "id": 6612, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3301, - "name": "tokenDecimals", + "id": 6610, + "name": "trancheFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2030, - "src": "506:13:7", + "referencedDeclaration": 3220, + "src": "654:17:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -901,122 +1009,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 3302, - "name": "wToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2028, - "src": "522:6:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" - } - }, - "id": 3303, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "decimals", - "nodeType": "MemberAccess", - "referencedDeclaration": 6951, - "src": "522:15:7", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", - "typeString": "function () view external returns (uint8)" - } - }, - "id": 3304, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "522:17:7", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "506:33:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3306, - "nodeType": "ExpressionStatement", - "src": "506:33:7" - }, - { - "expression": { - "argumentTypes": null, - "id": 3309, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3307, - "name": "trancheFeePercent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2046, - "src": "549:17:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3308, + "id": 6611, "name": "_trancheFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3278, - "src": "569:18:7", + "referencedDeclaration": 6584, + "src": "674:18:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "549:38:7", + "src": "654:38:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3310, + "id": 6613, "nodeType": "ExpressionStatement", - "src": "549:38:7" + "src": "654:38:20" }, { "expression": { "argumentTypes": null, - "id": 3313, + "id": 6616, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3311, + "id": 6614, "name": "serviceWallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2026, - "src": "597:13:7", + "referencedDeclaration": 3218, + "src": "702:13:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1026,31 +1055,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3312, + "id": 6615, "name": "_serviceWallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3276, - "src": "613:14:7", + "referencedDeclaration": 6582, + "src": "718:14:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "597:30:7", + "src": "702:30:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 3314, + "id": 6617, "nodeType": "ExpressionStatement", - "src": "597:30:7" + "src": "702:30:20" } ] }, "documentation": null, - "id": 3316, + "id": 6619, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -1059,12 +1088,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3281, + "id": 6589, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3268, - "src": "335:7:7", + "referencedDeclaration": 6574, + "src": "474:7:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1072,49 +1101,62 @@ }, { "argumentTypes": null, - "id": 3282, + "id": 6590, "name": "_trancheFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3278, - "src": "344:18:7", + "referencedDeclaration": 6584, + "src": "483:18:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } + }, + { + "argumentTypes": null, + "id": 6591, + "name": "_rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6586, + "src": "503:6:20", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } } ], - "id": 3283, + "id": 6592, "modifierName": { "argumentTypes": null, - "id": 3280, + "id": 6588, "name": "W12Fund", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2899, - "src": "327:7:7", + "referencedDeclaration": 4424, + "src": "466:7:20", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_W12Fund_$2899_$", + "typeIdentifier": "t_type$_t_contract$_W12Fund_$4424_$", "typeString": "type(contract W12Fund)" } }, "nodeType": "ModifierInvocation", - "src": "327:36:7" + "src": "466:44:20" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 3279, + "id": 6587, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3268, + "id": 6574, "name": "version", "nodeType": "VariableDeclaration", - "scope": 3316, - "src": "141:12:7", + "scope": 6619, + "src": "257:12:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1122,10 +1164,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3267, + "id": 6573, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "141:4:7", + "src": "257:4:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1136,11 +1178,11 @@ }, { "constant": false, - "id": 3270, + "id": 6576, "name": "crowdsaleAddress", "nodeType": "VariableDeclaration", - "scope": 3316, - "src": "163:24:7", + "scope": 6619, + "src": "279:24:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1148,10 +1190,10 @@ "typeString": "address" }, "typeName": { - "id": 3269, + "id": 6575, "name": "address", "nodeType": "ElementaryTypeName", - "src": "163:7:7", + "src": "279:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1162,11 +1204,11 @@ }, { "constant": false, - "id": 3272, + "id": 6578, "name": "swapAddress", "nodeType": "VariableDeclaration", - "scope": 3316, - "src": "197:19:7", + "scope": 6619, + "src": "313:19:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1174,10 +1216,10 @@ "typeString": "address" }, "typeName": { - "id": 3271, + "id": 6577, "name": "address", "nodeType": "ElementaryTypeName", - "src": "197:7:7", + "src": "313:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1188,11 +1230,11 @@ }, { "constant": false, - "id": 3274, + "id": 6580, "name": "wTokenAddress", "nodeType": "VariableDeclaration", - "scope": 3316, - "src": "226:21:7", + "scope": 6619, + "src": "342:21:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1200,10 +1242,10 @@ "typeString": "address" }, "typeName": { - "id": 3273, + "id": 6579, "name": "address", "nodeType": "ElementaryTypeName", - "src": "226:7:7", + "src": "342:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1214,11 +1256,11 @@ }, { "constant": false, - "id": 3276, + "id": 6582, "name": "_serviceWallet", "nodeType": "VariableDeclaration", - "scope": 3316, - "src": "257:22:7", + "scope": 6619, + "src": "373:22:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1226,10 +1268,10 @@ "typeString": "address" }, "typeName": { - "id": 3275, + "id": 6581, "name": "address", "nodeType": "ElementaryTypeName", - "src": "257:7:7", + "src": "373:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1240,11 +1282,11 @@ }, { "constant": false, - "id": 3278, + "id": 6584, "name": "_trancheFeePercent", "nodeType": "VariableDeclaration", - "scope": 3316, - "src": "289:23:7", + "scope": 6619, + "src": "405:23:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1252,10 +1294,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3277, + "id": 6583, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "289:4:7", + "src": "405:4:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1263,204 +1305,1088 @@ }, "value": null, "visibility": "internal" + }, + { + "constant": false, + "id": 6586, + "name": "_rates", + "nodeType": "VariableDeclaration", + "scope": 6619, + "src": "438:13:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + }, + "typeName": { + "contractScope": null, + "id": 6585, + "name": "IRates", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7015, + "src": "438:6:20", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "value": null, + "visibility": "internal" } ], - "src": "131:187:7" + "src": "247:210:20" }, "payable": false, "returnParameters": { - "id": 3284, + "id": 6593, "nodeType": "ParameterList", "parameters": [], - "src": "375:0:7" + "src": "522:0:20" }, - "scope": 3347, - "src": "119:515:7", + "scope": 6702, + "src": "235:504:20", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3325, + "id": 6622, "nodeType": "Block", - "src": "687:37:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3323, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3321, - "name": "totalFunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2040, - "src": "697:11:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3322, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3318, - "src": "711:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "697:20:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3324, - "nodeType": "ExpressionStatement", - "src": "697:20:7" - } - ] + "src": "971:2:20", + "statements": [] }, "documentation": null, - "id": 3326, + "id": 6623, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "_setTotalFunded", + "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 3319, + "id": 6620, "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3318, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 3326, - "src": "665:11:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3317, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "665:4:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "664:13:7" + "parameters": [], + "src": "951:2:20" }, - "payable": false, + "payable": true, "returnParameters": { - "id": 3320, + "id": 6621, "nodeType": "ParameterList", "parameters": [], - "src": "687:0:7" + "src": "971:0:20" }, - "scope": 3347, - "src": "640:84:7", - "stateMutability": "nonpayable", + "scope": 6702, + "src": "943:30:20", + "stateMutability": "payable", "superFunction": null, "visibility": "external" }, { "body": { - "id": 3335, + "id": 6694, "nodeType": "Block", - "src": "779:39:7", + "src": "1038:425:20", "statements": [ { - "expression": { + "condition": { "argumentTypes": null, - "id": 3333, + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 6632, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftHandSide": { + "leftExpression": { "argumentTypes": null, - "id": 3331, - "name": "totalRefunded", + "id": 6630, + "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2042, - "src": "789:13:7", + "referencedDeclaration": 6625, + "src": "1052:7:20", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { "argumentTypes": null, - "id": 3332, - "name": "amount", + "id": 6631, + "name": "METHOD_ETH", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3328, - "src": "805:6:7", + "referencedDeclaration": 3203, + "src": "1063:10:20", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, - "src": "789:22:7", + "src": "1052:21:20", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 3334, - "nodeType": "ExpressionStatement", - "src": "789:22:7" + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 6653, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6651, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6625, + "src": "1192:7:20", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 6652, + "name": "METHOD_USD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3208, + "src": "1203:10:20", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "1192:21:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6692, + "nodeType": "IfStatement", + "src": "1189:268:20", + "trueBody": { + "id": 6691, + "nodeType": "Block", + "src": "1215:242:20", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6657, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6625, + "src": "1251:7:20", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 6655, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3214, + "src": "1237:5:20", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "id": 6656, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 6992, + "src": "1237:13:20", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (bytes32) view external returns (bool)" + } + }, + "id": 6658, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1237:22:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 6654, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "1229:7:20", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 6659, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1229:31:20", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6660, + "nodeType": "ExpressionStatement", + "src": "1229:31:20" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6674, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6670, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10133, + "src": "1338:4:20", + "typeDescriptions": { + "typeIdentifier": "t_contract$_W12FundStub_$6702", + "typeString": "contract W12FundStub" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_W12FundStub_$6702", + "typeString": "contract W12FundStub" + } + ], + "id": 6669, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1330:7:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 6671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1330:13:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6665, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6625, + "src": "1310:7:20", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 6663, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3214, + "src": "1288:5:20", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "id": 6664, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getTokenAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 6985, + "src": "1288:21:20", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view external returns (address)" + } + }, + "id": 6666, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1288:30:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6662, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9765, + "src": "1282:5:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$9765_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 6667, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1282:37:20", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$9765", + "typeString": "contract ERC20" + } + }, + "id": 6668, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 9779, + "src": "1282:47:20", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6672, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1282:62:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 6673, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6627, + "src": "1348:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1282:73:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 6661, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "1274:7:20", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 6675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1274:82:20", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6676, + "nodeType": "ExpressionStatement", + "src": "1274:82:20" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6685, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10042, + "src": "1425:3:20", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1425:10:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6687, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6627, + "src": "1437:7:20", + "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": 6681, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6625, + "src": "1406:7:20", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 6679, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3214, + "src": "1384:5:20", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "id": 6680, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getTokenAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 6985, + "src": "1384:21:20", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view external returns (address)" + } + }, + "id": 6682, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1384:30:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6678, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9765, + "src": "1378:5:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$9765_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 6683, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1378:37:20", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$9765", + "typeString": "contract ERC20" + } + }, + "id": 6684, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 9788, + "src": "1378:46:20", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 6688, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1378:67:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 6677, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "1370:7:20", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 6689, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1370:76:20", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6690, + "nodeType": "ExpressionStatement", + "src": "1370:76:20" + } + ] + } + }, + "id": 6693, + "nodeType": "IfStatement", + "src": "1048:409:20", + "trueBody": { + "id": 6650, + "nodeType": "Block", + "src": "1075:108:20", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6639, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6635, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10133, + "src": "1105:4:20", + "typeDescriptions": { + "typeIdentifier": "t_contract$_W12FundStub_$6702", + "typeString": "contract W12FundStub" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_W12FundStub_$6702", + "typeString": "contract W12FundStub" + } + ], + "id": 6634, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1097:7:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 6636, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1097:13:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 6637, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1097:21:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 6638, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6627, + "src": "1122:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1097:32:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 6633, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "1089:7:20", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 6640, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1089:41:20", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6641, + "nodeType": "ExpressionStatement", + "src": "1089:41:20" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6647, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6627, + "src": "1164:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6642, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10042, + "src": "1144:3:20", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1144:10:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 6646, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1144:19:20", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 6648, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1144:28:20", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6649, + "nodeType": "ExpressionStatement", + "src": "1144:28:20" + } + ] + } } ] }, "documentation": null, - "id": 3336, + "id": 6695, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "_setTotalRefunded", + "name": "_outFunds", "nodeType": "FunctionDefinition", "parameters": { - "id": 3329, + "id": 6628, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3328, - "name": "amount", + "id": 6625, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 6695, + "src": "998:15:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6624, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "998:7:20", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6627, + "name": "_amount", "nodeType": "VariableDeclaration", - "scope": 3336, - "src": "757:11:7", + "scope": 6695, + "src": "1015:12:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1468,10 +2394,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3327, + "id": 6626, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "757:4:7", + "src": "1015:4:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1481,83 +2407,49 @@ "visibility": "internal" } ], - "src": "756:13:7" + "src": "997:31:20" }, "payable": false, "returnParameters": { - "id": 3330, + "id": 6629, "nodeType": "ParameterList", "parameters": [], - "src": "779:0:7" + "src": "1038:0:20" }, - "scope": 3347, - "src": "730:88:7", + "scope": 6702, + "src": "979:484:20", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" }, { "body": { - "id": 3339, + "id": 6700, "nodeType": "Block", - "src": "852:2:7", - "statements": [] - }, - "documentation": null, - "id": 3340, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3337, - "nodeType": "ParameterList", - "parameters": [], - "src": "832:2:7" - }, - "payable": true, - "returnParameters": { - "id": 3338, - "nodeType": "ParameterList", - "parameters": [], - "src": "852:0:7" - }, - "scope": 3347, - "src": "824:30:7", - "stateMutability": "payable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 3345, - "nodeType": "Block", - "src": "918:18:7", + "src": "1527:18:20", "statements": [ { - "id": 3344, + "id": 6699, "nodeType": "PlaceholderStatement", - "src": "928:1:7" + "src": "1537:1:20" } ] }, "documentation": null, - "id": 3346, + "id": 6701, "name": "onlyFrom", "nodeType": "ModifierDefinition", "parameters": { - "id": 3343, + "id": 6698, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3342, + "id": 6697, "name": "sender", "nodeType": "VariableDeclaration", - "scope": 3346, - "src": "902:14:7", + "scope": 6701, + "src": "1511:14:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1565,10 +2457,10 @@ "typeString": "address" }, "typeName": { - "id": 3341, + "id": 6696, "name": "address", "nodeType": "ElementaryTypeName", - "src": "902:7:7", + "src": "1511:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1578,30 +2470,30 @@ "visibility": "internal" } ], - "src": "901:16:7" + "src": "1510:16:20" }, - "src": "884:52:7", + "src": "1493:52:20", "visibility": "internal" } ], - "scope": 3348, - "src": "81:857:7" + "scope": 6703, + "src": "197:1350:20" } ], - "src": "0:939:7" + "src": "0:1548:20" }, "legacyAST": { - "absolutePath": "/home/circleci/code/contracts/W12FundStub.sol", + "absolutePath": "/home/circleci/code/contracts/mocks/crowdsale/W12FundStub.sol", "exportedSymbols": { "W12FundStub": [ - 3347 + 6702 ] }, - "id": 3348, + "id": 6703, "nodeType": "SourceUnit", "nodes": [ { - "id": 3262, + "id": 6566, "literals": [ "solidity", "^", @@ -1609,27 +2501,49 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:7" + "src": "0:24:20" }, { - "absolutePath": "/home/circleci/code/contracts/W12Fund.sol", - "file": "./W12Fund.sol", - "id": 3263, + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", + "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", + "id": 6567, "nodeType": "ImportDirective", - "scope": 3348, - "sourceUnit": 2900, - "src": "26:23:7", + "scope": 6703, + "sourceUnit": 9766, + "src": "26:63:20", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/home/circleci/code/contracts/token/WToken.sol", - "file": "./token/WToken.sol", - "id": 3264, + "absolutePath": "/home/circleci/code/contracts/rates/IRates.sol", + "file": "../../rates/IRates.sol", + "id": 6568, "nodeType": "ImportDirective", - "scope": 3348, - "sourceUnit": 5926, - "src": "50:28:7", + "scope": 6703, + "sourceUnit": 7016, + "src": "90:32:20", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/crowdsale/W12Fund.sol", + "file": "../../crowdsale/W12Fund.sol", + "id": 6569, + "nodeType": "ImportDirective", + "scope": 6703, + "sourceUnit": 4425, + "src": "123:37:20", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/token/IWToken.sol", + "file": "../../token/IWToken.sol", + "id": 6570, + "nodeType": "ImportDirective", + "scope": 6703, + "sourceUnit": 7631, + "src": "161:33:20", "symbolAliases": [], "unitAlias": "" }, @@ -1639,67 +2553,67 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 3265, + "id": 6571, "name": "W12Fund", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2899, - "src": "105:7:7", + "referencedDeclaration": 4424, + "src": "221:7:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_W12Fund_$2899", + "typeIdentifier": "t_contract$_W12Fund_$4424", "typeString": "contract W12Fund" } }, - "id": 3266, + "id": 6572, "nodeType": "InheritanceSpecifier", - "src": "105:7:7" + "src": "221:7:20" } ], "contractDependencies": [ - 2899, - 4484, - 6509, - 6690, - 6940 + 1241, + 4424, + 9070, + 9331, + 9688 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 3347, + "id": 6702, "linearizedBaseContracts": [ - 3347, - 2899, - 6690, - 6940, - 4484, - 6509 + 6702, + 4424, + 9331, + 9688, + 1241, + 9070 ], "name": "W12FundStub", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 3315, + "id": 6618, "nodeType": "Block", - "src": "375:259:7", + "src": "522:217:20", "statements": [ { "expression": { "argumentTypes": null, - "id": 3289, + "id": 6598, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3285, + "id": 6594, "name": "crowdsale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2022, - "src": "385:9:7", + "referencedDeclaration": 3210, + "src": "532:9:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } }, @@ -1710,12 +2624,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3287, + "id": 6596, "name": "crowdsaleAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3270, - "src": "411:16:7", + "referencedDeclaration": 6576, + "src": "558:16:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1729,18 +2643,18 @@ "typeString": "address" } ], - "id": 3286, + "id": 6595, "name": "IW12Crowdsale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4426, - "src": "397:13:7", + "referencedDeclaration": 1204, + "src": "544:13:20", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IW12Crowdsale_$4426_$", + "typeIdentifier": "t_type$_t_contract$_IW12Crowdsale_$1204_$", "typeString": "type(contract IW12Crowdsale)" } }, - "id": 3288, + "id": 6597, "isConstant": false, "isLValue": false, "isPure": false, @@ -1748,38 +2662,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "397:31:7", + "src": "544:31:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } }, - "src": "385:43:7", + "src": "532:43:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } }, - "id": 3290, + "id": 6599, "nodeType": "ExpressionStatement", - "src": "385:43:7" + "src": "532:43:20" }, { "expression": { "argumentTypes": null, - "id": 3293, + "id": 6602, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3291, + "id": 6600, "name": "swap", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2024, - "src": "438:4:7", + "referencedDeclaration": 3216, + "src": "585:4:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1789,46 +2703,46 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3292, + "id": 6601, "name": "swapAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3272, - "src": "445:11:7", + "referencedDeclaration": 6578, + "src": "592:11:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "438:18:7", + "src": "585:18:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 3294, + "id": 6603, "nodeType": "ExpressionStatement", - "src": "438:18:7" + "src": "585:18:20" }, { "expression": { "argumentTypes": null, - "id": 3299, + "id": 6608, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3295, + "id": 6604, "name": "wToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2028, - "src": "466:6:7", + "referencedDeclaration": 3212, + "src": "613:6:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" } }, "nodeType": "Assignment", @@ -1838,12 +2752,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3297, + "id": 6606, "name": "wTokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3274, - "src": "482:13:7", + "referencedDeclaration": 6580, + "src": "630:13:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1857,18 +2771,18 @@ "typeString": "address" } ], - "id": 3296, - "name": "WToken", + "id": 6605, + "name": "IWToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5925, - "src": "475:6:7", + "referencedDeclaration": 7630, + "src": "622:7:20", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_WToken_$5925_$", - "typeString": "type(contract WToken)" + "typeIdentifier": "t_type$_t_contract$_IWToken_$7630_$", + "typeString": "type(contract IWToken)" } }, - "id": 3298, + "id": 6607, "isConstant": false, "isLValue": false, "isPure": false, @@ -1876,117 +2790,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "475:21:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" - } - }, - "src": "466:30:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" - } - }, - "id": 3300, - "nodeType": "ExpressionStatement", - "src": "466:30:7" - }, - { - "expression": { - "argumentTypes": null, - "id": 3305, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3301, - "name": "tokenDecimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2030, - "src": "506:13:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 3302, - "name": "wToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2028, - "src": "522:6:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", - "typeString": "contract WToken" - } - }, - "id": 3303, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "decimals", - "nodeType": "MemberAccess", - "referencedDeclaration": 6951, - "src": "522:15:7", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", - "typeString": "function () view external returns (uint8)" - } - }, - "id": 3304, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "522:17:7", + "src": "622:22:20", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" } }, - "src": "506:33:7", + "src": "613:31:20", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" } }, - "id": 3306, + "id": 6609, "nodeType": "ExpressionStatement", - "src": "506:33:7" + "src": "613:31:20" }, { "expression": { "argumentTypes": null, - "id": 3309, + "id": 6612, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3307, + "id": 6610, "name": "trancheFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2046, - "src": "549:17:7", + "referencedDeclaration": 3220, + "src": "654:17:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1996,43 +2831,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3308, + "id": 6611, "name": "_trancheFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3278, - "src": "569:18:7", + "referencedDeclaration": 6584, + "src": "674:18:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "549:38:7", + "src": "654:38:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3310, + "id": 6613, "nodeType": "ExpressionStatement", - "src": "549:38:7" + "src": "654:38:20" }, { "expression": { "argumentTypes": null, - "id": 3313, + "id": 6616, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3311, + "id": 6614, "name": "serviceWallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2026, - "src": "597:13:7", + "referencedDeclaration": 3218, + "src": "702:13:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2042,31 +2877,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3312, + "id": 6615, "name": "_serviceWallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3276, - "src": "613:14:7", + "referencedDeclaration": 6582, + "src": "718:14:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "597:30:7", + "src": "702:30:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 3314, + "id": 6617, "nodeType": "ExpressionStatement", - "src": "597:30:7" + "src": "702:30:20" } ] }, "documentation": null, - "id": 3316, + "id": 6619, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -2075,12 +2910,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3281, + "id": 6589, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3268, - "src": "335:7:7", + "referencedDeclaration": 6574, + "src": "474:7:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2088,49 +2923,62 @@ }, { "argumentTypes": null, - "id": 3282, + "id": 6590, "name": "_trancheFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3278, - "src": "344:18:7", + "referencedDeclaration": 6584, + "src": "483:18:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } + }, + { + "argumentTypes": null, + "id": 6591, + "name": "_rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6586, + "src": "503:6:20", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } } ], - "id": 3283, + "id": 6592, "modifierName": { "argumentTypes": null, - "id": 3280, + "id": 6588, "name": "W12Fund", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2899, - "src": "327:7:7", + "referencedDeclaration": 4424, + "src": "466:7:20", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_W12Fund_$2899_$", + "typeIdentifier": "t_type$_t_contract$_W12Fund_$4424_$", "typeString": "type(contract W12Fund)" } }, "nodeType": "ModifierInvocation", - "src": "327:36:7" + "src": "466:44:20" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 3279, + "id": 6587, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3268, + "id": 6574, "name": "version", "nodeType": "VariableDeclaration", - "scope": 3316, - "src": "141:12:7", + "scope": 6619, + "src": "257:12:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2138,10 +2986,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3267, + "id": 6573, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "141:4:7", + "src": "257:4:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2152,11 +3000,11 @@ }, { "constant": false, - "id": 3270, + "id": 6576, "name": "crowdsaleAddress", "nodeType": "VariableDeclaration", - "scope": 3316, - "src": "163:24:7", + "scope": 6619, + "src": "279:24:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2164,10 +3012,10 @@ "typeString": "address" }, "typeName": { - "id": 3269, + "id": 6575, "name": "address", "nodeType": "ElementaryTypeName", - "src": "163:7:7", + "src": "279:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2178,11 +3026,11 @@ }, { "constant": false, - "id": 3272, + "id": 6578, "name": "swapAddress", "nodeType": "VariableDeclaration", - "scope": 3316, - "src": "197:19:7", + "scope": 6619, + "src": "313:19:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2190,10 +3038,10 @@ "typeString": "address" }, "typeName": { - "id": 3271, + "id": 6577, "name": "address", "nodeType": "ElementaryTypeName", - "src": "197:7:7", + "src": "313:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2204,11 +3052,11 @@ }, { "constant": false, - "id": 3274, + "id": 6580, "name": "wTokenAddress", "nodeType": "VariableDeclaration", - "scope": 3316, - "src": "226:21:7", + "scope": 6619, + "src": "342:21:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2216,10 +3064,10 @@ "typeString": "address" }, "typeName": { - "id": 3273, + "id": 6579, "name": "address", "nodeType": "ElementaryTypeName", - "src": "226:7:7", + "src": "342:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2230,11 +3078,11 @@ }, { "constant": false, - "id": 3276, + "id": 6582, "name": "_serviceWallet", "nodeType": "VariableDeclaration", - "scope": 3316, - "src": "257:22:7", + "scope": 6619, + "src": "373:22:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2242,10 +3090,10 @@ "typeString": "address" }, "typeName": { - "id": 3275, + "id": 6581, "name": "address", "nodeType": "ElementaryTypeName", - "src": "257:7:7", + "src": "373:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2256,11 +3104,11 @@ }, { "constant": false, - "id": 3278, + "id": 6584, "name": "_trancheFeePercent", "nodeType": "VariableDeclaration", - "scope": 3316, - "src": "289:23:7", + "scope": 6619, + "src": "405:23:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2268,10 +3116,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3277, + "id": 6583, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "289:4:7", + "src": "405:4:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2279,204 +3127,1088 @@ }, "value": null, "visibility": "internal" + }, + { + "constant": false, + "id": 6586, + "name": "_rates", + "nodeType": "VariableDeclaration", + "scope": 6619, + "src": "438:13:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + }, + "typeName": { + "contractScope": null, + "id": 6585, + "name": "IRates", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7015, + "src": "438:6:20", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "value": null, + "visibility": "internal" } ], - "src": "131:187:7" + "src": "247:210:20" }, "payable": false, "returnParameters": { - "id": 3284, + "id": 6593, "nodeType": "ParameterList", "parameters": [], - "src": "375:0:7" + "src": "522:0:20" }, - "scope": 3347, - "src": "119:515:7", + "scope": 6702, + "src": "235:504:20", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3325, + "id": 6622, "nodeType": "Block", - "src": "687:37:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3323, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3321, - "name": "totalFunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2040, - "src": "697:11:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3322, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3318, - "src": "711:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "697:20:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3324, - "nodeType": "ExpressionStatement", - "src": "697:20:7" - } - ] + "src": "971:2:20", + "statements": [] }, "documentation": null, - "id": 3326, + "id": 6623, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "_setTotalFunded", + "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 3319, + "id": 6620, "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3318, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 3326, - "src": "665:11:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3317, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "665:4:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "664:13:7" + "parameters": [], + "src": "951:2:20" }, - "payable": false, + "payable": true, "returnParameters": { - "id": 3320, + "id": 6621, "nodeType": "ParameterList", "parameters": [], - "src": "687:0:7" + "src": "971:0:20" }, - "scope": 3347, - "src": "640:84:7", - "stateMutability": "nonpayable", + "scope": 6702, + "src": "943:30:20", + "stateMutability": "payable", "superFunction": null, "visibility": "external" }, { "body": { - "id": 3335, + "id": 6694, "nodeType": "Block", - "src": "779:39:7", + "src": "1038:425:20", "statements": [ { - "expression": { + "condition": { "argumentTypes": null, - "id": 3333, + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 6632, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftHandSide": { + "leftExpression": { "argumentTypes": null, - "id": 3331, - "name": "totalRefunded", + "id": 6630, + "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2042, - "src": "789:13:7", + "referencedDeclaration": 6625, + "src": "1052:7:20", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { "argumentTypes": null, - "id": 3332, - "name": "amount", + "id": 6631, + "name": "METHOD_ETH", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3328, - "src": "805:6:7", + "referencedDeclaration": 3203, + "src": "1063:10:20", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, - "src": "789:22:7", + "src": "1052:21:20", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 3334, - "nodeType": "ExpressionStatement", - "src": "789:22:7" + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 6653, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6651, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6625, + "src": "1192:7:20", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 6652, + "name": "METHOD_USD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3208, + "src": "1203:10:20", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "1192:21:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6692, + "nodeType": "IfStatement", + "src": "1189:268:20", + "trueBody": { + "id": 6691, + "nodeType": "Block", + "src": "1215:242:20", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6657, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6625, + "src": "1251:7:20", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 6655, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3214, + "src": "1237:5:20", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "id": 6656, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 6992, + "src": "1237:13:20", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (bytes32) view external returns (bool)" + } + }, + "id": 6658, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1237:22:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 6654, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "1229:7:20", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 6659, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1229:31:20", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6660, + "nodeType": "ExpressionStatement", + "src": "1229:31:20" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6674, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6670, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10133, + "src": "1338:4:20", + "typeDescriptions": { + "typeIdentifier": "t_contract$_W12FundStub_$6702", + "typeString": "contract W12FundStub" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_W12FundStub_$6702", + "typeString": "contract W12FundStub" + } + ], + "id": 6669, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1330:7:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 6671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1330:13:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6665, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6625, + "src": "1310:7:20", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 6663, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3214, + "src": "1288:5:20", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "id": 6664, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getTokenAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 6985, + "src": "1288:21:20", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view external returns (address)" + } + }, + "id": 6666, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1288:30:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6662, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9765, + "src": "1282:5:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$9765_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 6667, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1282:37:20", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$9765", + "typeString": "contract ERC20" + } + }, + "id": 6668, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 9779, + "src": "1282:47:20", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6672, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1282:62:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 6673, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6627, + "src": "1348:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1282:73:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 6661, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "1274:7:20", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 6675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1274:82:20", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6676, + "nodeType": "ExpressionStatement", + "src": "1274:82:20" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6685, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10042, + "src": "1425:3:20", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1425:10:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6687, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6627, + "src": "1437:7:20", + "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": 6681, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6625, + "src": "1406:7:20", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 6679, + "name": "rates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3214, + "src": "1384:5:20", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IRates_$7015", + "typeString": "contract IRates" + } + }, + "id": 6680, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getTokenAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 6985, + "src": "1384:21:20", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32) view external returns (address)" + } + }, + "id": 6682, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1384:30:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6678, + "name": "ERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9765, + "src": "1378:5:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20_$9765_$", + "typeString": "type(contract ERC20)" + } + }, + "id": 6683, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1378:37:20", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$9765", + "typeString": "contract ERC20" + } + }, + "id": 6684, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 9788, + "src": "1378:46:20", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 6688, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1378:67:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 6677, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "1370:7:20", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 6689, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1370:76:20", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6690, + "nodeType": "ExpressionStatement", + "src": "1370:76:20" + } + ] + } + }, + "id": 6693, + "nodeType": "IfStatement", + "src": "1048:409:20", + "trueBody": { + "id": 6650, + "nodeType": "Block", + "src": "1075:108:20", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6639, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6635, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10133, + "src": "1105:4:20", + "typeDescriptions": { + "typeIdentifier": "t_contract$_W12FundStub_$6702", + "typeString": "contract W12FundStub" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_W12FundStub_$6702", + "typeString": "contract W12FundStub" + } + ], + "id": 6634, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1097:7:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 6636, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1097:13:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 6637, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1097:21:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 6638, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6627, + "src": "1122:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1097:32:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 6633, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "1089:7:20", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 6640, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1089:41:20", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6641, + "nodeType": "ExpressionStatement", + "src": "1089:41:20" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6647, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6627, + "src": "1164:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6642, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10042, + "src": "1144:3:20", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1144:10:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 6646, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1144:19:20", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 6648, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1144:28:20", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6649, + "nodeType": "ExpressionStatement", + "src": "1144:28:20" + } + ] + } } ] }, "documentation": null, - "id": 3336, + "id": 6695, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "_setTotalRefunded", + "name": "_outFunds", "nodeType": "FunctionDefinition", "parameters": { - "id": 3329, + "id": 6628, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3328, - "name": "amount", + "id": 6625, + "name": "_symbol", "nodeType": "VariableDeclaration", - "scope": 3336, - "src": "757:11:7", + "scope": 6695, + "src": "998:15:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6624, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "998:7:20", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6627, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 6695, + "src": "1015:12:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2484,10 +4216,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3327, + "id": 6626, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "757:4:7", + "src": "1015:4:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2497,83 +4229,49 @@ "visibility": "internal" } ], - "src": "756:13:7" + "src": "997:31:20" }, "payable": false, "returnParameters": { - "id": 3330, + "id": 6629, "nodeType": "ParameterList", "parameters": [], - "src": "779:0:7" + "src": "1038:0:20" }, - "scope": 3347, - "src": "730:88:7", + "scope": 6702, + "src": "979:484:20", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" }, { "body": { - "id": 3339, - "nodeType": "Block", - "src": "852:2:7", - "statements": [] - }, - "documentation": null, - "id": 3340, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3337, - "nodeType": "ParameterList", - "parameters": [], - "src": "832:2:7" - }, - "payable": true, - "returnParameters": { - "id": 3338, - "nodeType": "ParameterList", - "parameters": [], - "src": "852:0:7" - }, - "scope": 3347, - "src": "824:30:7", - "stateMutability": "payable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 3345, + "id": 6700, "nodeType": "Block", - "src": "918:18:7", + "src": "1527:18:20", "statements": [ { - "id": 3344, + "id": 6699, "nodeType": "PlaceholderStatement", - "src": "928:1:7" + "src": "1537:1:20" } ] }, "documentation": null, - "id": 3346, + "id": 6701, "name": "onlyFrom", "nodeType": "ModifierDefinition", "parameters": { - "id": 3343, + "id": 6698, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3342, + "id": 6697, "name": "sender", "nodeType": "VariableDeclaration", - "scope": 3346, - "src": "902:14:7", + "scope": 6701, + "src": "1511:14:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2581,10 +4279,10 @@ "typeString": "address" }, "typeName": { - "id": 3341, + "id": 6696, "name": "address", "nodeType": "ElementaryTypeName", - "src": "902:7:7", + "src": "1511:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2594,17 +4292,17 @@ "visibility": "internal" } ], - "src": "901:16:7" + "src": "1510:16:20" }, - "src": "884:52:7", + "src": "1493:52:20", "visibility": "internal" } ], - "scope": 3348, - "src": "81:857:7" + "scope": 6703, + "src": "197:1350:20" } ], - "src": "0:939:7" + "src": "0:1548:20" }, "compiler": { "name": "solc", @@ -2612,5 +4310,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-02T11:52:56.749Z" + "updatedAt": "2018-10-22T07:59:52.073Z" } \ No newline at end of file diff --git a/build/contracts/W12Lister.json b/build/contracts/W12Lister.json index f89f2f2d..5b65dabe 100644 --- a/build/contracts/W12Lister.json +++ b/build/contracts/W12Lister.json @@ -1,6 +1,24 @@ { "contractName": "W12Lister", "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "_operator", + "type": "address" + }, + { + "name": "_role", + "type": "string" + } + ], + "name": "checkRole", + "outputs": [], + "payable": false, + "stateMutability": "view", + "type": "function" + }, { "constant": true, "inputs": [ @@ -62,12 +80,21 @@ }, { "constant": true, - "inputs": [], - "name": "exchanger", + "inputs": [ + { + "name": "_operator", + "type": "address" + }, + { + "name": "_role", + "type": "string" + } + ], + "name": "hasRole", "outputs": [ { "name": "", - "type": "address" + "type": "bool" } ], "payable": false, @@ -77,11 +104,11 @@ { "constant": true, "inputs": [], - "name": "version", + "name": "exchanger", "outputs": [ { "name": "", - "type": "uint256" + "type": "address" } ], "payable": false, @@ -91,11 +118,11 @@ { "constant": true, "inputs": [], - "name": "serviceWallet", + "name": "version", "outputs": [ { "name": "", - "type": "address" + "type": "uint256" } ], "payable": false, @@ -176,6 +203,34 @@ "stateMutability": "view", "type": "function" }, + { + "constant": true, + "inputs": [], + "name": "wallets", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "ROLE_ADMIN", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, { "constant": false, "inputs": [ @@ -197,7 +252,7 @@ "type": "uint256" }, { - "name": "_serviceWallet", + "name": "_wallets", "type": "address" }, { @@ -340,6 +395,68 @@ "name": "OwnershipTransferred", "type": "event" }, + { + "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": false, + "inputs": [ + { + "name": "_operator", + "type": "address" + } + ], + "name": "addAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_operator", + "type": "address" + } + ], + "name": "removeAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, { "constant": false, "inputs": [ @@ -499,26 +616,40 @@ "payable": false, "stateMutability": "view", "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "serviceWallet", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" } ], - "bytecode": "0x608060405260016002553480156200001657600080fd5b50604051608080620037618339810160409081528151602083015191830151606090930151600082905560018054600160a060020a03191633179055909290600160a060020a03831615156200006b57600080fd5b600160a060020a03821615156200008157600080fd5b600160a060020a03811615156200009757600080fd5b60038054600160a060020a03808416600160a060020a0319928316179092556008805486841662010000026201000060b060020a031990911617905560048054928516929091169190911790556006805490620000f8906001830162000103565b505050505062000237565b8154818355818111156200013257600c0281600c02836000526020600020918201910162000132919062000137565b505050565b620001cc91905b80821115620001c8576000620001558282620001cf565b62000165600183016000620001cf565b5060028101805460ff19169055600060048201819055600582018190556006820181905560078201819055600882018054600160a060020a031990811690915560098301829055600a830191909155600b820180549091169055600c016200013e565b5090565b90565b50805460018160011615610100020316600290046000825580601f10620001f7575062000217565b601f0160209004906000526020600020908101906200021791906200021a565b50565b620001cc91905b80821115620001c8576000815560010162000221565b61351a80620002476000396000f300608060405260043610620000e95763ffffffff60e060020a60003504166309363c998114620000ee5780631dafede0146200011a57806334cf82bf14620002825780633f3466a714620002d95780634b1acf39146200031f5780634d12fca4146200033757806354fd4d50146200034f5780635641f3c3146200037957806368dce9321462000391578063715018a614620003b8578063849072b914620003d05780638da5cb5b14620004465780639cf96e2e146200045e578063a41ffd38146200048d578063c45a015514620004b4578063cca89d7314620004cc578063f2fde38b14620004f6575b600080fd5b348015620000fb57600080fd5b5062000118600160a060020a03600435166024356044356200051a565b005b3480156200012757600080fd5b50620001356004356200093d565b6040518080602001806020018c60ff1660ff1681526020018b81526020018a815260200189815260200188815260200187600160a060020a0316600160a060020a0316815260200186815260200185815260200184600160a060020a0316600160a060020a0316815260200183810383528e818151815260200191508051906020019080838360005b83811015620001d8578181015183820152602001620001be565b50505050905090810190601f168015620002065780820380516001836020036101000a031916815260200191505b5083810382528d5181528d516020918201918f019080838360005b838110156200023b57818101518382015260200162000221565b50505050905090810190601f168015620002695780820380516001836020036101000a031916815260200191505b509d505050505050505050505050505060405180910390f35b3480156200028f57600080fd5b5062000118600160a060020a0360048035821691602480359091169160443580830192908201359160643591820191013560ff6084351660a43560c43560e4356101043562000adf565b348015620002e657600080fd5b5062000303600160a060020a036004358116906024351662000fdc565b60408051600160a060020a039092168252519081900360200190f35b3480156200032c57600080fd5b506200030362001000565b3480156200034457600080fd5b506200030362001010565b3480156200035c57600080fd5b50620003676200101f565b60408051918252519081900360200190f35b3480156200038657600080fd5b506200030362001025565b3480156200039e57600080fd5b5062000118600160a060020a03600435166024356200103a565b348015620003c557600080fd5b5062000118620015ef565b348015620003dd57600080fd5b50620003f4600160a060020a03600435166200165e565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156200043257818101518382015260200162000418565b505050509050019250505060405180910390f35b3480156200045357600080fd5b5062000303620016d6565b3480156200046b57600080fd5b5062000476620016e5565b6040805161ffff9092168252519081900360200190f35b3480156200049a57600080fd5b5062000118600160a060020a0360043516602435620016ef565b348015620004c157600080fd5b5062000303620019dd565b348015620004d957600080fd5b5062000476600160a060020a0360043581169060243516620019ec565b3480156200050357600080fd5b5062000118600160a060020a036004351662001a0d565b60008060016002541415156200052f57600080fd5b600280556200053f853362001a33565b336000908152600391909101602052604090205460ff1615156001146200056557600080fd5b620005878462000576873362001a33565b600a01549063ffffffff62001a8516565b62000593863362001a33565b600901541015620005a357600080fd5b6000620005b1863362001a33565b60080154600160a060020a031614620005c957600080fd5b6003546040805160e260020a630547cdcd028152600160a060020a0388811660048301529151919092169163151f37349160248083019260209291908290030181600087803b1580156200061c57600080fd5b505af115801562000631573d6000803e3d6000fd5b505050506040513d60208110156200064857600080fd5b5051600454600854919350600160a060020a039081169163aa1322f791889186918891620100009004166200067e843362001a33565b600501546200068e8c3362001a33565b600601546200069e8d3362001a33565b600701546003546040805160e060020a63ffffffff8c16028152600160a060020a03998a166004820152978916602489015260448801969096529387166064870152608486019290925260a485015260c48401529290921660e48201523361010482015290516101248083019260209291908290030181600087803b1580156200072757600080fd5b505af11580156200073c573d6000803e3d6000fd5b505050506040513d60208110156200075357600080fd5b505190508062000764863362001a33565b600801805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03928316179055604080517fd88b8676000000000000000000000000000000000000000000000000000000008152838316600482015290519184169163d88b86769160248082019260009290919082900301818387803b158015620007eb57600080fd5b505af115801562000800573d6000803e3d6000fd5b50505050600062000812863362001a33565b600601541115620008e557600354600160a060020a031663e1f21c6786836200086162000840833362001a33565b60060154620008508b3362001a33565b600901549063ffffffff62001a9316565b6040805160e060020a63ffffffff8716028152600160a060020a0394851660048201529290931660248301526044820152905160648083019260209291908290030181600087803b158015620008b657600080fd5b505af1158015620008cb573d6000803e3d6000fd5b505050506040513d6020811015620008e257600080fd5b50505b620008f18585620016ef565b6040805185815290513391600160a060020a038816917f824239e216016c403265447935e88cc521189d5e9a52754e5c2a16f7436281dc9181900360200190a350506001600255505050565b60068054829081106200094c57fe5b6000918252602091829020600c919091020180546040805160026001841615610100026000190190931692909204601f810185900485028301850190915280825291935091839190830182828015620009e95780601f10620009bd57610100808354040283529160200191620009e9565b820191906000526020600020905b815481529060010190602001808311620009cb57829003601f168201915b505050505090806001018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801562000a8b5780601f1062000a5f5761010080835404028352916020019162000a8b565b820191906000526020600020905b81548152906001019060200180831162000a6d57829003601f168201915b50505060028401546004850154600586015460068701546007880154600889015460098a0154600a8b0154600b909b0154999a60ff9097169995985093965091949093600160a060020a039283169392168b565b600154600090600160a060020a0316331462000afa57600080fd5b600160a060020a038c16151562000b1057600080fd5b600160a060020a038b16151562000b2657600080fd5b62000b318562001ae0565b801562000b485750606462000b468662001b0a565b105b151562000b5457600080fd5b62000b5f8462001ae0565b801562000b765750606462000b748562001b0a565b105b151562000b8257600080fd5b62000b8d8362001ae0565b801562000ba45750606462000ba28462001b0a565b105b151562000bb057600080fd5b62000bbb8262001ae0565b801562000bd25750606462000bd08362001b0a565b105b151562000bde57600080fd5b8a600160a060020a031662000bf48c8e62001a33565b600b0154600160a060020a0316141562000c0d57600080fd5b62000c198b8d62001a33565b600160a060020a038d166000908152600391909101602052604090205460ff161562000c4457600080fd5b600680549050905080600560008d600160a060020a0316600160a060020a0316815260200190815260200160002060008e600160a060020a0316600160a060020a0316815260200190815260200160002060006101000a81548161ffff021916908361ffff1602179055506006805480919060010162000cc5919062001e2d565b600860006101000a81548161ffff021916908361ffff160217905550600760008c600160a060020a0316600160a060020a031681526020019081526020016000208c90806001815401808255809150509060018203906000526020600020016000909192909190916101000a815481600160a060020a030219169083600160a060020a0316021790555050600160068261ffff1681548110151562000d6657fe5b90600052602060002090600c020160030160008e600160a060020a0316600160a060020a0316815260200190815260200160002060006101000a81548160ff021916908315150217905550898960068361ffff1681548110151562000dc757fe5b6000918252602090912062000de393600c909202019162001e61565b50878760068361ffff1681548110151562000dfa57fe5b90600052602060002090600c0201600101919062000e1a92919062001e61565b508560068261ffff1681548110151562000e3057fe5b90600052602060002090600c020160020160006101000a81548160ff021916908360ff1602179055508460068261ffff1681548110151562000e6e57fe5b90600052602060002090600c0201600401819055508360068261ffff1681548110151562000e9857fe5b90600052602060002090600c0201600501819055508260068261ffff1681548110151562000ec257fe5b90600052602060002090600c0201600601819055508160068261ffff1681548110151562000eec57fe5b90600052602060002090600c0201600701819055508a60068261ffff1681548110151562000f1657fe5b90600052602060002090600c0201600b0160006101000a815481600160a060020a030219169083600160a060020a031602179055508b600160a060020a03168b600160a060020a03167fd3bb7a0fd3c972c824718e5d4fe7501feb58ebd797223783efbfd1d3085d49438c8c8c8c60405180806020018060200183810383528787828181526020019250808284379091018481038352858152602001905085858082843760405192018290039850909650505050505050a3505050505050505050505050565b600062000fea838362001a33565b60080154600160a060020a031690505b92915050565b600354600160a060020a03165b90565b600354600160a060020a031681565b60005481565b600854620100009004600160a060020a031681565b600080600080600060016002541415156200105457600080fd5b60028055600086116200106657600080fd5b600160a060020a03871615156200107c57600080fd5b86600160a060020a031662001092883362001a33565b600b0154600160a060020a031614620010aa57600080fd5b620010b6873362001a33565b336000908152600391909101602052604090205460ff161515620010d957600080fd5b604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290518896508791600160a060020a0388169163dd62ed3e916044808201926020929091908290030181600087803b1580156200114757600080fd5b505af11580156200115c573d6000803e3d6000fd5b505050506040513d60208110156200117357600080fd5b505110156200118157600080fd5b6200118d873362001a33565b93508360020160009054906101000a900460ff1660ff1685600160a060020a031663313ce5676040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015620011e357600080fd5b505af1158015620011f8573d6000803e3d6000fd5b505050506040513d60208110156200120f57600080fd5b505160ff16146200121f57600080fd5b6000846004015411620012345760006200124c565b60048401546200124c90879063ffffffff62001a9316565b925062001260868463ffffffff62001b4216565b6003549092506200127d908690600160a060020a03168462001b55565b6008546200129d908690620100009004600160a060020a03168562001b55565b6009840154620012b4908363ffffffff62001a8516565b60098501556003546040805160e260020a630547cdcd028152600160a060020a038a8116600483015291516000939092169163151f37349160248082019260209290919082900301818787803b1580156200130e57600080fd5b505af115801562001323573d6000803e3d6000fd5b505050506040513d60208110156200133a57600080fd5b5051600160a060020a03161415620015185760028401548490600182019060ff166200136562001ee6565b60ff82166040820152606080825284546002600019610100600184161502019091160490820181905281906020820190608083019087908015620013ed5780601f10620013c157610100808354040283529160200191620013ed565b820191906000526020600020905b815481529060010190602001808311620013cf57829003601f168201915b5050838103825285546002600019610100600184161502019091160480825260209091019086908015620014655780601f10620014395761010080835404028352916020019162001465565b820191906000526020600020905b8154815290600101906020018083116200144757829003601f168201915b505095505050505050604051809103906000f0801580156200148b573d6000803e3d6000fd5b50600354604080517fa0736912000000000000000000000000000000000000000000000000000000008152600160a060020a038b811660048301528085166024830152915193945091169163a07369129160448082019260009290919082900301818387803b158015620014fe57600080fd5b505af115801562001513573d6000803e3d6000fd5b505050505b6003546040805160e260020a630547cdcd028152600160a060020a038a811660048301819052925133947f2b11dc5f6b2036a3d03d04c1e89724a8650507582665455ed7154b544f3e3c4f9388939091169163151f3734916024808201926020929091908290030181600087803b1580156200159357600080fd5b505af1158015620015a8573d6000803e3d6000fd5b505050506040513d6020811015620015bf57600080fd5b505160408051928352600160a060020a0390911660208301528051918290030190a3505060016002555050505050565b600154600160a060020a031633146200160757600080fd5b600154604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26001805473ffffffffffffffffffffffffffffffffffffffff19169055565b600160a060020a038116600090815260076020908152604091829020805483518184028101840190945280845260609392830182828015620016ca57602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311620016ab575b50505050509050919050565b600154600160a060020a031681565b60085461ffff1681565b600080808311620016ff57600080fd5b600160a060020a03841615156200171557600080fd5b6003546040805160e260020a630547cdcd028152600160a060020a03878116600483015291516000939092169163151f37349160248082019260209290919082900301818787803b1580156200176a57600080fd5b505af11580156200177f573d6000803e3d6000fd5b505050506040513d60208110156200179657600080fd5b5051600160a060020a03161415620017ad57600080fd5b6000620017bb853362001a33565b60080154600160a060020a03161415620017d457600080fd5b620017e0843362001a33565b336000908152600391909101602052604090205460ff1615156001146200180657600080fd5b620018178362000576863362001a33565b62001823853362001a33565b6009015410156200183357600080fd5b6003546040805160e260020a630547cdcd028152600160a060020a0387811660048301529151919092169163151f37349160248083019260209291908290030181600087803b1580156200188657600080fd5b505af11580156200189b573d6000803e3d6000fd5b505050506040513d6020811015620018b257600080fd5b50519150620018c2843362001a33565b60080154600160a060020a03169050620018e28362000576863362001a33565b620018ee853362001a33565b600a0155604080517fd0047acf000000000000000000000000000000000000000000000000000000008152600160a060020a0383811660048301526024820186905260006044830181905292519085169263d0047acf92606480820193602093909283900390910190829087803b1580156200196957600080fd5b505af11580156200197e573d6000803e3d6000fd5b505050506040513d60208110156200199557600080fd5b50506040805184815290513391600160a060020a038716917f9a2331701430ef95fa157fc5598820b278d8225e8a51263887abb0e1e2b06d979181900360200190a350505050565b600454600160a060020a031681565b600560209081526000928352604080842090915290825290205461ffff1681565b600154600160a060020a0316331462001a2557600080fd5b62001a308162001d39565b50565b600160a060020a03808316600090815260056020908152604080832093851683529290529081205460068054909161ffff1690811062001a6f57fe5b90600052602060002090600c0201905092915050565b8181018281101562000ffa57fe5b600062001aa08262001ae0565b151562001aac57600080fd5b62001ad962001aba62001db8565b62001acc858563ffffffff62001dcc16565b9063ffffffff62001df916565b9392505050565b600062001aec62001e0f565b821015801562000ffa575062001b0162001db8565b82111592915050565b600062001b178262001ae0565b151562001b2357600080fd5b62000ffa62001b3162001e14565b8390600a0a63ffffffff62001df916565b60008282111562001b4f57fe5b50900390565b600062001bf38285600160a060020a03166370a08231866040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801562001bb857600080fd5b505af115801562001bcd573d6000803e3d6000fd5b505050506040513d602081101562001be457600080fd5b50519063ffffffff62001a8516565b604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a038681166024830152604482018690529151929350908616916323b872dd916064808201926020929091908290030181600087803b15801562001c6957600080fd5b505af115801562001c7e573d6000803e3d6000fd5b505050506040513d602081101562001c9557600080fd5b5050604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152915183928716916370a082319160248083019260209291908290030181600087803b15801562001cfd57600080fd5b505af115801562001d12573d6000803e3d6000fd5b505050506040513d602081101562001d2957600080fd5b50511462001d3357fe5b50505050565b600160a060020a038116151562001d4f57600080fd5b600154604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600062001dc462001e19565b600a0a905090565b600082151562001ddf5750600062000ffa565b5081810281838281151562001df057fe5b041462000ffa57fe5b6000818381151562001e0757fe5b049392505050565b600090565b600290565b600062001e2562001e14565b600201905090565b81548183558181111562001e5c57600c0281600c02836000526020600020918201910162001e5c919062001ef7565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1062001ea45782800160ff1982351617855562001ed4565b8280016001018555821562001ed4579182015b8281111562001ed457823582559160200191906001019062001eb7565b5062001ee292915062001f95565b5090565b6040516114f48062001ffb83390190565b6200100d91905b8082111562001ee257600062001f15828262001fb2565b62001f2560018301600062001fb2565b5060028101805460ff1916905560006004820181905560058201819055600682018190556007820181905560088201805473ffffffffffffffffffffffffffffffffffffffff1990811690915560098301829055600a830191909155600b820180549091169055600c0162001efe565b6200100d91905b8082111562001ee2576000815560010162001f9c565b50805460018160011615610100020316600290046000825580601f1062001fda575062001a30565b601f01602090049060005260206000209081019062001a30919062001f95560060806040523480156200001157600080fd5b50604051620014f4380380620014f48339810160409081528151602080840151928401519184018051909493909301928491849184916200005891600091860190620000bf565b5081516200006e906001906020850190620000bf565b506002805433610100810261010060a860020a031960ff90951660ff199384161794909416939093179091556000918252600860205260409091208054909116600117905550620001649350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200010257805160ff191683800117855562000132565b8280016001018555821562000132579182015b828111156200013257825182559160200191906001019062000115565b506200014092915062000144565b5090565b6200016191905b808211156200014057600081556001016200014b565b90565b61138080620001746000396000f3006080604052600436106101325763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610137578063095ea7b3146101c157806318160ddd146101f957806323b872dd1461022057806327e235e31461024a578063313ce5671461026b57806342966c68146102965780634afbf5ee146102b057806366188463146102d457806370a08231146102f8578063715018a61461031957806379cc67901461032e5780638da5cb5b1461035257806395d89b41146103835780639d2e477714610398578063a9059cbb146103c5578063ba0e0f5e146103e9578063d0047acf1461040a578063d294cb0f14610437578063d73dd62314610458578063d88b86761461047c578063dd62ed3e1461049d578063f2fde38b146104c4575b600080fd5b34801561014357600080fd5b5061014c6104e5565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561018657818101518382015260200161016e565b50505050905090810190601f1680156101b35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101cd57600080fd5b506101e5600160a060020a0360043516602435610573565b604080519115158252519081900360200190f35b34801561020557600080fd5b5061020e6105d9565b60408051918252519081900360200190f35b34801561022c57600080fd5b506101e5600160a060020a03600435811690602435166044356105df565b34801561025657600080fd5b5061020e600160a060020a036004351661073f565b34801561027757600080fd5b50610280610751565b6040805160ff9092168252519081900360200190f35b3480156102a257600080fd5b506102ae60043561075a565b005b3480156102bc57600080fd5b5061020e600160a060020a0360043516602435610767565b3480156102e057600080fd5b506101e5600160a060020a0360043516602435610784565b34801561030457600080fd5b5061020e600160a060020a0360043516610873565b34801561032557600080fd5b506102ae61088e565b34801561033a57600080fd5b506102ae600160a060020a0360043516602435610906565b34801561035e57600080fd5b5061036761099c565b60408051600160a060020a039092168252519081900360200190f35b34801561038f57600080fd5b5061014c6109b0565b3480156103a457600080fd5b506101e5600160a060020a036004351660243563ffffffff60443516610a0a565b3480156103d157600080fd5b506101e5600160a060020a0360043516602435610ab6565b3480156103f557600080fd5b506102ae600160a060020a0360043516610b89565b34801561041657600080fd5b506101e5600160a060020a036004351660243563ffffffff60443516610bc6565b34801561044357600080fd5b5061020e600160a060020a0360043516610d0c565b34801561046457600080fd5b506101e5600160a060020a0360043516602435610e11565b34801561048857600080fd5b506102ae600160a060020a0360043516610eaa565b3480156104a957600080fd5b5061020e600160a060020a0360043581169060243516610eea565b3480156104d057600080fd5b506102ae600160a060020a0360043516610f15565b6000805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561056b5780601f106105405761010080835404028352916020019161056b565b820191906000526020600020905b81548152906001019060200180831161054e57829003601f168201915b505050505081565b336000818152600360209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60055490565b60006105ea84610f3a565b600160a060020a03831615156105ff57600080fd5b61060884610d0c565b82111561061457600080fd5b600160a060020a038416600090815260036020908152604080832033845290915290205482111561064457600080fd5b600160a060020a03841660009081526004602052604090205461066d908363ffffffff6110a916565b600160a060020a0380861660009081526004602052604080822093909355908516815220546106a2908363ffffffff6110bb16565b600160a060020a0380851660009081526004602090815260408083209490945591871681526003825282812033825290915220546106e6908363ffffffff6110a916565b600160a060020a0380861660008181526003602090815260408083203384528252918290209490945580518681529051928716939192600080516020611335833981519152929181900390910190a35060019392505050565b60046020526000908152604090205481565b60025460ff1681565b61076433826110ce565b50565b600660209081526000928352604080842090915290825290205481565b336000908152600360209081526040808320600160a060020a03861684529091528120548083106107d857336000908152600360209081526040808320600160a060020a038816845290915281205561080d565b6107e8818463ffffffff6110a916565b336000908152600360209081526040808320600160a060020a03891684529091529020555b336000818152600360209081526040808320600160a060020a0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b600160a060020a031660009081526004602052604090205490565b6002546101009004600160a060020a031633146108aa57600080fd5b600254604051610100909104600160a060020a0316907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26002805474ffffffffffffffffffffffffffffffffffffffff0019169055565b600160a060020a038216600090815260036020908152604080832033845290915290205481111561093657600080fd5b600160a060020a038216600090815260036020908152604080832033845290915290205461096a908263ffffffff6110a916565b600160a060020a038316600090815260036020908152604080832033845290915290205561099882826110ce565b5050565b6002546101009004600160a060020a031681565b60018054604080516020600284861615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561056b5780601f106105405761010080835404028352916020019161056b565b3360008181526008602052604081205490919060ff161515610a2b57600080fd5b610a358585610ab6565b50428363ffffffff161115610a5757610a576000868563ffffffff16876111b6565b60408051338152600160a060020a038716602082015280820186905263ffffffff8516606082015290517f5075049792a88eedfe4e60bb3ffeac77b4fa7f03108b81fb0b460161b983e2009181900360800190a1506001949350505050565b6000610ac133610f3a565b600160a060020a0383161515610ad657600080fd5b610adf33610d0c565b821115610aeb57600080fd5b33600090815260046020526040902054610b0b908363ffffffff6110a916565b3360009081526004602052604080822092909255600160a060020a03851681522054610b3d908363ffffffff6110bb16565b600160a060020a0384166000818152600460209081526040918290209390935580518581529051919233926000805160206113358339815191529281900390910190a350600192915050565b6002546101009004600160a060020a03163314610ba557600080fd5b600160a060020a03166000908152600860205260409020805460ff19169055565b3360008181526008602052604081205490919060ff161515610be757600080fd5b600554610bfa818663ffffffff6110bb16565b11610c0457600080fd5b428363ffffffff161115610c2557610c256000868563ffffffff16876111b6565b600160a060020a038516600090815260046020526040902054610c4e908563ffffffff6110bb16565b600160a060020a038616600090815260046020526040902055600554610c7a908563ffffffff6110bb16565b600555604080518581529051600160a060020a038716916000916000805160206113358339815191529181900360200190a36040805160008152600160a060020a038716602082015280820186905263ffffffff8516606082015290517f5075049792a88eedfe4e60bb3ffeac77b4fa7f03108b81fb0b460161b983e2009181900360800190a1506001949350505050565b600160a060020a038116600090815260046020908152604080832054600683528184208480529092528220549091901515610d4657610e0b565b5060005b600160a060020a038316600090815260076020526040902054811015610e0b57600160a060020a0383166000908152600760205260409020805442919083908110610d9157fe5b9060005260206000200154101515610e0357600160a060020a0383166000908152600660209081526040808320600790925282208054610e0093919085908110610dd757fe5b9060005260206000200154815260200190815260200160002054836110a990919063ffffffff16565b91505b600101610d4a565b50919050565b336000908152600360209081526040808320600160a060020a0386168452909152812054610e45908363ffffffff6110bb16565b336000818152600360209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b6002546101009004600160a060020a03163314610ec657600080fd5b600160a060020a03166000908152600860205260409020805460ff19166001179055565b600160a060020a03918216600090815260036020908152604080832093909416825291909152205490565b6002546101009004600160a060020a03163314610f3157600080fd5b610764816112ab565b600160a060020a03811660009081526006602090815260408083208380529091528120541515610f6957610998565b5060005b600160a060020a03821660009081526007602052604090205481101561099857600160a060020a0382166000908152600760205260409020805442919083908110610fb457fe5b906000526020600020015410156110a157600160a060020a038216600090815260066020908152604080832060079092528220805461103f93919085908110610ff957fe5b60009182526020808320909101548352828101939093526040918201812054600160a060020a03871682526006845282822082805290935220549063ffffffff6110a916565b600160a060020a0383166000818152600660209081526040808320838052808352818420959095559282526007905290812080549192918391908590811061108357fe5b90600052602060002001548152602001908152602001600020819055505b600101610f6d565b6000828211156110b557fe5b50900390565b818101828110156110c857fe5b92915050565b6110d782610f3a565b6110e082610d0c565b8111156110ec57600080fd5b600160a060020a038216600090815260046020526040902054611115908263ffffffff6110a916565b600160a060020a038316600090815260046020526040902055600554611141908263ffffffff6110a916565b600555604080518281529051600160a060020a038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a2604080518281529051600091600160a060020a038516916000805160206113358339815191529181900360200190a35050565b600160a060020a03831660009081526006602090815260408083208380529091529020546111ea908263ffffffff6110bb16565b600160a060020a0384166000908152600660209081526040808320838052909152808220929092558381522054151561124957600160a060020a0383166000908152600760209081526040822080546001810182559083529120018290555b600160a060020a038316600090815260066020908152604080832085845290915290205461127d908263ffffffff6110bb16565b600160a060020a03909316600090815260066020908152604080832094835293905291909120919091555050565b600160a060020a03811615156112c057600080fd5b600254604051600160a060020a0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360028054600160a060020a039092166101000274ffffffffffffffffffffffffffffffffffffffff00199092169190911790555600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582032e10203dcbab0ee1413110ee779200c5145d19d538d974c007e2d373697c5e70029a165627a7a72305820b196bb66cdee7d7907c5872c259262279a115ca34b48a797cba89354ccbe9ba20029", - "deployedBytecode": "0x608060405260043610620000e95763ffffffff60e060020a60003504166309363c998114620000ee5780631dafede0146200011a57806334cf82bf14620002825780633f3466a714620002d95780634b1acf39146200031f5780634d12fca4146200033757806354fd4d50146200034f5780635641f3c3146200037957806368dce9321462000391578063715018a614620003b8578063849072b914620003d05780638da5cb5b14620004465780639cf96e2e146200045e578063a41ffd38146200048d578063c45a015514620004b4578063cca89d7314620004cc578063f2fde38b14620004f6575b600080fd5b348015620000fb57600080fd5b5062000118600160a060020a03600435166024356044356200051a565b005b3480156200012757600080fd5b50620001356004356200093d565b6040518080602001806020018c60ff1660ff1681526020018b81526020018a815260200189815260200188815260200187600160a060020a0316600160a060020a0316815260200186815260200185815260200184600160a060020a0316600160a060020a0316815260200183810383528e818151815260200191508051906020019080838360005b83811015620001d8578181015183820152602001620001be565b50505050905090810190601f168015620002065780820380516001836020036101000a031916815260200191505b5083810382528d5181528d516020918201918f019080838360005b838110156200023b57818101518382015260200162000221565b50505050905090810190601f168015620002695780820380516001836020036101000a031916815260200191505b509d505050505050505050505050505060405180910390f35b3480156200028f57600080fd5b5062000118600160a060020a0360048035821691602480359091169160443580830192908201359160643591820191013560ff6084351660a43560c43560e4356101043562000adf565b348015620002e657600080fd5b5062000303600160a060020a036004358116906024351662000fdc565b60408051600160a060020a039092168252519081900360200190f35b3480156200032c57600080fd5b506200030362001000565b3480156200034457600080fd5b506200030362001010565b3480156200035c57600080fd5b50620003676200101f565b60408051918252519081900360200190f35b3480156200038657600080fd5b506200030362001025565b3480156200039e57600080fd5b5062000118600160a060020a03600435166024356200103a565b348015620003c557600080fd5b5062000118620015ef565b348015620003dd57600080fd5b50620003f4600160a060020a03600435166200165e565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156200043257818101518382015260200162000418565b505050509050019250505060405180910390f35b3480156200045357600080fd5b5062000303620016d6565b3480156200046b57600080fd5b5062000476620016e5565b6040805161ffff9092168252519081900360200190f35b3480156200049a57600080fd5b5062000118600160a060020a0360043516602435620016ef565b348015620004c157600080fd5b5062000303620019dd565b348015620004d957600080fd5b5062000476600160a060020a0360043581169060243516620019ec565b3480156200050357600080fd5b5062000118600160a060020a036004351662001a0d565b60008060016002541415156200052f57600080fd5b600280556200053f853362001a33565b336000908152600391909101602052604090205460ff1615156001146200056557600080fd5b620005878462000576873362001a33565b600a01549063ffffffff62001a8516565b62000593863362001a33565b600901541015620005a357600080fd5b6000620005b1863362001a33565b60080154600160a060020a031614620005c957600080fd5b6003546040805160e260020a630547cdcd028152600160a060020a0388811660048301529151919092169163151f37349160248083019260209291908290030181600087803b1580156200061c57600080fd5b505af115801562000631573d6000803e3d6000fd5b505050506040513d60208110156200064857600080fd5b5051600454600854919350600160a060020a039081169163aa1322f791889186918891620100009004166200067e843362001a33565b600501546200068e8c3362001a33565b600601546200069e8d3362001a33565b600701546003546040805160e060020a63ffffffff8c16028152600160a060020a03998a166004820152978916602489015260448801969096529387166064870152608486019290925260a485015260c48401529290921660e48201523361010482015290516101248083019260209291908290030181600087803b1580156200072757600080fd5b505af11580156200073c573d6000803e3d6000fd5b505050506040513d60208110156200075357600080fd5b505190508062000764863362001a33565b600801805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03928316179055604080517fd88b8676000000000000000000000000000000000000000000000000000000008152838316600482015290519184169163d88b86769160248082019260009290919082900301818387803b158015620007eb57600080fd5b505af115801562000800573d6000803e3d6000fd5b50505050600062000812863362001a33565b600601541115620008e557600354600160a060020a031663e1f21c6786836200086162000840833362001a33565b60060154620008508b3362001a33565b600901549063ffffffff62001a9316565b6040805160e060020a63ffffffff8716028152600160a060020a0394851660048201529290931660248301526044820152905160648083019260209291908290030181600087803b158015620008b657600080fd5b505af1158015620008cb573d6000803e3d6000fd5b505050506040513d6020811015620008e257600080fd5b50505b620008f18585620016ef565b6040805185815290513391600160a060020a038816917f824239e216016c403265447935e88cc521189d5e9a52754e5c2a16f7436281dc9181900360200190a350506001600255505050565b60068054829081106200094c57fe5b6000918252602091829020600c919091020180546040805160026001841615610100026000190190931692909204601f810185900485028301850190915280825291935091839190830182828015620009e95780601f10620009bd57610100808354040283529160200191620009e9565b820191906000526020600020905b815481529060010190602001808311620009cb57829003601f168201915b505050505090806001018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801562000a8b5780601f1062000a5f5761010080835404028352916020019162000a8b565b820191906000526020600020905b81548152906001019060200180831162000a6d57829003601f168201915b50505060028401546004850154600586015460068701546007880154600889015460098a0154600a8b0154600b909b0154999a60ff9097169995985093965091949093600160a060020a039283169392168b565b600154600090600160a060020a0316331462000afa57600080fd5b600160a060020a038c16151562000b1057600080fd5b600160a060020a038b16151562000b2657600080fd5b62000b318562001ae0565b801562000b485750606462000b468662001b0a565b105b151562000b5457600080fd5b62000b5f8462001ae0565b801562000b765750606462000b748562001b0a565b105b151562000b8257600080fd5b62000b8d8362001ae0565b801562000ba45750606462000ba28462001b0a565b105b151562000bb057600080fd5b62000bbb8262001ae0565b801562000bd25750606462000bd08362001b0a565b105b151562000bde57600080fd5b8a600160a060020a031662000bf48c8e62001a33565b600b0154600160a060020a0316141562000c0d57600080fd5b62000c198b8d62001a33565b600160a060020a038d166000908152600391909101602052604090205460ff161562000c4457600080fd5b600680549050905080600560008d600160a060020a0316600160a060020a0316815260200190815260200160002060008e600160a060020a0316600160a060020a0316815260200190815260200160002060006101000a81548161ffff021916908361ffff1602179055506006805480919060010162000cc5919062001e2d565b600860006101000a81548161ffff021916908361ffff160217905550600760008c600160a060020a0316600160a060020a031681526020019081526020016000208c90806001815401808255809150509060018203906000526020600020016000909192909190916101000a815481600160a060020a030219169083600160a060020a0316021790555050600160068261ffff1681548110151562000d6657fe5b90600052602060002090600c020160030160008e600160a060020a0316600160a060020a0316815260200190815260200160002060006101000a81548160ff021916908315150217905550898960068361ffff1681548110151562000dc757fe5b6000918252602090912062000de393600c909202019162001e61565b50878760068361ffff1681548110151562000dfa57fe5b90600052602060002090600c0201600101919062000e1a92919062001e61565b508560068261ffff1681548110151562000e3057fe5b90600052602060002090600c020160020160006101000a81548160ff021916908360ff1602179055508460068261ffff1681548110151562000e6e57fe5b90600052602060002090600c0201600401819055508360068261ffff1681548110151562000e9857fe5b90600052602060002090600c0201600501819055508260068261ffff1681548110151562000ec257fe5b90600052602060002090600c0201600601819055508160068261ffff1681548110151562000eec57fe5b90600052602060002090600c0201600701819055508a60068261ffff1681548110151562000f1657fe5b90600052602060002090600c0201600b0160006101000a815481600160a060020a030219169083600160a060020a031602179055508b600160a060020a03168b600160a060020a03167fd3bb7a0fd3c972c824718e5d4fe7501feb58ebd797223783efbfd1d3085d49438c8c8c8c60405180806020018060200183810383528787828181526020019250808284379091018481038352858152602001905085858082843760405192018290039850909650505050505050a3505050505050505050505050565b600062000fea838362001a33565b60080154600160a060020a031690505b92915050565b600354600160a060020a03165b90565b600354600160a060020a031681565b60005481565b600854620100009004600160a060020a031681565b600080600080600060016002541415156200105457600080fd5b60028055600086116200106657600080fd5b600160a060020a03871615156200107c57600080fd5b86600160a060020a031662001092883362001a33565b600b0154600160a060020a031614620010aa57600080fd5b620010b6873362001a33565b336000908152600391909101602052604090205460ff161515620010d957600080fd5b604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290518896508791600160a060020a0388169163dd62ed3e916044808201926020929091908290030181600087803b1580156200114757600080fd5b505af11580156200115c573d6000803e3d6000fd5b505050506040513d60208110156200117357600080fd5b505110156200118157600080fd5b6200118d873362001a33565b93508360020160009054906101000a900460ff1660ff1685600160a060020a031663313ce5676040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015620011e357600080fd5b505af1158015620011f8573d6000803e3d6000fd5b505050506040513d60208110156200120f57600080fd5b505160ff16146200121f57600080fd5b6000846004015411620012345760006200124c565b60048401546200124c90879063ffffffff62001a9316565b925062001260868463ffffffff62001b4216565b6003549092506200127d908690600160a060020a03168462001b55565b6008546200129d908690620100009004600160a060020a03168562001b55565b6009840154620012b4908363ffffffff62001a8516565b60098501556003546040805160e260020a630547cdcd028152600160a060020a038a8116600483015291516000939092169163151f37349160248082019260209290919082900301818787803b1580156200130e57600080fd5b505af115801562001323573d6000803e3d6000fd5b505050506040513d60208110156200133a57600080fd5b5051600160a060020a03161415620015185760028401548490600182019060ff166200136562001ee6565b60ff82166040820152606080825284546002600019610100600184161502019091160490820181905281906020820190608083019087908015620013ed5780601f10620013c157610100808354040283529160200191620013ed565b820191906000526020600020905b815481529060010190602001808311620013cf57829003601f168201915b5050838103825285546002600019610100600184161502019091160480825260209091019086908015620014655780601f10620014395761010080835404028352916020019162001465565b820191906000526020600020905b8154815290600101906020018083116200144757829003601f168201915b505095505050505050604051809103906000f0801580156200148b573d6000803e3d6000fd5b50600354604080517fa0736912000000000000000000000000000000000000000000000000000000008152600160a060020a038b811660048301528085166024830152915193945091169163a07369129160448082019260009290919082900301818387803b158015620014fe57600080fd5b505af115801562001513573d6000803e3d6000fd5b505050505b6003546040805160e260020a630547cdcd028152600160a060020a038a811660048301819052925133947f2b11dc5f6b2036a3d03d04c1e89724a8650507582665455ed7154b544f3e3c4f9388939091169163151f3734916024808201926020929091908290030181600087803b1580156200159357600080fd5b505af1158015620015a8573d6000803e3d6000fd5b505050506040513d6020811015620015bf57600080fd5b505160408051928352600160a060020a0390911660208301528051918290030190a3505060016002555050505050565b600154600160a060020a031633146200160757600080fd5b600154604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26001805473ffffffffffffffffffffffffffffffffffffffff19169055565b600160a060020a038116600090815260076020908152604091829020805483518184028101840190945280845260609392830182828015620016ca57602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311620016ab575b50505050509050919050565b600154600160a060020a031681565b60085461ffff1681565b600080808311620016ff57600080fd5b600160a060020a03841615156200171557600080fd5b6003546040805160e260020a630547cdcd028152600160a060020a03878116600483015291516000939092169163151f37349160248082019260209290919082900301818787803b1580156200176a57600080fd5b505af11580156200177f573d6000803e3d6000fd5b505050506040513d60208110156200179657600080fd5b5051600160a060020a03161415620017ad57600080fd5b6000620017bb853362001a33565b60080154600160a060020a03161415620017d457600080fd5b620017e0843362001a33565b336000908152600391909101602052604090205460ff1615156001146200180657600080fd5b620018178362000576863362001a33565b62001823853362001a33565b6009015410156200183357600080fd5b6003546040805160e260020a630547cdcd028152600160a060020a0387811660048301529151919092169163151f37349160248083019260209291908290030181600087803b1580156200188657600080fd5b505af11580156200189b573d6000803e3d6000fd5b505050506040513d6020811015620018b257600080fd5b50519150620018c2843362001a33565b60080154600160a060020a03169050620018e28362000576863362001a33565b620018ee853362001a33565b600a0155604080517fd0047acf000000000000000000000000000000000000000000000000000000008152600160a060020a0383811660048301526024820186905260006044830181905292519085169263d0047acf92606480820193602093909283900390910190829087803b1580156200196957600080fd5b505af11580156200197e573d6000803e3d6000fd5b505050506040513d60208110156200199557600080fd5b50506040805184815290513391600160a060020a038716917f9a2331701430ef95fa157fc5598820b278d8225e8a51263887abb0e1e2b06d979181900360200190a350505050565b600454600160a060020a031681565b600560209081526000928352604080842090915290825290205461ffff1681565b600154600160a060020a0316331462001a2557600080fd5b62001a308162001d39565b50565b600160a060020a03808316600090815260056020908152604080832093851683529290529081205460068054909161ffff1690811062001a6f57fe5b90600052602060002090600c0201905092915050565b8181018281101562000ffa57fe5b600062001aa08262001ae0565b151562001aac57600080fd5b62001ad962001aba62001db8565b62001acc858563ffffffff62001dcc16565b9063ffffffff62001df916565b9392505050565b600062001aec62001e0f565b821015801562000ffa575062001b0162001db8565b82111592915050565b600062001b178262001ae0565b151562001b2357600080fd5b62000ffa62001b3162001e14565b8390600a0a63ffffffff62001df916565b60008282111562001b4f57fe5b50900390565b600062001bf38285600160a060020a03166370a08231866040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801562001bb857600080fd5b505af115801562001bcd573d6000803e3d6000fd5b505050506040513d602081101562001be457600080fd5b50519063ffffffff62001a8516565b604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a038681166024830152604482018690529151929350908616916323b872dd916064808201926020929091908290030181600087803b15801562001c6957600080fd5b505af115801562001c7e573d6000803e3d6000fd5b505050506040513d602081101562001c9557600080fd5b5050604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152915183928716916370a082319160248083019260209291908290030181600087803b15801562001cfd57600080fd5b505af115801562001d12573d6000803e3d6000fd5b505050506040513d602081101562001d2957600080fd5b50511462001d3357fe5b50505050565b600160a060020a038116151562001d4f57600080fd5b600154604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600062001dc462001e19565b600a0a905090565b600082151562001ddf5750600062000ffa565b5081810281838281151562001df057fe5b041462000ffa57fe5b6000818381151562001e0757fe5b049392505050565b600090565b600290565b600062001e2562001e14565b600201905090565b81548183558181111562001e5c57600c0281600c02836000526020600020918201910162001e5c919062001ef7565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1062001ea45782800160ff1982351617855562001ed4565b8280016001018555821562001ed4579182015b8281111562001ed457823582559160200191906001019062001eb7565b5062001ee292915062001f95565b5090565b6040516114f48062001ffb83390190565b6200100d91905b8082111562001ee257600062001f15828262001fb2565b62001f2560018301600062001fb2565b5060028101805460ff1916905560006004820181905560058201819055600682018190556007820181905560088201805473ffffffffffffffffffffffffffffffffffffffff1990811690915560098301829055600a830191909155600b820180549091169055600c0162001efe565b6200100d91905b8082111562001ee2576000815560010162001f9c565b50805460018160011615610100020316600290046000825580601f1062001fda575062001a30565b601f01602090049060005260206000209081019062001a30919062001f95560060806040523480156200001157600080fd5b50604051620014f4380380620014f48339810160409081528151602080840151928401519184018051909493909301928491849184916200005891600091860190620000bf565b5081516200006e906001906020850190620000bf565b506002805433610100810261010060a860020a031960ff90951660ff199384161794909416939093179091556000918252600860205260409091208054909116600117905550620001649350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200010257805160ff191683800117855562000132565b8280016001018555821562000132579182015b828111156200013257825182559160200191906001019062000115565b506200014092915062000144565b5090565b6200016191905b808211156200014057600081556001016200014b565b90565b61138080620001746000396000f3006080604052600436106101325763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610137578063095ea7b3146101c157806318160ddd146101f957806323b872dd1461022057806327e235e31461024a578063313ce5671461026b57806342966c68146102965780634afbf5ee146102b057806366188463146102d457806370a08231146102f8578063715018a61461031957806379cc67901461032e5780638da5cb5b1461035257806395d89b41146103835780639d2e477714610398578063a9059cbb146103c5578063ba0e0f5e146103e9578063d0047acf1461040a578063d294cb0f14610437578063d73dd62314610458578063d88b86761461047c578063dd62ed3e1461049d578063f2fde38b146104c4575b600080fd5b34801561014357600080fd5b5061014c6104e5565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561018657818101518382015260200161016e565b50505050905090810190601f1680156101b35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101cd57600080fd5b506101e5600160a060020a0360043516602435610573565b604080519115158252519081900360200190f35b34801561020557600080fd5b5061020e6105d9565b60408051918252519081900360200190f35b34801561022c57600080fd5b506101e5600160a060020a03600435811690602435166044356105df565b34801561025657600080fd5b5061020e600160a060020a036004351661073f565b34801561027757600080fd5b50610280610751565b6040805160ff9092168252519081900360200190f35b3480156102a257600080fd5b506102ae60043561075a565b005b3480156102bc57600080fd5b5061020e600160a060020a0360043516602435610767565b3480156102e057600080fd5b506101e5600160a060020a0360043516602435610784565b34801561030457600080fd5b5061020e600160a060020a0360043516610873565b34801561032557600080fd5b506102ae61088e565b34801561033a57600080fd5b506102ae600160a060020a0360043516602435610906565b34801561035e57600080fd5b5061036761099c565b60408051600160a060020a039092168252519081900360200190f35b34801561038f57600080fd5b5061014c6109b0565b3480156103a457600080fd5b506101e5600160a060020a036004351660243563ffffffff60443516610a0a565b3480156103d157600080fd5b506101e5600160a060020a0360043516602435610ab6565b3480156103f557600080fd5b506102ae600160a060020a0360043516610b89565b34801561041657600080fd5b506101e5600160a060020a036004351660243563ffffffff60443516610bc6565b34801561044357600080fd5b5061020e600160a060020a0360043516610d0c565b34801561046457600080fd5b506101e5600160a060020a0360043516602435610e11565b34801561048857600080fd5b506102ae600160a060020a0360043516610eaa565b3480156104a957600080fd5b5061020e600160a060020a0360043581169060243516610eea565b3480156104d057600080fd5b506102ae600160a060020a0360043516610f15565b6000805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561056b5780601f106105405761010080835404028352916020019161056b565b820191906000526020600020905b81548152906001019060200180831161054e57829003601f168201915b505050505081565b336000818152600360209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60055490565b60006105ea84610f3a565b600160a060020a03831615156105ff57600080fd5b61060884610d0c565b82111561061457600080fd5b600160a060020a038416600090815260036020908152604080832033845290915290205482111561064457600080fd5b600160a060020a03841660009081526004602052604090205461066d908363ffffffff6110a916565b600160a060020a0380861660009081526004602052604080822093909355908516815220546106a2908363ffffffff6110bb16565b600160a060020a0380851660009081526004602090815260408083209490945591871681526003825282812033825290915220546106e6908363ffffffff6110a916565b600160a060020a0380861660008181526003602090815260408083203384528252918290209490945580518681529051928716939192600080516020611335833981519152929181900390910190a35060019392505050565b60046020526000908152604090205481565b60025460ff1681565b61076433826110ce565b50565b600660209081526000928352604080842090915290825290205481565b336000908152600360209081526040808320600160a060020a03861684529091528120548083106107d857336000908152600360209081526040808320600160a060020a038816845290915281205561080d565b6107e8818463ffffffff6110a916565b336000908152600360209081526040808320600160a060020a03891684529091529020555b336000818152600360209081526040808320600160a060020a0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b600160a060020a031660009081526004602052604090205490565b6002546101009004600160a060020a031633146108aa57600080fd5b600254604051610100909104600160a060020a0316907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26002805474ffffffffffffffffffffffffffffffffffffffff0019169055565b600160a060020a038216600090815260036020908152604080832033845290915290205481111561093657600080fd5b600160a060020a038216600090815260036020908152604080832033845290915290205461096a908263ffffffff6110a916565b600160a060020a038316600090815260036020908152604080832033845290915290205561099882826110ce565b5050565b6002546101009004600160a060020a031681565b60018054604080516020600284861615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561056b5780601f106105405761010080835404028352916020019161056b565b3360008181526008602052604081205490919060ff161515610a2b57600080fd5b610a358585610ab6565b50428363ffffffff161115610a5757610a576000868563ffffffff16876111b6565b60408051338152600160a060020a038716602082015280820186905263ffffffff8516606082015290517f5075049792a88eedfe4e60bb3ffeac77b4fa7f03108b81fb0b460161b983e2009181900360800190a1506001949350505050565b6000610ac133610f3a565b600160a060020a0383161515610ad657600080fd5b610adf33610d0c565b821115610aeb57600080fd5b33600090815260046020526040902054610b0b908363ffffffff6110a916565b3360009081526004602052604080822092909255600160a060020a03851681522054610b3d908363ffffffff6110bb16565b600160a060020a0384166000818152600460209081526040918290209390935580518581529051919233926000805160206113358339815191529281900390910190a350600192915050565b6002546101009004600160a060020a03163314610ba557600080fd5b600160a060020a03166000908152600860205260409020805460ff19169055565b3360008181526008602052604081205490919060ff161515610be757600080fd5b600554610bfa818663ffffffff6110bb16565b11610c0457600080fd5b428363ffffffff161115610c2557610c256000868563ffffffff16876111b6565b600160a060020a038516600090815260046020526040902054610c4e908563ffffffff6110bb16565b600160a060020a038616600090815260046020526040902055600554610c7a908563ffffffff6110bb16565b600555604080518581529051600160a060020a038716916000916000805160206113358339815191529181900360200190a36040805160008152600160a060020a038716602082015280820186905263ffffffff8516606082015290517f5075049792a88eedfe4e60bb3ffeac77b4fa7f03108b81fb0b460161b983e2009181900360800190a1506001949350505050565b600160a060020a038116600090815260046020908152604080832054600683528184208480529092528220549091901515610d4657610e0b565b5060005b600160a060020a038316600090815260076020526040902054811015610e0b57600160a060020a0383166000908152600760205260409020805442919083908110610d9157fe5b9060005260206000200154101515610e0357600160a060020a0383166000908152600660209081526040808320600790925282208054610e0093919085908110610dd757fe5b9060005260206000200154815260200190815260200160002054836110a990919063ffffffff16565b91505b600101610d4a565b50919050565b336000908152600360209081526040808320600160a060020a0386168452909152812054610e45908363ffffffff6110bb16565b336000818152600360209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b6002546101009004600160a060020a03163314610ec657600080fd5b600160a060020a03166000908152600860205260409020805460ff19166001179055565b600160a060020a03918216600090815260036020908152604080832093909416825291909152205490565b6002546101009004600160a060020a03163314610f3157600080fd5b610764816112ab565b600160a060020a03811660009081526006602090815260408083208380529091528120541515610f6957610998565b5060005b600160a060020a03821660009081526007602052604090205481101561099857600160a060020a0382166000908152600760205260409020805442919083908110610fb457fe5b906000526020600020015410156110a157600160a060020a038216600090815260066020908152604080832060079092528220805461103f93919085908110610ff957fe5b60009182526020808320909101548352828101939093526040918201812054600160a060020a03871682526006845282822082805290935220549063ffffffff6110a916565b600160a060020a0383166000818152600660209081526040808320838052808352818420959095559282526007905290812080549192918391908590811061108357fe5b90600052602060002001548152602001908152602001600020819055505b600101610f6d565b6000828211156110b557fe5b50900390565b818101828110156110c857fe5b92915050565b6110d782610f3a565b6110e082610d0c565b8111156110ec57600080fd5b600160a060020a038216600090815260046020526040902054611115908263ffffffff6110a916565b600160a060020a038316600090815260046020526040902055600554611141908263ffffffff6110a916565b600555604080518281529051600160a060020a038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a2604080518281529051600091600160a060020a038516916000805160206113358339815191529181900360200190a35050565b600160a060020a03831660009081526006602090815260408083208380529091529020546111ea908263ffffffff6110bb16565b600160a060020a0384166000908152600660209081526040808320838052909152808220929092558381522054151561124957600160a060020a0383166000908152600760209081526040822080546001810182559083529120018290555b600160a060020a038316600090815260066020908152604080832085845290915290205461127d908263ffffffff6110bb16565b600160a060020a03909316600090815260066020908152604080832094835293905291909120919091555050565b600160a060020a03811615156112c057600080fd5b600254604051600160a060020a0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360028054600160a060020a039092166101000274ffffffffffffffffffffffffffffffffffffffff00199092169190911790555600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582032e10203dcbab0ee1413110ee779200c5145d19d538d974c007e2d373697c5e70029a165627a7a72305820b196bb66cdee7d7907c5872c259262279a115ca34b48a797cba89354ccbe9ba20029", - "sourceMap": "471:9056:8:-;;;487:1:28;657:51;;1923:490:8;8:9:-1;5:2;;;30:1;27;20:12;5:2;1923:490:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;123:7:26;:18;;;567:5:31;:18;;-1:-1:-1;;;;;;567:18:31;575:10;567:18;;;1923:490:8;;;-1:-1:-1;;;;;2116:28:8;;;;2108:37;;;;;;-1:-1:-1;;;;;2163:22:8;;;;2155:31;;;;;;-1:-1:-1;;;;;2204:24:8;;;;2196:33;;;;;;2240:9;:22;;-1:-1:-1;;;;;2240:22:8;;;-1:-1:-1;;;;;;2240:22:8;;;;;;;2272:13;:30;;;;;;;-1:-1:-1;;;;;;2272:30:8;;;;;;2312:7;:18;;;;;;;;;;;;;;;2340:14;:23;;;;;2240:22;2340:23;;;:::i;:::-;;1923:490;;;;471:9056;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;471:9056:8;;;;;-1:-1:-1;;471:9056:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;471:9056:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;", - "deployedSourceMap": "471:9056:8:-;;;;;;;;;-1:-1:-1;;;471:9056:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6205:1625;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6205:1625:8;-1:-1:-1;;;;;6205:1625:8;;;;;;;;;;;842:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;842:35:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;842:35:8;-1:-1:-1;;;;;842:35:8;;;;;;;;;;;;;;;;-1:-1:-1;;;;;842:35:8;-1:-1:-1;;;;;842:35:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;842:35:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;842:35:8;;;;;;;;;;;;;;;;;;;;;;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;842:35:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2419:1760;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2419:1760:8;-1:-1:-1;;;;;2419:1760:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8894:188;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8894:188:8;-1:-1:-1;;;;;8894:188:8;;;;;;;;;;;;;;-1:-1:-1;;;;;8894:188:8;;;;;;;;;;;;;;9214:97;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9214:97:8;;;;595:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;595:32:8;;;;53:19:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;53:19:26;;;;;;;;;;;;;;;;;;;;1018:28:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1018:28:8;;;;4333:1368;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4333:1368:8;-1:-1:-1;;;;;4333:1368:8;;;;;;;1001:111:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1001:111:31;;;;9088:120:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9088:120:8;-1:-1:-1;;;;;9088:120:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;9088:120:8;;;;;;;;;;;;;;;;;238:20:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:31;;;;978:34:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;978:34:8;;;;;;;;;;;;;;;;;;;;;;;7836:1052;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7836:1052:8;-1:-1:-1;;;;;7836:1052:8;;;;;;;633:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;633:35:8;;;;761:75;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;761:75:8;-1:-1:-1;;;;;761:75:8;;;;;;;;;;1274:103:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1274:103:31;-1:-1:-1;;;;;1274:103:31;;;;;6205:1625:8;6669:13;6736:23;487:1:28;1128:14;;:39;1120:48;;;;;;;;584:1;1174:40;;6322:42:8;6339:12;6353:10;6322:16;:42::i;:::-;6380:10;6322:69;;;;:57;;;;;:69;;;;;;;;:77;;:69;:77;6314:86;;;;;;6484:81;6551:13;6484:42;6501:12;6515:10;6484:16;:42::i;:::-;:62;;;;:81;:66;:81;:::i;:::-;6418:42;6435:12;6449:10;6418:16;:42::i;:::-;:62;;;:147;;6410:156;;;;;;6655:1;6584:42;6601:12;6615:10;6584:16;:42::i;:::-;:59;;;-1:-1:-1;;;;;6584:59:8;:73;6576:82;;;;;;6685:9;;:40;;;-1:-1:-1;;;;;6685:40:8;;-1:-1:-1;;;;;6685:40:8;;;;;;;;;:9;;;;;:26;;:40;;;;;;;;;;;;;;:9;;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;6685:40:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6685:40:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6685:40:8;6762:7;;6882:13;;6685:40;;-1:-1:-1;;;;;;6762:7:8;;;;:23;;6807:12;;6685:40;;6863:5;;6882:13;;;;6909:42;6807:12;6940:10;6909:16;:42::i;:::-;:56;;;6979:42;6996:12;7010:10;6979:16;:42::i;:::-;:63;;;7056:42;7073:12;7087:10;7056:16;:42::i;:::-;:60;;;7130:9;;6762:411;;;-1:-1:-1;;;6762:411:8;;;;;;-1:-1:-1;;;;;6762:411:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7130:9;;;;6762:411;;;;7153:10;6762:411;;;;;;;;;;;;;;;;;;;;7130:9;6762:411;;;;5:2:-1;;;;30:1;27;20:12;5:2;6762:411:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6762:411:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6762:411:8;;-1:-1:-1;6762:411:8;7184:42;7201:12;7215:10;7184:16;:42::i;:::-;:59;;:71;;-1:-1:-1;;7184:71:8;-1:-1:-1;;;;;7184:71:8;;;;;;7265:35;;;;;;;;;;;;;;;:24;;;;;;:35;;;;;-1:-1:-1;;7265:35:8;;;;;;;;-1:-1:-1;7265:24:8;:35;;;5:2:-1;;;;30:1;27;20:12;5:2;7265:35:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7265:35:8;;;;7381:1;7315:42;7332:12;7346:10;7315:16;:42::i;:::-;:63;;;:67;7311:376;;;7398:9;;-1:-1:-1;;;;;7398:9:8;:17;7439:12;7478:9;7506:156;7598:42;7439:12;7629:10;7598:16;:42::i;:::-;:63;;;7506:42;7523:12;7537:10;7506:16;:42::i;:::-;:62;;;;:156;:91;:156;:::i;:::-;7398:278;;;-1:-1:-1;;;7398:278:8;;;;;;-1:-1:-1;;;;;7398:278:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7398:278:8;;;;5:2:-1;;;;30:1;27;20:12;5:2;7398:278:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7398:278:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;7311:376:8;7697:49;7718:12;7732:13;7697:20;:49::i;:::-;7762:61;;;;;;;;7797:10;;-1:-1:-1;;;;;7762:61:8;;;;;;;;;;;;-1:-1:-1;;487:1:28;1227:14;:38;-1:-1:-1;;;6205:1625:8:o;842:35::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;842:35:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;842:35:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;842:35:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;842:35:8;;-1:-1:-1;842:35:8;;;;-1:-1:-1;;;;;842:35:8;;;;;;;:::o;2419:1760::-;719:5:31;;3341:12:8;;-1:-1:-1;;;;;719:5:31;705:10;:19;697:28;;;;;;-1:-1:-1;;;;;2741:24:8;;;;2733:33;;;;;;-1:-1:-1;;;;;2784:26:8;;;;2776:35;;;;;;2829:22;:10;:20;:22::i;:::-;:56;;;;;2882:3;2855:24;:10;:22;:24::i;:::-;:30;2829:56;2821:65;;;;;;;;2904:25;:13;:23;:25::i;:::-;:62;;;;;2963:3;2933:27;:13;:25;:27::i;:::-;:33;2904:62;2896:71;;;;;;;;2985:32;:20;:30;:32::i;:::-;:76;;;;;3058:3;3021:34;:20;:32;:34::i;:::-;:40;2985:76;2977:85;;;;;;;;3080:29;:17;:27;:29::i;:::-;:70;;;;;3147:3;3113:31;:17;:29;:31::i;:::-;:37;3080:70;3072:79;;;;;;;;3228:12;-1:-1:-1;;;;;3169:71:8;:42;3186:12;3200:10;3169:16;:42::i;:::-;:55;;;-1:-1:-1;;;;;3169:55:8;:71;;3161:80;;;;;;3260:42;3277:12;3291:10;3260:16;:42::i;:::-;-1:-1:-1;;;;;3260:69:8;;;;;;:57;;;;;:69;;;;;;;;3259:70;3251:79;;;;;;3363:14;:21;;;;3341:44;;3444:5;3396:19;:33;3416:12;-1:-1:-1;;;;;3396:33:8;-1:-1:-1;;;;;3396:33:8;;;;;;;;;;;;:45;3430:10;-1:-1:-1;;;;;3396:45:8;-1:-1:-1;;;;;3396:45:8;;;;;;;;;;;;;:53;;;;;;;;;;;;;;;;;;3490:14;:23;;;;;;;;;;;:::i;:::-;3460:20;;:54;;;;;;;;;;;;;;;;;;3525:18;:32;3544:12;-1:-1:-1;;;;;3525:32:8;-1:-1:-1;;;;;3525:32:8;;;;;;;;;;;;3563:10;3525:49;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;3525:49:8;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3525:49:8;;;;;-1:-1:-1;;;;;3525:49:8;;;;;;;3636:4;3585:14;3600:5;3585:21;;;;;;;;;;;;;;;;;;;;;;:36;;:48;3622:10;-1:-1:-1;;;;;3585:48:8;-1:-1:-1;;;;;3585:48:8;;;;;;;;;;;;;:55;;;;;;;;;;;;;;;;;;3679:4;;3650:14;3665:5;3650:21;;;;;;;;;;;;;;;;;;;;:33;;:21;;;;;;:33;:::i;:::-;;3724:6;;3693:14;3708:5;3693:21;;;;;;;;;;;;;;;;;;;;;;:28;;:37;;;;;;;:::i;:::-;;3773:8;3740:14;3755:5;3740:21;;;;;;;;;;;;;;;;;;;;;;:30;;;:41;;;;;;;;;;;;;;;;;;3826:10;3791:14;3806:5;3791:21;;;;;;;;;;;;;;;;;;;;;;:32;;:45;;;;3884:13;3846:14;3861:5;3846:21;;;;;;;;;;;;;;;;;;;;;;:35;;:51;;;;3952:20;3907:14;3922:5;3907:21;;;;;;;;;;;;;;;;;;;;;;:42;;:65;;;;4024:17;3982:14;3997:5;3982:21;;;;;;;;;;;;;;;;;;;;;;:39;;:59;;;;4088:12;4051:14;4066:5;4051:21;;;;;;;;;;;;;;;;;;;;;;:34;;;:49;;;;;-1:-1:-1;;;;;4051:49:8;;;;;-1:-1:-1;;;;;4051:49:8;;;;;;4147:10;-1:-1:-1;;;;;4116:56:8;4133:12;-1:-1:-1;;;;;4116:56:8;;4159:4;;4165:6;;4116:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4116:56:8;;;;;;;;;;;;;;-1:-1:-1;4116:56:8;;-1:-1:-1;;;;;;;4116:56:8;2419:1760;;;;;;;;;;;;:::o;8894:188::-;8988:7;9014:44;9031:12;9045;9014:16;:44::i;:::-;:61;;;-1:-1:-1;;;;;9014:61:8;;-1:-1:-1;8894:188:8;;;;;:::o;9214:97::-;9295:9;;-1:-1:-1;;;;;9295:9:8;9214:97;;:::o;595:32::-;;;-1:-1:-1;;;;;595:32:8;;:::o;53:19:26:-;;;;:::o;1018:28:8:-;;;;;;-1:-1:-1;;;;;1018:28:8;;:::o;4333:1368::-;4673:19;4805:31;4952:8;5068:21;5414:13;487:1:28;1128:14;;:39;1120:48;;;;;;;;584:1;1174:40;;4437:1:8;4428:10;;4420:19;;;;;;-1:-1:-1;;;;;4457:26:8;;;;4449:35;;;;;;4561:12;-1:-1:-1;;;;;4502:71:8;:42;4519:12;4533:10;4502:16;:42::i;:::-;:55;;;-1:-1:-1;;;;;4502:55:8;:71;4494:80;;;;;;4592:42;4609:12;4623:10;4592:16;:42::i;:::-;4650:10;4592:69;;;;:57;;;;;:69;;;;;;;;4584:78;;;;;;;;4741:42;;;;;;4757:10;4741:42;;;;4777:4;4741:42;;;;;;4709:12;;-1:-1:-1;4787:6:8;;-1:-1:-1;;;;;4741:15:8;;;;;:42;;;;;;;;;;;;;;;-1:-1:-1;4741:15:8;:42;;;5:2:-1;;;;30:1;27;20:12;5:2;4741:42:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4741:42:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4741:42:8;:52;;4733:61;;;;;;4839:42;4856:12;4870:10;4839:16;:42::i;:::-;4805:76;;4920:11;:20;;;;;;;;;;;;4900:40;;:5;-1:-1:-1;;;;;4900:14:8;;:16;;;;;-1:-1:-1;;;4900:16:8;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4900:16:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4900:16:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4900:16:8;:40;;;4892:49;;;;;;4988:1;4963:11;:22;;;:26;:95;;5057:1;4963:95;;;5019:22;;;;5004:38;;:6;;:38;:14;:38;:::i;:::-;4952:106;-1:-1:-1;5092:15:8;:6;4952:106;5092:15;:10;:15;:::i;:::-;5146:9;;5068:39;;-1:-1:-1;5118:56:8;;5139:5;;-1:-1:-1;;;;;5146:9:8;5068:39;5118:20;:56::i;:::-;5212:13;;5184:47;;5205:5;;5212:13;;;-1:-1:-1;;;;;5212:13:8;5227:3;5184:20;:47::i;:::-;5276:31;;;;:53;;5312:16;5276:53;:35;:53;:::i;:::-;5242:31;;;:87;5344:9;;:40;;;-1:-1:-1;;;;;5344:40:8;;-1:-1:-1;;;;;5344:40:8;;;;;;;;;5396:1;;5344:9;;;;:26;;:40;;;;;;;;;;;;;;;5396:1;5344:9;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;5344:40:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5344:40:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5344:40:8;-1:-1:-1;;;;;5344:54:8;;5340:242;;;5479:20;;;;5441:11;;5459:18;;;;5479:20;;5430:70;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;5430:70:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5430:70:8;;;;;;;;-1:-1:-1;;5430:70:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;5515:9:8;;:56;;;;;;-1:-1:-1;;;;;5515:56:8;;;;;;;;;;;;;;;;5414:86;;-1:-1:-1;5515:9:8;;;:27;;:56;;;;;:9;;:56;;;;;;;;:9;;:56;;;5:2:-1;;;;30:1;27;20:12;5:2;5515:56:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5515:56:8;;;;5340:242;5653:9;;:40;;;-1:-1:-1;;;;;5653:40:8;;-1:-1:-1;;;;;5597:97:8;;;5653:40;;;;;;;;5623:10;;5597:97;;5635:16;;5653:9;;;;:26;;:40;;;;;;;;;;;;;;;-1:-1:-1;5653:9:8;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;5653:40:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5653:40:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5653:40:8;5597:97;;;;;;-1:-1:-1;;;;;5597:97:8;;;5653:40;5597:97;;;;;;;;;;;;-1:-1:-1;;487:1:28;1227:14;:38;-1:-1:-1;;;;;4333:1368:8:o;1001:111:31:-;719:5;;-1:-1:-1;;;;;719:5:31;705:10;:19;697:28;;;;;;1077:5;;1058:25;;-1:-1:-1;;;;;1077:5:31;;;;1058:25;;1077:5;;1058:25;1089:5;:18;;-1:-1:-1;;1089:18:31;;;1001:111::o;9088:120:8:-;-1:-1:-1;;;;;9176:25:8;;;;;;:18;:25;;;;;;;;;9169:32;;;;;;;;;;;;;;;;;9148:9;;9169:32;;;9176:25;9169:32;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9169:32:8;;;;;;;;;;;;;;;;;;;;;;;9088:120;;;:::o;238:20:31:-;;;-1:-1:-1;;;;;238:20:31;;:::o;978:34:8:-;;;;;;:::o;7836:1052::-;8434:12;;7933:17;;;7925:26;;;;;;-1:-1:-1;;;;;7969:26:8;;;;7961:35;;;;;;8014:9;;:40;;;-1:-1:-1;;;;;8014:40:8;;-1:-1:-1;;;;;8014:40:8;;;;;;;;;8066:1;;8014:9;;;;:26;;:40;;;;;;;;;;;;;;;8066:1;8014:9;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;8014:40:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8014:40:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8014:40:8;-1:-1:-1;;;;;8014:54:8;;;8006:63;;;;;;8158:1;8087:42;8104:12;8118:10;8087:16;:42::i;:::-;:59;;;-1:-1:-1;;;;;8087:59:8;:73;;8079:82;;;;;;8179:42;8196:12;8210:10;8179:16;:42::i;:::-;8237:10;8179:69;;;;:57;;;;;:69;;;;;;;;:77;;:69;:77;8171:86;;;;;;8341:81;8408:13;8341:42;8358:12;8372:10;8341:16;:42::i;:81::-;8275:42;8292:12;8306:10;8275:16;:42::i;:::-;:62;;;:147;;8267:156;;;;;;8449:9;;:40;;;-1:-1:-1;;;;;8449:40:8;;-1:-1:-1;;;;;8449:40:8;;;;;;;;;:9;;;;;:26;;:40;;;;;;;;;;;;;;:9;;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;8449:40:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8449:40:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8449:40:8;;-1:-1:-1;8525:42:8;8542:12;8556:10;8525:16;:42::i;:::-;:59;;;-1:-1:-1;;;;;8525:59:8;;-1:-1:-1;8660:94:8;8740:13;8660:42;8677:12;8691:10;8660:16;:42::i;:94::-;8595:42;8612:12;8626:10;8595:16;:42::i;:::-;:62;;:159;8765:39;;;;;;-1:-1:-1;;;;;8765:39:8;;;;;;;;;;;;;8802:1;8765:39;;;;;;;;:10;;;;;;:39;;;;;;;;;;;;;;;;;;:10;:39;;;5:2:-1;;;;30:1;27;20:12;5:2;8765:39:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8765:39:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;8820:61:8;;;;;;;;8855:10;;-1:-1:-1;;;;;8820:61:8;;;;;;;;8765:39;8820:61;;;7836:1052;;;;:::o;633:35::-;;;-1:-1:-1;;;;;633:35:8;;:::o;761:75::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1274:103:31:-;719:5;;-1:-1:-1;;;;;719:5:31;705:10;:19;697:28;;;;;;1343:29;1362:9;1343:18;:29::i;:::-;1274:103;:::o;9317:208:8:-;-1:-1:-1;;;;;9470:33:8;;;9410:26;9470:33;;;:19;:33;;;;;;;;:47;;;;;;;;;;;;9455:14;:63;;:14;;9470:47;;;9455:63;;;;;;;;;;;;;;;;9448:70;;9317:208;;;;:::o;1238:128:30:-;1319:7;;;1339;;;;1332:15;;;406:142:14;464:4;488:13;498:2;488:9;:13::i;:::-;480:22;;;;;;;;520:21;535:5;:3;:5::i;:::-;520:10;:2;527;520:10;:6;:10;:::i;:::-;:14;:21;:14;:21;:::i;:::-;513:28;406:142;-1:-1:-1;;;406:142:14:o;554:107::-;605:4;634:5;:3;:5::i;:::-;628:2;:11;;:26;;;;;649:5;:3;:5::i;:::-;643:2;:11;;621:33;554:107;-1:-1:-1;;554:107:14:o;806:139::-;859:4;883:13;893:2;883:9;:13::i;:::-;875:22;;;;;;;;915:23;928:9;:7;:9::i;:::-;915:2;;922;:15;915:23;:6;:23;:::i;1060:116:30:-;1120:7;1142:8;;;;1135:16;;;;-1:-1:-1;1164:7:30;;;1060:116::o;5782:417:8:-;5970:20;5993:30;6017:5;5993;-1:-1:-1;;;;;5993:15:8;;6009:2;5993:19;;;;;-1:-1:-1;;;5993:19:8;;;;;;;-1:-1:-1;;;;;5993:19:8;-1:-1:-1;;;;;5993:19:8;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5993:19:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5993:19:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5993:19:8;;:30;:23;:30;:::i;:::-;6034:41;;;;;;6053:10;6034:41;;;;-1:-1:-1;;;;;6034:41:8;;;;;;;;;;;;;;;5970:53;;-1:-1:-1;6034:18:8;;;;;;:41;;;;;;;;;;;;;;;-1:-1:-1;6034:18:8;:41;;;5:2:-1;;;;30:1;27;20:12;5:2;6034:41:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6034:41:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;6153:19:8;;;;;;-1:-1:-1;;;;;6153:19:8;;;;;;;;;6176:15;;6153;;;;;:19;;;;;6034:41;;6153:19;;;;;;;-1:-1:-1;6153:15:8;:19;;;5:2:-1;;;;30:1;27;20:12;5:2;6153:19:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6153:19:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6153:19:8;:38;6146:46;;;;5782:417;;;;:::o;1512:171:31:-;-1:-1:-1;;;;;1582:23:31;;;;1574:32;;;;;;1638:5;;1617:38;;-1:-1:-1;;;;;1617:38:31;;;;1638:5;;1617:38;;1638:5;;1617:38;1661:5;:17;;-1:-1:-1;;1661:17:31;-1:-1:-1;;;;;1661:17:31;;;;;;;;;;1512:171::o;335:65:14:-;371:4;392:5;:3;:5::i;:::-;386:2;:11;379:18;;335:65;:::o;203:380:30:-;263:9;489:7;;485:36;;;-1:-1:-1;513:1:30;506:8;;485:36;-1:-1:-1;531:7:30;;;536:2;531;:7;551:6;;;;;;;;:12;544:20;;;665:283;725:7;941:2;936;:7;;;;;;;;;665:283;-1:-1:-1;;;665:283:30:o;275:55:14:-;311:4;275:55;:::o;139:59::-;194:1;139:59;:::o;203:67::-;239:4;258:9;:7;:9::i;:::-;254:1;:13;247:20;;203:67;:::o;471:9056:8:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;471:9056:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;471:9056:8;;;-1:-1:-1;471:9056:8;:::i;:::-;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;471:9056:8;;;;;-1:-1:-1;;471:9056:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;471:9056:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::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 \"./interfaces/IW12CrowdsaleFactory.sol\";\nimport \"./libs/Percent.sol\";\nimport \"./token/WToken.sol\";\nimport \"./token/exchanger/ITokenExchanger.sol\";\nimport \"./versioning/Versionable.sol\";\n\n\ncontract W12Lister is Versionable, Ownable, ReentrancyGuard {\n using SafeMath for uint;\n using Percent for uint;\n\n ITokenExchanger public exchanger;\n IW12CrowdsaleFactory public factory;\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 address public serviceWallet;\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 address _serviceWallet,\n IW12CrowdsaleFactory _factory,\n ITokenExchanger _exchanger\n ) Versionable(version) public {\n require(_serviceWallet != address(0));\n require(_factory != address(0));\n require(_exchanger != address(0));\n\n exchanger = _exchanger;\n serviceWallet = _serviceWallet;\n factory = _factory;\n approvedTokens.length++; // zero-index element should never be used\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 onlyOwner {\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(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 save 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(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 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", + "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", "sourcePath": "/home/circleci/code/contracts/W12Lister.sol", "ast": { "absolutePath": "/home/circleci/code/contracts/W12Lister.sol", "exportedSymbols": { "W12Lister": [ - 4273 + 1058 ] }, - "id": 4274, + "id": 1059, "nodeType": "SourceUnit", "nodes": [ { - "id": 3349, + "id": 66, "literals": [ "solidity", "^", @@ -526,104 +657,126 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:8" + "src": "0:24:1" }, { "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 3350, + "id": 67, "nodeType": "ImportDirective", - "scope": 4274, - "sourceUnit": 6855, - "src": "26:59:8", + "scope": 1059, + "sourceUnit": 9603, + "src": "26:59:1", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 3351, + "id": 68, "nodeType": "ImportDirective", - "scope": 4274, - "sourceUnit": 6941, - "src": "86:63:8", + "scope": 1059, + "sourceUnit": 9689, + "src": "86:63:1", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "openzeppelin-solidity/contracts/ReentrancyGuard.sol", "file": "openzeppelin-solidity/contracts/ReentrancyGuard.sol", - "id": 3352, + "id": 69, "nodeType": "ImportDirective", - "scope": 4274, - "sourceUnit": 6691, - "src": "150:61:8", + "scope": 1059, + "sourceUnit": 9332, + "src": "150:61:1", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "id": 3353, + "id": 70, + "nodeType": "ImportDirective", + "scope": 1059, + "sourceUnit": 9766, + "src": "212:63:1", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/access/rbac/RBAC.sol", + "file": "openzeppelin-solidity/contracts/access/rbac/RBAC.sol", + "id": 71, + "nodeType": "ImportDirective", + "scope": 1059, + "sourceUnit": 9439, + "src": "276:62:1", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/crowdsale/factories/IW12CrowdsaleFactory.sol", + "file": "./crowdsale/factories/IW12CrowdsaleFactory.sol", + "id": 72, "nodeType": "ImportDirective", - "scope": 4274, - "sourceUnit": 7018, - "src": "212:63:8", + "scope": 1059, + "sourceUnit": 4452, + "src": "339:56:1", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/home/circleci/code/contracts/interfaces/IW12CrowdsaleFactory.sol", - "file": "./interfaces/IW12CrowdsaleFactory.sol", - "id": 3354, + "absolutePath": "/home/circleci/code/contracts/wallets/IWallets.sol", + "file": "./wallets/IWallets.sol", + "id": 73, "nodeType": "ImportDirective", - "scope": 4274, - "sourceUnit": 4454, - "src": "276:47:8", + "scope": 1059, + "sourceUnit": 9240, + "src": "396:32:1", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/libs/Percent.sol", "file": "./libs/Percent.sol", - "id": 3355, + "id": 74, "nodeType": "ImportDirective", - "scope": 4274, - "sourceUnit": 4632, - "src": "324:28:8", + "scope": 1059, + "sourceUnit": 5104, + "src": "429:28:1", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/token/WToken.sol", "file": "./token/WToken.sol", - "id": 3356, + "id": 75, "nodeType": "ImportDirective", - "scope": 4274, - "sourceUnit": 5926, - "src": "353:28:8", + "scope": 1059, + "sourceUnit": 8487, + "src": "458:28:1", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/token/exchanger/ITokenExchanger.sol", "file": "./token/exchanger/ITokenExchanger.sol", - "id": 3357, + "id": 76, "nodeType": "ImportDirective", - "scope": 4274, - "sourceUnit": 6188, - "src": "382:47:8", + "scope": 1059, + "sourceUnit": 8749, + "src": "487:47:1", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/versioning/Versionable.sol", "file": "./versioning/Versionable.sol", - "id": 3358, + "id": 77, "nodeType": "ImportDirective", - "scope": 4274, - "sourceUnit": 6510, - "src": "430:38:8", + "scope": 1059, + "sourceUnit": 9071, + "src": "535:38:1", "symbolAliases": [], "unitAlias": "" }, @@ -633,97 +786,117 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 3359, + "id": 78, "name": "Versionable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6509, - "src": "493:11:8", + "referencedDeclaration": 9070, + "src": "598:11:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_Versionable_$6509", + "typeIdentifier": "t_contract$_Versionable_$9070", "typeString": "contract Versionable" } }, - "id": 3360, + "id": 79, + "nodeType": "InheritanceSpecifier", + "src": "598:11:1" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 80, + "name": "RBAC", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9438, + "src": "611:4:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RBAC_$9438", + "typeString": "contract RBAC" + } + }, + "id": 81, "nodeType": "InheritanceSpecifier", - "src": "493:11:8" + "src": "611:4:1" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 3361, + "id": 82, "name": "Ownable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6940, - "src": "506:7:8", + "referencedDeclaration": 9688, + "src": "617:7:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$6940", + "typeIdentifier": "t_contract$_Ownable_$9688", "typeString": "contract Ownable" } }, - "id": 3362, + "id": 83, "nodeType": "InheritanceSpecifier", - "src": "506:7:8" + "src": "617:7:1" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 3363, + "id": 84, "name": "ReentrancyGuard", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6690, - "src": "515:15:8", + "referencedDeclaration": 9331, + "src": "626:15:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ReentrancyGuard_$6690", + "typeIdentifier": "t_contract$_ReentrancyGuard_$9331", "typeString": "contract ReentrancyGuard" } }, - "id": 3364, + "id": 85, "nodeType": "InheritanceSpecifier", - "src": "515:15:8" + "src": "626:15:1" } ], "contractDependencies": [ - 5925, - 6509, - 6690, - 6940 + 8486, + 9070, + 9331, + 9438, + 9688 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 4273, + "id": 1058, "linearizedBaseContracts": [ - 4273, - 6690, - 6940, - 6509 + 1058, + 9331, + 9688, + 9438, + 9070 ], "name": "W12Lister", "nodeType": "ContractDefinition", "nodes": [ { - "id": 3367, + "id": 88, "libraryName": { "contractScope": null, - "id": 3365, + "id": 86, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6854, - "src": "543:8:8", + "referencedDeclaration": 9602, + "src": "654:8:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$6854", + "typeIdentifier": "t_contract$_SafeMath_$9602", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "537:24:8", + "src": "648:24:1", "typeName": { - "id": 3366, + "id": 87, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "556:4:8", + "src": "667:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -731,54 +904,140 @@ } }, { - "id": 3370, + "id": 91, "libraryName": { "contractScope": null, - "id": 3368, + "id": 89, "name": "Percent", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4631, - "src": "572:7:8", + "referencedDeclaration": 5103, + "src": "683:7:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_Percent_$4631", + "typeIdentifier": "t_contract$_Percent_$5103", "typeString": "library Percent" } }, "nodeType": "UsingForDirective", - "src": "566:23:8", + "src": "677:23:1", "typeName": { - "id": 3369, + "id": 90, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "584:4:8", + "src": "695:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } }, + { + "constant": true, + "id": 94, + "name": "SERVICE_WALLET_ID", + "nodeType": "VariableDeclaration", + "scope": 1058, + "src": "706:36:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 92, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "706:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "31", + "id": 93, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "741:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "visibility": "internal" + }, + { + "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": 3372, + "id": 99, "name": "exchanger", "nodeType": "VariableDeclaration", - "scope": 4273, - "src": "595:32:8", + "scope": 1058, + "src": "789:32:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$6187", + "typeIdentifier": "t_contract$_ITokenExchanger_$8748", "typeString": "contract ITokenExchanger" }, "typeName": { "contractScope": null, - "id": 3371, + "id": 98, "name": "ITokenExchanger", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6187, - "src": "595:15:8", + "referencedDeclaration": 8748, + "src": "789:15:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$6187", + "typeIdentifier": "t_contract$_ITokenExchanger_$8748", "typeString": "contract ITokenExchanger" } }, @@ -787,26 +1046,26 @@ }, { "constant": false, - "id": 3374, + "id": 101, "name": "factory", "nodeType": "VariableDeclaration", - "scope": 4273, - "src": "633:35:8", + "scope": 1058, + "src": "827:35:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4453", + "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4451", "typeString": "contract IW12CrowdsaleFactory" }, "typeName": { "contractScope": null, - "id": 3373, + "id": 100, "name": "IW12CrowdsaleFactory", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4453, - "src": "633:20:8", + "referencedDeclaration": 4451, + "src": "827:20:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4453", + "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4451", "typeString": "contract IW12CrowdsaleFactory" } }, @@ -815,11 +1074,39 @@ }, { "constant": false, - "id": 3380, + "id": 103, + "name": "wallets", + "nodeType": "VariableDeclaration", + "scope": 1058, + "src": "868:23:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWallets_$9239", + "typeString": "contract IWallets" + }, + "typeName": { + "contractScope": null, + "id": 102, + "name": "IWallets", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9239, + "src": "868:8:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWallets_$9239", + "typeString": "contract IWallets" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 109, "name": "approvedTokensIndex", "nodeType": "VariableDeclaration", - "scope": 4273, - "src": "761:75:8", + "scope": 1058, + "src": "984:75:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -827,46 +1114,46 @@ "typeString": "mapping(address => mapping(address => uint16))" }, "typeName": { - "id": 3379, + "id": 108, "keyType": { - "id": 3375, + "id": 104, "name": "address", "nodeType": "ElementaryTypeName", - "src": "770:7:8", + "src": "993:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "761:48:8", + "src": "984:48:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint16_$_$", "typeString": "mapping(address => mapping(address => uint16))" }, "valueType": { - "id": 3378, + "id": 107, "keyType": { - "id": 3376, + "id": 105, "name": "address", "nodeType": "ElementaryTypeName", - "src": "790:7:8", + "src": "1013:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "781:27:8", + "src": "1004:27:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint16_$", "typeString": "mapping(address => uint16)" }, "valueType": { - "id": 3377, + "id": 106, "name": "uint16", "nodeType": "ElementaryTypeName", - "src": "801:6:8", + "src": "1024:6:1", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" @@ -879,36 +1166,36 @@ }, { "constant": false, - "id": 3383, + "id": 112, "name": "approvedTokens", "nodeType": "VariableDeclaration", - "scope": 4273, - "src": "842:35:8", + "scope": 1058, + "src": "1065:35:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ListedToken_$3455_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_ListedToken_$182_storage_$dyn_storage", "typeString": "struct W12Lister.ListedToken[]" }, "typeName": { "baseType": { "contractScope": null, - "id": 3381, + "id": 110, "name": "ListedToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3455, - "src": "842:11:8", + "referencedDeclaration": 182, + "src": "1065:11:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken" } }, - "id": 3382, + "id": 111, "length": null, "nodeType": "ArrayTypeName", - "src": "842:13:8", + "src": "1065:13:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ListedToken_$3455_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_ListedToken_$182_storage_$dyn_storage_ptr", "typeString": "struct W12Lister.ListedToken[]" } }, @@ -917,11 +1204,11 @@ }, { "constant": false, - "id": 3388, + "id": 117, "name": "approvedOwnersList", "nodeType": "VariableDeclaration", - "scope": 4273, - "src": "921:51:8", + "scope": 1058, + "src": "1144:51:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -929,38 +1216,38 @@ "typeString": "mapping(address => address[])" }, "typeName": { - "id": 3387, + "id": 116, "keyType": { - "id": 3384, + "id": 113, "name": "address", "nodeType": "ElementaryTypeName", - "src": "931:7:8", + "src": "1154:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "921:32:8", + "src": "1144:32:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$", "typeString": "mapping(address => address[])" }, "valueType": { "baseType": { - "id": 3385, + "id": 114, "name": "address", "nodeType": "ElementaryTypeName", - "src": "942:7:8", + "src": "1165:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 3386, + "id": 115, "length": null, "nodeType": "ArrayTypeName", - "src": "942:9:8", + "src": "1165:9:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -972,11 +1259,11 @@ }, { "constant": false, - "id": 3390, + "id": 119, "name": "approvedTokensLength", "nodeType": "VariableDeclaration", - "scope": 4273, - "src": "978:34:8", + "scope": 1058, + "src": "1201:34:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -984,10 +1271,10 @@ "typeString": "uint16" }, "typeName": { - "id": 3389, + "id": 118, "name": "uint16", "nodeType": "ElementaryTypeName", - "src": "978:6:8", + "src": "1201:6:1", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" @@ -996,50 +1283,24 @@ "value": null, "visibility": "public" }, - { - "constant": false, - "id": 3392, - "name": "serviceWallet", - "nodeType": "VariableDeclaration", - "scope": 4273, - "src": "1018:28:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3391, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1018:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, { "anonymous": false, "documentation": null, - "id": 3402, + "id": 129, "name": "OwnerWhitelisted", "nodeType": "EventDefinition", "parameters": { - "id": 3401, + "id": 128, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3394, + "id": 121, "indexed": true, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 3402, - "src": "1076:28:8", + "scope": 129, + "src": "1265:28:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1047,10 +1308,10 @@ "typeString": "address" }, "typeName": { - "id": 3393, + "id": 120, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1076:7:8", + "src": "1265:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1061,12 +1322,12 @@ }, { "constant": false, - "id": 3396, + "id": 123, "indexed": true, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 3402, - "src": "1106:26:8", + "scope": 129, + "src": "1295:26:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1074,10 +1335,10 @@ "typeString": "address" }, "typeName": { - "id": 3395, + "id": 122, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1106:7:8", + "src": "1295:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1088,12 +1349,12 @@ }, { "constant": false, - "id": 3398, + "id": 125, "indexed": false, "name": "name", "nodeType": "VariableDeclaration", - "scope": 3402, - "src": "1134:11:8", + "scope": 129, + "src": "1323:11:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1101,10 +1362,10 @@ "typeString": "string" }, "typeName": { - "id": 3397, + "id": 124, "name": "string", "nodeType": "ElementaryTypeName", - "src": "1134:6:8", + "src": "1323:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -1115,12 +1376,12 @@ }, { "constant": false, - "id": 3400, + "id": 127, "indexed": false, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 3402, - "src": "1147:13:8", + "scope": 129, + "src": "1336:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1128,10 +1389,10 @@ "typeString": "string" }, "typeName": { - "id": 3399, + "id": 126, "name": "string", "nodeType": "ElementaryTypeName", - "src": "1147:6:8", + "src": "1336:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -1141,28 +1402,28 @@ "visibility": "internal" } ], - "src": "1075:86:8" + "src": "1264:86:1" }, - "src": "1053:109:8" + "src": "1242:109:1" }, { "anonymous": false, "documentation": null, - "id": 3412, + "id": 139, "name": "TokenPlaced", "nodeType": "EventDefinition", "parameters": { - "id": 3411, + "id": 138, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3404, + "id": 131, "indexed": true, "name": "originalTokenAddress", "nodeType": "VariableDeclaration", - "scope": 3412, - "src": "1185:36:8", + "scope": 139, + "src": "1374:36:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1170,10 +1431,10 @@ "typeString": "address" }, "typeName": { - "id": 3403, + "id": 130, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1185:7:8", + "src": "1374:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1184,12 +1445,12 @@ }, { "constant": false, - "id": 3406, + "id": 133, "indexed": true, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 3412, - "src": "1223:26:8", + "scope": 139, + "src": "1412:26:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1197,10 +1458,10 @@ "typeString": "address" }, "typeName": { - "id": 3405, + "id": 132, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1223:7:8", + "src": "1412:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1211,12 +1472,12 @@ }, { "constant": false, - "id": 3408, + "id": 135, "indexed": false, "name": "tokenAmount", "nodeType": "VariableDeclaration", - "scope": 3412, - "src": "1251:16:8", + "scope": 139, + "src": "1440:16:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1224,10 +1485,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3407, + "id": 134, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1251:4:8", + "src": "1440:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1238,12 +1499,12 @@ }, { "constant": false, - "id": 3410, + "id": 137, "indexed": false, "name": "placedTokenAddress", "nodeType": "VariableDeclaration", - "scope": 3412, - "src": "1269:26:8", + "scope": 139, + "src": "1458:26:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1251,10 +1512,10 @@ "typeString": "address" }, "typeName": { - "id": 3409, + "id": 136, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1269:7:8", + "src": "1458:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1264,28 +1525,28 @@ "visibility": "internal" } ], - "src": "1184:112:8" + "src": "1373:112:1" }, - "src": "1167:130:8" + "src": "1356:130:1" }, { "anonymous": false, "documentation": null, - "id": 3420, + "id": 147, "name": "CrowdsaleInitialized", "nodeType": "EventDefinition", "parameters": { - "id": 3419, + "id": 146, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3414, + "id": 141, "indexed": true, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 3420, - "src": "1329:28:8", + "scope": 147, + "src": "1518:28:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1293,10 +1554,10 @@ "typeString": "address" }, "typeName": { - "id": 3413, + "id": 140, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1329:7:8", + "src": "1518:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1307,12 +1568,12 @@ }, { "constant": false, - "id": 3416, + "id": 143, "indexed": true, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 3420, - "src": "1359:26:8", + "scope": 147, + "src": "1548:26:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1320,10 +1581,10 @@ "typeString": "address" }, "typeName": { - "id": 3415, + "id": 142, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1359:7:8", + "src": "1548:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1334,12 +1595,12 @@ }, { "constant": false, - "id": 3418, + "id": 145, "indexed": false, "name": "amountForSale", "nodeType": "VariableDeclaration", - "scope": 3420, - "src": "1387:18:8", + "scope": 147, + "src": "1576:18:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1347,10 +1608,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3417, + "id": 144, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1387:4:8", + "src": "1576:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1360,28 +1621,28 @@ "visibility": "internal" } ], - "src": "1328:78:8" + "src": "1517:78:1" }, - "src": "1302:105:8" + "src": "1491:105:1" }, { "anonymous": false, "documentation": null, - "id": 3428, + "id": 155, "name": "CrowdsaleTokenMinted", "nodeType": "EventDefinition", "parameters": { - "id": 3427, + "id": 154, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3422, + "id": 149, "indexed": true, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 3428, - "src": "1439:28:8", + "scope": 155, + "src": "1628:28:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1389,10 +1650,10 @@ "typeString": "address" }, "typeName": { - "id": 3421, + "id": 148, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1439:7:8", + "src": "1628:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1403,12 +1664,12 @@ }, { "constant": false, - "id": 3424, + "id": 151, "indexed": true, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 3428, - "src": "1469:26:8", + "scope": 155, + "src": "1658:26:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1416,10 +1677,10 @@ "typeString": "address" }, "typeName": { - "id": 3423, + "id": 150, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1469:7:8", + "src": "1658:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1430,12 +1691,12 @@ }, { "constant": false, - "id": 3426, + "id": 153, "indexed": false, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 3428, - "src": "1497:11:8", + "scope": 155, + "src": "1686:11:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1443,10 +1704,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3425, + "id": 152, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1497:4:8", + "src": "1686:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1456,21 +1717,21 @@ "visibility": "internal" } ], - "src": "1438:71:8" + "src": "1627:71:1" }, - "src": "1412:98:8" + "src": "1601:98:1" }, { "canonicalName": "W12Lister.ListedToken", - "id": 3455, + "id": 182, "members": [ { "constant": false, - "id": 3430, + "id": 157, "name": "name", "nodeType": "VariableDeclaration", - "scope": 3455, - "src": "1545:11:8", + "scope": 182, + "src": "1734:11:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1478,10 +1739,10 @@ "typeString": "string" }, "typeName": { - "id": 3429, + "id": 156, "name": "string", "nodeType": "ElementaryTypeName", - "src": "1545:6:8", + "src": "1734:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -1492,11 +1753,11 @@ }, { "constant": false, - "id": 3432, + "id": 159, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 3455, - "src": "1566:13:8", + "scope": 182, + "src": "1755:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1504,10 +1765,10 @@ "typeString": "string" }, "typeName": { - "id": 3431, + "id": 158, "name": "string", "nodeType": "ElementaryTypeName", - "src": "1566:6:8", + "src": "1755:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -1518,11 +1779,11 @@ }, { "constant": false, - "id": 3434, + "id": 161, "name": "decimals", "nodeType": "VariableDeclaration", - "scope": 3455, - "src": "1589:14:8", + "scope": 182, + "src": "1778:14:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1530,10 +1791,10 @@ "typeString": "uint8" }, "typeName": { - "id": 3433, + "id": 160, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "1589:5:8", + "src": "1778:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1544,11 +1805,11 @@ }, { "constant": false, - "id": 3438, + "id": 165, "name": "approvedOwners", "nodeType": "VariableDeclaration", - "scope": 3455, - "src": "1613:39:8", + "scope": 182, + "src": "1802:39:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1556,28 +1817,28 @@ "typeString": "mapping(address => bool)" }, "typeName": { - "id": 3437, + "id": 164, "keyType": { - "id": 3435, + "id": 162, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1621:7:8", + "src": "1810:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "1613:24:8", + "src": "1802:24:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { - "id": 3436, + "id": 163, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1632:4:8", + "src": "1821:4:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1589,11 +1850,11 @@ }, { "constant": false, - "id": 3440, + "id": 167, "name": "feePercent", "nodeType": "VariableDeclaration", - "scope": 3455, - "src": "1662:15:8", + "scope": 182, + "src": "1851:15:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1601,10 +1862,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3439, + "id": 166, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1662:4:8", + "src": "1851:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1615,11 +1876,11 @@ }, { "constant": false, - "id": 3442, + "id": 169, "name": "ethFeePercent", "nodeType": "VariableDeclaration", - "scope": 3455, - "src": "1687:18:8", + "scope": 182, + "src": "1876:18:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1627,10 +1888,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3441, + "id": 168, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1687:4:8", + "src": "1876:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1641,11 +1902,11 @@ }, { "constant": false, - "id": 3444, + "id": 171, "name": "WTokenSaleFeePercent", "nodeType": "VariableDeclaration", - "scope": 3455, - "src": "1715:25:8", + "scope": 182, + "src": "1904:25:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1653,10 +1914,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3443, + "id": 170, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1715:4:8", + "src": "1904:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1667,11 +1928,11 @@ }, { "constant": false, - "id": 3446, + "id": 173, "name": "trancheFeePercent", "nodeType": "VariableDeclaration", - "scope": 3455, - "src": "1750:22:8", + "scope": 182, + "src": "1939:22:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1679,10 +1940,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3445, + "id": 172, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1750:4:8", + "src": "1939:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1693,26 +1954,26 @@ }, { "constant": false, - "id": 3448, + "id": 175, "name": "crowdsaleAddress", "nodeType": "VariableDeclaration", - "scope": 3455, - "src": "1782:30:8", + "scope": 182, + "src": "1971:30:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" }, "typeName": { "contractScope": null, - "id": 3447, + "id": 174, "name": "IW12Crowdsale", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4426, - "src": "1782:13:8", + "referencedDeclaration": 1204, + "src": "1971:13:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } }, @@ -1721,11 +1982,11 @@ }, { "constant": false, - "id": 3450, + "id": 177, "name": "tokensForSaleAmount", "nodeType": "VariableDeclaration", - "scope": 3455, - "src": "1822:24:8", + "scope": 182, + "src": "2011:24:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1733,10 +1994,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3449, + "id": 176, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1822:4:8", + "src": "2011:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1747,11 +2008,11 @@ }, { "constant": false, - "id": 3452, + "id": 179, "name": "wTokensIssuedAmount", "nodeType": "VariableDeclaration", - "scope": 3455, - "src": "1856:24:8", + "scope": 182, + "src": "2045:24:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1759,10 +2020,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3451, + "id": 178, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1856:4:8", + "src": "2045:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1773,11 +2034,11 @@ }, { "constant": false, - "id": 3454, + "id": 181, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 3455, - "src": "1890:20:8", + "scope": 182, + "src": "2079:20:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1785,10 +2046,10 @@ "typeString": "address" }, "typeName": { - "id": 3453, + "id": 180, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1890:7:8", + "src": "2079:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1800,15 +2061,15 @@ ], "name": "ListedToken", "nodeType": "StructDefinition", - "scope": 4273, - "src": "1516:401:8", + "scope": 1058, + "src": "1705:401:1", "visibility": "public" }, { "body": { - "id": 3510, + "id": 235, "nodeType": "Block", - "src": "2098:315:8", + "src": "2282:298:1", "statements": [ { "expression": { @@ -1820,22 +2081,22 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 3474, + "id": 201, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3470, - "name": "_serviceWallet", + "id": 197, + "name": "_factory", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3459, - "src": "2116:14:8", + "referencedDeclaration": 188, + "src": "2300:8:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4451", + "typeString": "contract IW12CrowdsaleFactory" } }, "nodeType": "BinaryOperation", @@ -1846,14 +2107,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 3472, + "id": 199, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2142:1:8", + "src": "2320:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1869,20 +2130,20 @@ "typeString": "int_const 0" } ], - "id": 3471, + "id": 198, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2134:7:8", + "src": "2312:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 3473, + "id": 200, "isConstant": false, "isLValue": false, "isPure": true, @@ -1890,13 +2151,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2134:10:8", + "src": "2312:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2116:28:8", + "src": "2300:22:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1910,21 +2171,21 @@ "typeString": "bool" } ], - "id": 3469, + "id": 196, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "2108:7:8", + "referencedDeclaration": 10045, + "src": "2292:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3475, + "id": 202, "isConstant": false, "isLValue": false, "isPure": false, @@ -1932,15 +2193,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2108:37:8", + "src": "2292:31:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3476, + "id": 203, "nodeType": "ExpressionStatement", - "src": "2108:37:8" + "src": "2292:31:1" }, { "expression": { @@ -1952,22 +2213,22 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 3482, + "id": 209, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3478, - "name": "_factory", + "id": 205, + "name": "_exchanger", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3461, - "src": "2163:8:8", + "referencedDeclaration": 190, + "src": "2341:10:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4453", - "typeString": "contract IW12CrowdsaleFactory" + "typeIdentifier": "t_contract$_ITokenExchanger_$8748", + "typeString": "contract ITokenExchanger" } }, "nodeType": "BinaryOperation", @@ -1978,14 +2239,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 3480, + "id": 207, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2183:1:8", + "src": "2363:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2001,20 +2262,20 @@ "typeString": "int_const 0" } ], - "id": 3479, + "id": 206, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2175:7:8", + "src": "2355:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 3481, + "id": 208, "isConstant": false, "isLValue": false, "isPure": true, @@ -2022,13 +2283,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2175:10:8", + "src": "2355:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2163:22:8", + "src": "2341:24:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2042,21 +2303,21 @@ "typeString": "bool" } ], - "id": 3477, + "id": 204, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "2155:7:8", + "referencedDeclaration": 10045, + "src": "2333:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3483, + "id": 210, "isConstant": false, "isLValue": false, "isPure": false, @@ -2064,166 +2325,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2155:31:8", + "src": "2333:33:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3484, + "id": 211, "nodeType": "ExpressionStatement", - "src": "2155:31:8" + "src": "2333:33:1" }, { "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3490, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3486, - "name": "_exchanger", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3463, - "src": "2204:10:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$6187", - "typeString": "contract ITokenExchanger" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3488, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2226:1:8", - "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": 3487, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2218:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3489, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2218:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2204:24:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3485, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 7297, - 7298 - ], - "referencedDeclaration": 7297, - "src": "2196:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2196:33:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3492, - "nodeType": "ExpressionStatement", - "src": "2196:33:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 3495, + "id": 214, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3493, + "id": 212, "name": "exchanger", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3372, - "src": "2240:9:8", + "referencedDeclaration": 99, + "src": "2377:9:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$6187", + "typeIdentifier": "t_contract$_ITokenExchanger_$8748", "typeString": "contract ITokenExchanger" } }, @@ -2231,91 +2360,91 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3494, + "id": 213, "name": "_exchanger", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3463, - "src": "2252:10:8", + "referencedDeclaration": 190, + "src": "2389:10:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$6187", + "typeIdentifier": "t_contract$_ITokenExchanger_$8748", "typeString": "contract ITokenExchanger" } }, - "src": "2240:22:8", + "src": "2377:22:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$6187", + "typeIdentifier": "t_contract$_ITokenExchanger_$8748", "typeString": "contract ITokenExchanger" } }, - "id": 3496, + "id": 215, "nodeType": "ExpressionStatement", - "src": "2240:22:8" + "src": "2377:22:1" }, { "expression": { "argumentTypes": null, - "id": 3499, + "id": 218, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3497, - "name": "serviceWallet", + "id": 216, + "name": "wallets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3392, - "src": "2272:13:8", + "referencedDeclaration": 103, + "src": "2409:7:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_contract$_IWallets_$9239", + "typeString": "contract IWallets" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3498, - "name": "_serviceWallet", + "id": 217, + "name": "_wallets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3459, - "src": "2288:14:8", + "referencedDeclaration": 186, + "src": "2419:8:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_contract$_IWallets_$9239", + "typeString": "contract IWallets" } }, - "src": "2272:30:8", + "src": "2409:18:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_contract$_IWallets_$9239", + "typeString": "contract IWallets" } }, - "id": 3500, + "id": 219, "nodeType": "ExpressionStatement", - "src": "2272:30:8" + "src": "2409:18:1" }, { "expression": { "argumentTypes": null, - "id": 3503, + "id": 222, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3501, + "id": 220, "name": "factory", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3374, - "src": "2312:7:8", + "referencedDeclaration": 101, + "src": "2437:7:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4453", + "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4451", "typeString": "contract IW12CrowdsaleFactory" } }, @@ -2323,31 +2452,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3502, + "id": 221, "name": "_factory", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3461, - "src": "2322:8:8", + "referencedDeclaration": 188, + "src": "2447:8:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4453", + "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4451", "typeString": "contract IW12CrowdsaleFactory" } }, - "src": "2312:18:8", + "src": "2437:18:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4453", + "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4451", "typeString": "contract IW12CrowdsaleFactory" } }, - "id": 3504, + "id": 223, "nodeType": "ExpressionStatement", - "src": "2312:18:8" + "src": "2437:18:1" }, { "expression": { "argumentTypes": null, - "id": 3508, + "id": 227, "isConstant": false, "isLValue": false, "isPure": false, @@ -2355,23 +2484,23 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "2340:23:8", + "src": "2465:23:1", "subExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3505, + "id": 224, "name": "approvedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3383, - "src": "2340:14:8", + "referencedDeclaration": 112, + "src": "2465:14:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ListedToken_$3455_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_ListedToken_$182_storage_$dyn_storage", "typeString": "struct W12Lister.ListedToken storage ref[] storage ref" } }, - "id": 3507, + "id": 226, "isConstant": false, "isLValue": true, "isPure": false, @@ -2379,7 +2508,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2340:21:8", + "src": "2465:21:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2390,14 +2519,101 @@ "typeString": "uint256" } }, - "id": 3509, + "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": 10042, + "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": 9405, + "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": "2340:23:8" + "src": "2542:31:1" } ] }, "documentation": null, - "id": 3511, + "id": 236, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -2406,49 +2622,49 @@ "arguments": [ { "argumentTypes": null, - "id": 3466, + "id": 193, "name": "version", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3457, - "src": "2082:7:8", + "referencedDeclaration": 184, + "src": "2266:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 3467, + "id": 194, "modifierName": { "argumentTypes": null, - "id": 3465, + "id": 192, "name": "Versionable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6509, - "src": "2070:11:8", + "referencedDeclaration": 9070, + "src": "2254:11:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Versionable_$6509_$", + "typeIdentifier": "t_type$_t_contract$_Versionable_$9070_$", "typeString": "type(contract Versionable)" } }, "nodeType": "ModifierInvocation", - "src": "2070:20:8" + "src": "2254:20:1" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 3464, + "id": 191, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3457, + "id": 184, "name": "version", "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1944:12:8", + "scope": 236, + "src": "2133:12:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2456,10 +2672,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3456, + "id": 183, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1944:4:8", + "src": "2133:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2470,25 +2686,27 @@ }, { "constant": false, - "id": 3459, - "name": "_serviceWallet", + "id": 186, + "name": "_wallets", "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1966:22:8", + "scope": 236, + "src": "2155:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_contract$_IWallets_$9239", + "typeString": "contract IWallets" }, "typeName": { - "id": 3458, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1966:7:8", + "contractScope": null, + "id": 185, + "name": "IWallets", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9239, + "src": "2155:8:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_contract$_IWallets_$9239", + "typeString": "contract IWallets" } }, "value": null, @@ -2496,26 +2714,26 @@ }, { "constant": false, - "id": 3461, + "id": 188, "name": "_factory", "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1998:29:8", + "scope": 236, + "src": "2182:29:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4453", + "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4451", "typeString": "contract IW12CrowdsaleFactory" }, "typeName": { "contractScope": null, - "id": 3460, + "id": 187, "name": "IW12CrowdsaleFactory", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4453, - "src": "1998:20:8", + "referencedDeclaration": 4451, + "src": "2182:20:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4453", + "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4451", "typeString": "contract IW12CrowdsaleFactory" } }, @@ -2524,26 +2742,26 @@ }, { "constant": false, - "id": 3463, + "id": 190, "name": "_exchanger", "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "2037:26:8", + "scope": 236, + "src": "2221:26:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$6187", + "typeIdentifier": "t_contract$_ITokenExchanger_$8748", "typeString": "contract ITokenExchanger" }, "typeName": { "contractScope": null, - "id": 3462, + "id": 189, "name": "ITokenExchanger", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6187, - "src": "2037:15:8", + "referencedDeclaration": 8748, + "src": "2221:15:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$6187", + "typeIdentifier": "t_contract$_ITokenExchanger_$8748", "typeString": "contract ITokenExchanger" } }, @@ -2551,26 +2769,26 @@ "visibility": "internal" } ], - "src": "1934:135:8" + "src": "2123:130:1" }, "payable": false, "returnParameters": { - "id": 3468, + "id": 195, "nodeType": "ParameterList", "parameters": [], - "src": "2098:0:8" + "src": "2282:0:1" }, - "scope": 4273, - "src": "1923:490:8", + "scope": 1058, + "src": "2112:468:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3721, + "id": 248, "nodeType": "Block", - "src": "2722:1457:8", + "src": "2640:47:1", "statements": [ { "expression": { @@ -2578,115 +2796,54 @@ "arguments": [ { "argumentTypes": null, - "commonType": { + "id": 244, + "name": "_operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 238, + "src": "2658:9:1", + "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" - }, - "id": 3539, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3535, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3513, - "src": "2741:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3537, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2763:1:8", - "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": 3536, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2755:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3538, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2755:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2741:24:8", + } + }, + { + "argumentTypes": null, + "id": 245, + "name": "ROLE_ADMIN", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 97, + "src": "2669:10:1", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" } ], - "id": 3534, - "name": "require", + "id": 243, + "name": "addRole", "nodeType": "Identifier", - "overloadedDeclarations": [ - 7297, - 7298 - ], - "referencedDeclaration": 7297, - "src": "2733:7:8", + "overloadedDeclarations": [], + "referencedDeclaration": 9405, + "src": "2650:7:1", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (address,string memory)" } }, - "id": 3540, + "id": 246, "isConstant": false, "isLValue": false, "isPure": false, @@ -2694,39 +2851,274 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2733:33:8", + "src": "2650:30:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3541, + "id": 247, "nodeType": "ExpressionStatement", - "src": "2733:33:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3547, - "isConstant": false, - "isLValue": false, + "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": 9636, + "src": "2630:9:1", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2630:9:1" + } + ], + "name": "addAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 239, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 238, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 249, + "src": "2604:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 237, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2604:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "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": 9425, + "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", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "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": 9636, + "src": "2740:9:1", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2740:9:1" + } + ], + "name": "removeAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 252, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 251, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 262, + "src": "2714:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 250, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2714:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2713:19:1" + }, + "payable": false, + "returnParameters": { + "id": 255, + "nodeType": "ParameterList", + "parameters": [], + "src": "2750:0:1" + }, + "scope": 1058, + "src": "2693:107:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 473, + "nodeType": "Block", + "src": "3124:1457:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 291, + "isConstant": false, + "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3543, - "name": "tokenAddress", + "id": 287, + "name": "tokenOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3515, - "src": "2784:12:8", + "referencedDeclaration": 264, + "src": "3143:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2740,14 +3132,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 3545, + "id": 289, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2808:1:8", + "src": "3165:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2763,20 +3155,20 @@ "typeString": "int_const 0" } ], - "id": 3544, + "id": 288, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2800:7:8", + "src": "3157:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 3546, + "id": 290, "isConstant": false, "isLValue": false, "isPure": true, @@ -2784,13 +3176,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2800:10:8", + "src": "3157:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2784:26:8", + "src": "3143:24:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2804,21 +3196,21 @@ "typeString": "bool" } ], - "id": 3542, + "id": 286, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "2776:7:8", + "referencedDeclaration": 10045, + "src": "3135:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3548, + "id": 292, "isConstant": false, "isLValue": false, "isPure": false, @@ -2826,15 +3218,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2776:35:8", + "src": "3135:33:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3549, + "id": 293, "nodeType": "ExpressionStatement", - "src": "2776:35:8" + "src": "3135:33:1" }, { "expression": { @@ -2843,69 +3235,201 @@ { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" }, - "id": 3559, + "id": 299, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { + "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, - "id": 3551, - "name": "feePercent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3523, - "src": "2829:10:8", + "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_uint256", - "typeString": "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": 3552, + ], + "id": 296, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, "lValueRequested": false, - "memberName": "isPercent", - "nodeType": "MemberAccess", - "referencedDeclaration": 4586, - "src": "2829:20:8", + "nodeType": "ElementaryTypeNameExpression", + "src": "3202:7:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$", - "typeString": "function (uint256) pure returns (bool)" - } + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, - "id": 3553, + "id": 298, "isConstant": false, "isLValue": false, - "isPure": false, - "kind": "functionCall", + "isPure": true, + "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2829:22:8", + "src": "3202:10:1", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "nodeType": "BinaryOperation", - "operator": "&&", + "src": "3186:26:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 294, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "3178:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 300, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3178:35:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 301, + "nodeType": "ExpressionStatement", + "src": "3178:35:1" + }, + { + "expression": { + "argumentTypes": null, + "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": 5058, + "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": 3558, + "id": 310, "isConstant": false, "isLValue": false, "isPure": false, @@ -2917,32 +3441,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 3554, + "id": 306, "name": "feePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3523, - "src": "2855:10:8", + "referencedDeclaration": 274, + "src": "3257:10:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3555, + "id": 307, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "fromPercent", "nodeType": "MemberAccess", - "referencedDeclaration": 4630, - "src": "2855:22:8", + "referencedDeclaration": 5102, + "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": 3556, + "id": 308, "isConstant": false, "isLValue": false, "isPure": false, @@ -2950,7 +3474,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2855:24:8", + "src": "3257:24:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2961,14 +3485,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "313030", - "id": 3557, + "id": 309, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2882:3:8", + "src": "3284:3:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_100_by_1", @@ -2976,13 +3500,13 @@ }, "value": "100" }, - "src": "2855:30:8", + "src": "3257:30:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2829:56:8", + "src": "3231:56:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2996,21 +3520,21 @@ "typeString": "bool" } ], - "id": 3550, + "id": 302, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "2821:7:8", + "referencedDeclaration": 10045, + "src": "3223:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3560, + "id": 312, "isConstant": false, "isLValue": false, "isPure": false, @@ -3018,15 +3542,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2821:65:8", + "src": "3223:65:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3561, + "id": 313, "nodeType": "ExpressionStatement", - "src": "2821:65:8" + "src": "3223:65:1" }, { "expression": { @@ -3038,7 +3562,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 3571, + "id": 323, "isConstant": false, "isLValue": false, "isPure": false, @@ -3050,32 +3574,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 3563, + "id": 315, "name": "ethFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "2904:13:8", + "referencedDeclaration": 276, + "src": "3306:13:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3564, + "id": 316, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isPercent", "nodeType": "MemberAccess", - "referencedDeclaration": 4586, - "src": "2904:23:8", + "referencedDeclaration": 5058, + "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": 3565, + "id": 317, "isConstant": false, "isLValue": false, "isPure": false, @@ -3083,7 +3607,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2904:25:8", + "src": "3306:25:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3097,7 +3621,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3570, + "id": 322, "isConstant": false, "isLValue": false, "isPure": false, @@ -3109,32 +3633,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 3566, + "id": 318, "name": "ethFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "2933:13:8", + "referencedDeclaration": 276, + "src": "3335:13:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3567, + "id": 319, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "fromPercent", "nodeType": "MemberAccess", - "referencedDeclaration": 4630, - "src": "2933:25:8", + "referencedDeclaration": 5102, + "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": 3568, + "id": 320, "isConstant": false, "isLValue": false, "isPure": false, @@ -3142,7 +3666,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2933:27:8", + "src": "3335:27:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3153,14 +3677,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "313030", - "id": 3569, + "id": 321, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2963:3:8", + "src": "3365:3:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_100_by_1", @@ -3168,13 +3692,13 @@ }, "value": "100" }, - "src": "2933:33:8", + "src": "3335:33:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2904:62:8", + "src": "3306:62:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3188,21 +3712,21 @@ "typeString": "bool" } ], - "id": 3562, + "id": 314, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "2896:7:8", + "referencedDeclaration": 10045, + "src": "3298:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3572, + "id": 324, "isConstant": false, "isLValue": false, "isPure": false, @@ -3210,15 +3734,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2896:71:8", + "src": "3298:71:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3573, + "id": 325, "nodeType": "ExpressionStatement", - "src": "2896:71:8" + "src": "3298:71:1" }, { "expression": { @@ -3230,7 +3754,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 3583, + "id": 335, "isConstant": false, "isLValue": false, "isPure": false, @@ -3242,32 +3766,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 3575, + "id": 327, "name": "WTokenSaleFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3527, - "src": "2985:20:8", + "referencedDeclaration": 278, + "src": "3387:20:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3576, + "id": 328, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isPercent", "nodeType": "MemberAccess", - "referencedDeclaration": 4586, - "src": "2985:30:8", + "referencedDeclaration": 5058, + "src": "3387:30:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$", "typeString": "function (uint256) pure returns (bool)" } }, - "id": 3577, + "id": 329, "isConstant": false, "isLValue": false, "isPure": false, @@ -3275,7 +3799,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2985:32:8", + "src": "3387:32:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3289,7 +3813,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3582, + "id": 334, "isConstant": false, "isLValue": false, "isPure": false, @@ -3301,32 +3825,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 3578, + "id": 330, "name": "WTokenSaleFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3527, - "src": "3021:20:8", + "referencedDeclaration": 278, + "src": "3423:20:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3579, + "id": 331, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "fromPercent", "nodeType": "MemberAccess", - "referencedDeclaration": 4630, - "src": "3021:32:8", + "referencedDeclaration": 5102, + "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": 3580, + "id": 332, "isConstant": false, "isLValue": false, "isPure": false, @@ -3334,7 +3858,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3021:34:8", + "src": "3423:34:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3345,14 +3869,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "313030", - "id": 3581, + "id": 333, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3058:3:8", + "src": "3460:3:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_100_by_1", @@ -3360,13 +3884,13 @@ }, "value": "100" }, - "src": "3021:40:8", + "src": "3423:40:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2985:76:8", + "src": "3387:76:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3380,21 +3904,21 @@ "typeString": "bool" } ], - "id": 3574, + "id": 326, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "2977:7:8", + "referencedDeclaration": 10045, + "src": "3379:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3584, + "id": 336, "isConstant": false, "isLValue": false, "isPure": false, @@ -3402,15 +3926,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2977:85:8", + "src": "3379:85:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3585, + "id": 337, "nodeType": "ExpressionStatement", - "src": "2977:85:8" + "src": "3379:85:1" }, { "expression": { @@ -3422,7 +3946,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 3595, + "id": 347, "isConstant": false, "isLValue": false, "isPure": false, @@ -3434,32 +3958,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 3587, + "id": 339, "name": "trancheFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3529, - "src": "3080:17:8", + "referencedDeclaration": 280, + "src": "3482:17:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3588, + "id": 340, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isPercent", "nodeType": "MemberAccess", - "referencedDeclaration": 4586, - "src": "3080:27:8", + "referencedDeclaration": 5058, + "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": 3589, + "id": 341, "isConstant": false, "isLValue": false, "isPure": false, @@ -3467,7 +3991,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3080:29:8", + "src": "3482:29:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3481,7 +4005,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3594, + "id": 346, "isConstant": false, "isLValue": false, "isPure": false, @@ -3493,32 +4017,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 3590, + "id": 342, "name": "trancheFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3529, - "src": "3113:17:8", + "referencedDeclaration": 280, + "src": "3515:17:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3591, + "id": 343, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "fromPercent", "nodeType": "MemberAccess", - "referencedDeclaration": 4630, - "src": "3113:29:8", + "referencedDeclaration": 5102, + "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": 3592, + "id": 344, "isConstant": false, "isLValue": false, "isPure": false, @@ -3526,7 +4050,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3113:31:8", + "src": "3515:31:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3537,14 +4061,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "313030", - "id": 3593, + "id": 345, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3147:3:8", + "src": "3549:3:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_100_by_1", @@ -3552,13 +4076,13 @@ }, "value": "100" }, - "src": "3113:37:8", + "src": "3515:37:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3080:70:8", + "src": "3482:70:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3572,21 +4096,21 @@ "typeString": "bool" } ], - "id": 3586, + "id": 338, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "3072:7:8", + "referencedDeclaration": 10045, + "src": "3474:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3596, + "id": 348, "isConstant": false, "isLValue": false, "isPure": false, @@ -3594,15 +4118,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3072:79:8", + "src": "3474:79:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3597, + "id": 349, "nodeType": "ExpressionStatement", - "src": "3072:79:8" + "src": "3474:79:1" }, { "expression": { @@ -3614,7 +4138,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 3605, + "id": 357, "isConstant": false, "isLValue": false, "isPure": false, @@ -3626,12 +4150,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3600, + "id": 352, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3515, - "src": "3186:12:8", + "referencedDeclaration": 266, + "src": "3588:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3639,12 +4163,12 @@ }, { "argumentTypes": null, - "id": 3601, + "id": 353, "name": "tokenOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3513, - "src": "3200:10:8", + "referencedDeclaration": 264, + "src": "3602:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3662,18 +4186,18 @@ "typeString": "address" } ], - "id": 3599, + "id": 351, "name": "getApprovedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4272, - "src": "3169:16:8", + "referencedDeclaration": 1046, + "src": "3571:16:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$3455_storage_ptr_$", + "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": 3602, + "id": 354, "isConstant": false, "isLValue": false, "isPure": false, @@ -3681,21 +4205,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3169:42:8", + "src": "3571:42:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken storage pointer" } }, - "id": 3603, + "id": 355, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "tokenAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 3454, - "src": "3169:55:8", + "referencedDeclaration": 181, + "src": "3571:55:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3705,18 +4229,18 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 3604, + "id": 356, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3515, - "src": "3228:12:8", + "referencedDeclaration": 266, + "src": "3630:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3169:71:8", + "src": "3571:71:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3730,21 +4254,21 @@ "typeString": "bool" } ], - "id": 3598, + "id": 350, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "3161:7:8", + "referencedDeclaration": 10045, + "src": "3563:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3606, + "id": 358, "isConstant": false, "isLValue": false, "isPure": false, @@ -3752,15 +4276,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3161:80:8", + "src": "3563:80:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3607, + "id": 359, "nodeType": "ExpressionStatement", - "src": "3161:80:8" + "src": "3563:80:1" }, { "expression": { @@ -3768,7 +4292,7 @@ "arguments": [ { "argumentTypes": null, - "id": 3616, + "id": 368, "isConstant": false, "isLValue": false, "isPure": false, @@ -3776,7 +4300,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "3259:70:8", + "src": "3661:70:1", "subExpression": { "argumentTypes": null, "baseExpression": { @@ -3786,12 +4310,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3610, + "id": 362, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3515, - "src": "3277:12:8", + "referencedDeclaration": 266, + "src": "3679:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3799,12 +4323,12 @@ }, { "argumentTypes": null, - "id": 3611, + "id": 363, "name": "tokenOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3513, - "src": "3291:10:8", + "referencedDeclaration": 264, + "src": "3693:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3822,18 +4346,18 @@ "typeString": "address" } ], - "id": 3609, + "id": 361, "name": "getApprovedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4272, - "src": "3260:16:8", + "referencedDeclaration": 1046, + "src": "3662:16:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$3455_storage_ptr_$", + "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": 3612, + "id": 364, "isConstant": false, "isLValue": false, "isPure": false, @@ -3841,35 +4365,35 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3260:42:8", + "src": "3662:42:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken storage pointer" } }, - "id": 3613, + "id": 365, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "approvedOwners", "nodeType": "MemberAccess", - "referencedDeclaration": 3438, - "src": "3260:57:8", + "referencedDeclaration": 165, + "src": "3662:57:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 3615, + "id": 367, "indexExpression": { "argumentTypes": null, - "id": 3614, + "id": 366, "name": "tokenOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3513, - "src": "3318:10:8", + "referencedDeclaration": 264, + "src": "3720:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3880,7 +4404,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3260:69:8", + "src": "3662:69:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3899,21 +4423,21 @@ "typeString": "bool" } ], - "id": 3608, + "id": 360, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "3251:7:8", + "referencedDeclaration": 10045, + "src": "3653:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3617, + "id": 369, "isConstant": false, "isLValue": false, "isPure": false, @@ -3921,28 +4445,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3251:79:8", + "src": "3653:79:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3618, + "id": 370, "nodeType": "ExpressionStatement", - "src": "3251:79:8" + "src": "3653:79:1" }, { "assignments": [ - 3620 + 372 ], "declarations": [ { "constant": false, - "id": 3620, + "id": 372, "name": "index", "nodeType": "VariableDeclaration", - "scope": 3722, - "src": "3341:12:8", + "scope": 474, + "src": "3743:12:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3950,10 +4474,10 @@ "typeString": "uint16" }, "typeName": { - "id": 3619, + "id": 371, "name": "uint16", "nodeType": "ElementaryTypeName", - "src": "3341:6:8", + "src": "3743:6:1", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" @@ -3963,7 +4487,7 @@ "visibility": "internal" } ], - "id": 3625, + "id": 377, "initialValue": { "argumentTypes": null, "arguments": [ @@ -3971,18 +4495,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3622, + "id": 374, "name": "approvedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3383, - "src": "3363:14:8", + "referencedDeclaration": 112, + "src": "3765:14:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ListedToken_$3455_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_ListedToken_$182_storage_$dyn_storage", "typeString": "struct W12Lister.ListedToken storage ref[] storage ref" } }, - "id": 3623, + "id": 375, "isConstant": false, "isLValue": true, "isPure": false, @@ -3990,7 +4514,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3363:21:8", + "src": "3765:21:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4004,20 +4528,20 @@ "typeString": "uint256" } ], - "id": 3621, + "id": 373, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3356:6:8", + "src": "3758:6:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint16_$", "typeString": "type(uint16)" }, "typeName": "uint16" }, - "id": 3624, + "id": 376, "isConstant": false, "isLValue": false, "isPure": false, @@ -4025,19 +4549,19 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3356:29:8", + "src": "3758:29:1", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, "nodeType": "VariableDeclarationStatement", - "src": "3341:44:8" + "src": "3743:44:1" }, { "expression": { "argumentTypes": null, - "id": 3632, + "id": 384, "isConstant": false, "isLValue": false, "isPure": false, @@ -4048,26 +4572,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3626, + "id": 378, "name": "approvedTokensIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3380, - "src": "3396:19:8", + "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": 3629, + "id": 381, "indexExpression": { "argumentTypes": null, - "id": 3627, + "id": 379, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3515, - "src": "3416:12:8", + "referencedDeclaration": 266, + "src": "3818:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4078,21 +4602,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3396:33:8", + "src": "3798:33:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint16_$", "typeString": "mapping(address => uint16)" } }, - "id": 3630, + "id": 382, "indexExpression": { "argumentTypes": null, - "id": 3628, + "id": 380, "name": "tokenOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3513, - "src": "3430:10:8", + "referencedDeclaration": 264, + "src": "3832:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4103,7 +4627,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3396:45:8", + "src": "3798:45:1", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" @@ -4113,43 +4637,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3631, + "id": 383, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3620, - "src": "3444:5:8", + "referencedDeclaration": 372, + "src": "3846:5:1", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, - "src": "3396:53:8", + "src": "3798:53:1", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, - "id": 3633, + "id": 385, "nodeType": "ExpressionStatement", - "src": "3396:53:8" + "src": "3798:53:1" }, { "expression": { "argumentTypes": null, - "id": 3640, + "id": 392, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3634, + "id": 386, "name": "approvedTokensLength", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3390, - "src": "3460:20:8", + "referencedDeclaration": 119, + "src": "3862:20:1", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" @@ -4162,7 +4686,7 @@ "arguments": [ { "argumentTypes": null, - "id": 3638, + "id": 390, "isConstant": false, "isLValue": false, "isPure": false, @@ -4170,23 +4694,23 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "3490:23:8", + "src": "3892:23:1", "subExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3636, + "id": 388, "name": "approvedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3383, - "src": "3490:14:8", + "referencedDeclaration": 112, + "src": "3892:14:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ListedToken_$3455_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_ListedToken_$182_storage_$dyn_storage", "typeString": "struct W12Lister.ListedToken storage ref[] storage ref" } }, - "id": 3637, + "id": 389, "isConstant": false, "isLValue": true, "isPure": false, @@ -4194,7 +4718,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3490:21:8", + "src": "3892:21:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4213,20 +4737,20 @@ "typeString": "uint256" } ], - "id": 3635, + "id": 387, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3483:6:8", + "src": "3885:6:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint16_$", "typeString": "type(uint16)" }, "typeName": "uint16" }, - "id": 3639, + "id": 391, "isConstant": false, "isLValue": false, "isPure": false, @@ -4234,21 +4758,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3483:31:8", + "src": "3885:31:1", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, - "src": "3460:54:8", + "src": "3862:54:1", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, - "id": 3641, + "id": 393, "nodeType": "ExpressionStatement", - "src": "3460:54:8" + "src": "3862:54:1" }, { "expression": { @@ -4256,12 +4780,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3646, + "id": 398, "name": "tokenOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3513, - "src": "3563:10:8", + "referencedDeclaration": 264, + "src": "3965:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4279,26 +4803,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3642, + "id": 394, "name": "approvedOwnersList", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3388, - "src": "3525:18:8", + "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": 3644, + "id": 396, "indexExpression": { "argumentTypes": null, - "id": 3643, + "id": 395, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3515, - "src": "3544:12:8", + "referencedDeclaration": 266, + "src": "3946:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4309,13 +4833,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3525:32:8", + "src": "3927:32:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 3645, + "id": 397, "isConstant": false, "isLValue": false, "isPure": false, @@ -4323,13 +4847,13 @@ "memberName": "push", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3525:37:8", + "src": "3927:37:1", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", "typeString": "function (address) returns (uint256)" } }, - "id": 3647, + "id": 399, "isConstant": false, "isLValue": false, "isPure": false, @@ -4337,20 +4861,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3525:49:8", + "src": "3927:49:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3648, + "id": 400, "nodeType": "ExpressionStatement", - "src": "3525:49:8" + "src": "3927:49:1" }, { "expression": { "argumentTypes": null, - "id": 3656, + "id": 408, "isConstant": false, "isLValue": false, "isPure": false, @@ -4363,26 +4887,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3649, + "id": 401, "name": "approvedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3383, - "src": "3585:14:8", + "referencedDeclaration": 112, + "src": "3987:14:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ListedToken_$3455_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_ListedToken_$182_storage_$dyn_storage", "typeString": "struct W12Lister.ListedToken storage ref[] storage ref" } }, - "id": 3651, + "id": 403, "indexExpression": { "argumentTypes": null, - "id": 3650, + "id": 402, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3620, - "src": "3600:5:8", + "referencedDeclaration": 372, + "src": "4002:5:1", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" @@ -4393,35 +4917,35 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3585:21:8", + "src": "3987:21:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage", + "typeIdentifier": "t_struct$_ListedToken_$182_storage", "typeString": "struct W12Lister.ListedToken storage ref" } }, - "id": 3652, + "id": 404, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "approvedOwners", "nodeType": "MemberAccess", - "referencedDeclaration": 3438, - "src": "3585:36:8", + "referencedDeclaration": 165, + "src": "3987:36:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 3654, + "id": 406, "indexExpression": { "argumentTypes": null, - "id": 3653, + "id": 405, "name": "tokenOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3513, - "src": "3622:10:8", + "referencedDeclaration": 264, + "src": "4024:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4432,7 +4956,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3585:48:8", + "src": "3987:48:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4443,14 +4967,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 3655, + "id": 407, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3636:4:8", + "src": "4038:4:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -4458,20 +4982,20 @@ }, "value": "true" }, - "src": "3585:55:8", + "src": "3987:55:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3657, + "id": 409, "nodeType": "ExpressionStatement", - "src": "3585:55:8" + "src": "3987:55:1" }, { "expression": { "argumentTypes": null, - "id": 3663, + "id": 415, "isConstant": false, "isLValue": false, "isPure": false, @@ -4482,26 +5006,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3658, + "id": 410, "name": "approvedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3383, - "src": "3650:14:8", + "referencedDeclaration": 112, + "src": "4052:14:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ListedToken_$3455_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_ListedToken_$182_storage_$dyn_storage", "typeString": "struct W12Lister.ListedToken storage ref[] storage ref" } }, - "id": 3660, + "id": 412, "indexExpression": { "argumentTypes": null, - "id": 3659, + "id": 411, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3620, - "src": "3665:5:8", + "referencedDeclaration": 372, + "src": "4067:5:1", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" @@ -4512,21 +5036,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3650:21:8", + "src": "4052:21:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage", + "typeIdentifier": "t_struct$_ListedToken_$182_storage", "typeString": "struct W12Lister.ListedToken storage ref" } }, - "id": 3661, + "id": 413, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "name", "nodeType": "MemberAccess", - "referencedDeclaration": 3430, - "src": "3650:26:8", + "referencedDeclaration": 157, + "src": "4052:26:1", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -4536,31 +5060,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3662, + "id": 414, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3517, - "src": "3679:4:8", + "referencedDeclaration": 268, + "src": "4081:4:1", "typeDescriptions": { "typeIdentifier": "t_string_calldata_ptr", "typeString": "string calldata" } }, - "src": "3650:33:8", + "src": "4052:33:1", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 3664, + "id": 416, "nodeType": "ExpressionStatement", - "src": "3650:33:8" + "src": "4052:33:1" }, { "expression": { "argumentTypes": null, - "id": 3670, + "id": 422, "isConstant": false, "isLValue": false, "isPure": false, @@ -4571,26 +5095,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3665, + "id": 417, "name": "approvedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3383, - "src": "3693:14:8", + "referencedDeclaration": 112, + "src": "4095:14:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ListedToken_$3455_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_ListedToken_$182_storage_$dyn_storage", "typeString": "struct W12Lister.ListedToken storage ref[] storage ref" } }, - "id": 3667, + "id": 419, "indexExpression": { "argumentTypes": null, - "id": 3666, + "id": 418, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3620, - "src": "3708:5:8", + "referencedDeclaration": 372, + "src": "4110:5:1", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" @@ -4601,21 +5125,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3693:21:8", + "src": "4095:21:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage", + "typeIdentifier": "t_struct$_ListedToken_$182_storage", "typeString": "struct W12Lister.ListedToken storage ref" } }, - "id": 3668, + "id": 420, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "symbol", "nodeType": "MemberAccess", - "referencedDeclaration": 3432, - "src": "3693:28:8", + "referencedDeclaration": 159, + "src": "4095:28:1", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -4625,31 +5149,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3669, + "id": 421, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3519, - "src": "3724:6:8", + "referencedDeclaration": 270, + "src": "4126:6:1", "typeDescriptions": { "typeIdentifier": "t_string_calldata_ptr", "typeString": "string calldata" } }, - "src": "3693:37:8", + "src": "4095:37:1", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 3671, + "id": 423, "nodeType": "ExpressionStatement", - "src": "3693:37:8" + "src": "4095:37:1" }, { "expression": { "argumentTypes": null, - "id": 3677, + "id": 429, "isConstant": false, "isLValue": false, "isPure": false, @@ -4660,26 +5184,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3672, + "id": 424, "name": "approvedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3383, - "src": "3740:14:8", + "referencedDeclaration": 112, + "src": "4142:14:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ListedToken_$3455_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_ListedToken_$182_storage_$dyn_storage", "typeString": "struct W12Lister.ListedToken storage ref[] storage ref" } }, - "id": 3674, + "id": 426, "indexExpression": { "argumentTypes": null, - "id": 3673, + "id": 425, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3620, - "src": "3755:5:8", + "referencedDeclaration": 372, + "src": "4157:5:1", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" @@ -4690,21 +5214,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3740:21:8", + "src": "4142:21:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage", + "typeIdentifier": "t_struct$_ListedToken_$182_storage", "typeString": "struct W12Lister.ListedToken storage ref" } }, - "id": 3675, + "id": 427, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "decimals", "nodeType": "MemberAccess", - "referencedDeclaration": 3434, - "src": "3740:30:8", + "referencedDeclaration": 161, + "src": "4142:30:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -4714,31 +5238,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3676, + "id": 428, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3521, - "src": "3773:8:8", + "referencedDeclaration": 272, + "src": "4175:8:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "3740:41:8", + "src": "4142:41:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 3678, + "id": 430, "nodeType": "ExpressionStatement", - "src": "3740:41:8" + "src": "4142:41:1" }, { "expression": { "argumentTypes": null, - "id": 3684, + "id": 436, "isConstant": false, "isLValue": false, "isPure": false, @@ -4749,26 +5273,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3679, + "id": 431, "name": "approvedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3383, - "src": "3791:14:8", + "referencedDeclaration": 112, + "src": "4193:14:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ListedToken_$3455_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_ListedToken_$182_storage_$dyn_storage", "typeString": "struct W12Lister.ListedToken storage ref[] storage ref" } }, - "id": 3681, + "id": 433, "indexExpression": { "argumentTypes": null, - "id": 3680, + "id": 432, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3620, - "src": "3806:5:8", + "referencedDeclaration": 372, + "src": "4208:5:1", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" @@ -4779,21 +5303,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3791:21:8", + "src": "4193:21:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage", + "typeIdentifier": "t_struct$_ListedToken_$182_storage", "typeString": "struct W12Lister.ListedToken storage ref" } }, - "id": 3682, + "id": 434, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "feePercent", "nodeType": "MemberAccess", - "referencedDeclaration": 3440, - "src": "3791:32:8", + "referencedDeclaration": 167, + "src": "4193:32:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4803,31 +5327,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3683, + "id": 435, "name": "feePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3523, - "src": "3826:10:8", + "referencedDeclaration": 274, + "src": "4228:10:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3791:45:8", + "src": "4193:45:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3685, + "id": 437, "nodeType": "ExpressionStatement", - "src": "3791:45:8" + "src": "4193:45:1" }, { "expression": { "argumentTypes": null, - "id": 3691, + "id": 443, "isConstant": false, "isLValue": false, "isPure": false, @@ -4838,26 +5362,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3686, + "id": 438, "name": "approvedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3383, - "src": "3846:14:8", + "referencedDeclaration": 112, + "src": "4248:14:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ListedToken_$3455_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_ListedToken_$182_storage_$dyn_storage", "typeString": "struct W12Lister.ListedToken storage ref[] storage ref" } }, - "id": 3688, + "id": 440, "indexExpression": { "argumentTypes": null, - "id": 3687, + "id": 439, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3620, - "src": "3861:5:8", + "referencedDeclaration": 372, + "src": "4263:5:1", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" @@ -4868,21 +5392,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3846:21:8", + "src": "4248:21:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage", + "typeIdentifier": "t_struct$_ListedToken_$182_storage", "typeString": "struct W12Lister.ListedToken storage ref" } }, - "id": 3689, + "id": 441, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "ethFeePercent", "nodeType": "MemberAccess", - "referencedDeclaration": 3442, - "src": "3846:35:8", + "referencedDeclaration": 169, + "src": "4248:35:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4892,31 +5416,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3690, + "id": 442, "name": "ethFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "3884:13:8", + "referencedDeclaration": 276, + "src": "4286:13:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3846:51:8", + "src": "4248:51:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3692, + "id": 444, "nodeType": "ExpressionStatement", - "src": "3846:51:8" + "src": "4248:51:1" }, { "expression": { "argumentTypes": null, - "id": 3698, + "id": 450, "isConstant": false, "isLValue": false, "isPure": false, @@ -4927,26 +5451,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3693, + "id": 445, "name": "approvedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3383, - "src": "3907:14:8", + "referencedDeclaration": 112, + "src": "4309:14:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ListedToken_$3455_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_ListedToken_$182_storage_$dyn_storage", "typeString": "struct W12Lister.ListedToken storage ref[] storage ref" } }, - "id": 3695, + "id": 447, "indexExpression": { "argumentTypes": null, - "id": 3694, + "id": 446, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3620, - "src": "3922:5:8", + "referencedDeclaration": 372, + "src": "4324:5:1", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" @@ -4957,21 +5481,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3907:21:8", + "src": "4309:21:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage", + "typeIdentifier": "t_struct$_ListedToken_$182_storage", "typeString": "struct W12Lister.ListedToken storage ref" } }, - "id": 3696, + "id": 448, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "WTokenSaleFeePercent", "nodeType": "MemberAccess", - "referencedDeclaration": 3444, - "src": "3907:42:8", + "referencedDeclaration": 171, + "src": "4309:42:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4981,31 +5505,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3697, + "id": 449, "name": "WTokenSaleFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3527, - "src": "3952:20:8", + "referencedDeclaration": 278, + "src": "4354:20:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3907:65:8", + "src": "4309:65:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3699, + "id": 451, "nodeType": "ExpressionStatement", - "src": "3907:65:8" + "src": "4309:65:1" }, { "expression": { "argumentTypes": null, - "id": 3705, + "id": 457, "isConstant": false, "isLValue": false, "isPure": false, @@ -5016,26 +5540,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3700, + "id": 452, "name": "approvedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3383, - "src": "3982:14:8", + "referencedDeclaration": 112, + "src": "4384:14:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ListedToken_$3455_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_ListedToken_$182_storage_$dyn_storage", "typeString": "struct W12Lister.ListedToken storage ref[] storage ref" } }, - "id": 3702, + "id": 454, "indexExpression": { "argumentTypes": null, - "id": 3701, + "id": 453, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3620, - "src": "3997:5:8", + "referencedDeclaration": 372, + "src": "4399:5:1", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" @@ -5046,21 +5570,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3982:21:8", + "src": "4384:21:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage", + "typeIdentifier": "t_struct$_ListedToken_$182_storage", "typeString": "struct W12Lister.ListedToken storage ref" } }, - "id": 3703, + "id": 455, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "trancheFeePercent", "nodeType": "MemberAccess", - "referencedDeclaration": 3446, - "src": "3982:39:8", + "referencedDeclaration": 173, + "src": "4384:39:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5070,31 +5594,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3704, + "id": 456, "name": "trancheFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3529, - "src": "4024:17:8", + "referencedDeclaration": 280, + "src": "4426:17:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3982:59:8", + "src": "4384:59:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3706, + "id": 458, "nodeType": "ExpressionStatement", - "src": "3982:59:8" + "src": "4384:59:1" }, { "expression": { "argumentTypes": null, - "id": 3712, + "id": 464, "isConstant": false, "isLValue": false, "isPure": false, @@ -5105,26 +5629,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3707, + "id": 459, "name": "approvedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3383, - "src": "4051:14:8", + "referencedDeclaration": 112, + "src": "4453:14:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ListedToken_$3455_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_ListedToken_$182_storage_$dyn_storage", "typeString": "struct W12Lister.ListedToken storage ref[] storage ref" } }, - "id": 3709, + "id": 461, "indexExpression": { "argumentTypes": null, - "id": 3708, + "id": 460, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3620, - "src": "4066:5:8", + "referencedDeclaration": 372, + "src": "4468:5:1", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" @@ -5135,21 +5659,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4051:21:8", + "src": "4453:21:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage", + "typeIdentifier": "t_struct$_ListedToken_$182_storage", "typeString": "struct W12Lister.ListedToken storage ref" } }, - "id": 3710, + "id": 462, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "tokenAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 3454, - "src": "4051:34:8", + "referencedDeclaration": 181, + "src": "4453:34:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5159,26 +5683,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3711, + "id": 463, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3515, - "src": "4088:12:8", + "referencedDeclaration": 266, + "src": "4490:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4051:49:8", + "src": "4453:49:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 3713, + "id": 465, "nodeType": "ExpressionStatement", - "src": "4051:49:8" + "src": "4453:49:1" }, { "eventCall": { @@ -5186,12 +5710,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3715, + "id": 467, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3515, - "src": "4133:12:8", + "referencedDeclaration": 266, + "src": "4535:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5199,12 +5723,12 @@ }, { "argumentTypes": null, - "id": 3716, + "id": 468, "name": "tokenOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3513, - "src": "4147:10:8", + "referencedDeclaration": 264, + "src": "4549:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5212,12 +5736,12 @@ }, { "argumentTypes": null, - "id": 3717, + "id": 469, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3517, - "src": "4159:4:8", + "referencedDeclaration": 268, + "src": "4561:4:1", "typeDescriptions": { "typeIdentifier": "t_string_calldata_ptr", "typeString": "string calldata" @@ -5225,12 +5749,12 @@ }, { "argumentTypes": null, - "id": 3718, + "id": 470, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3519, - "src": "4165:6:8", + "referencedDeclaration": 270, + "src": "4567:6:1", "typeDescriptions": { "typeIdentifier": "t_string_calldata_ptr", "typeString": "string calldata" @@ -5256,18 +5780,18 @@ "typeString": "string calldata" } ], - "id": 3714, + "id": 466, "name": "OwnerWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3402, - "src": "4116:16:8", + "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": 3719, + "id": 471, "isConstant": false, "isLValue": false, "isPure": false, @@ -5275,57 +5799,71 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4116:56:8", + "src": "4518:56:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3720, + "id": 472, "nodeType": "EmitStatement", - "src": "4111:61:8" + "src": "4513:61:1" } ] }, "documentation": null, - "id": 3722, + "id": 474, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { - "arguments": null, - "id": 3532, + "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": 3531, - "name": "onlyOwner", + "id": 282, + "name": "onlyRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6888, - "src": "2712:9:8", + "referencedDeclaration": 9437, + "src": "3099:8:1", "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" + "typeIdentifier": "t_modifier$_t_string_memory_ptr_$", + "typeString": "modifier (string memory)" } }, "nodeType": "ModifierInvocation", - "src": "2712:9:8" + "src": "3099:20:1" } ], "name": "whitelistToken", "nodeType": "FunctionDefinition", "parameters": { - "id": 3530, + "id": 281, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3513, + "id": 264, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 3722, - "src": "2452:18:8", + "scope": 474, + "src": "2839:18:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5333,10 +5871,10 @@ "typeString": "address" }, "typeName": { - "id": 3512, + "id": 263, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2452:7:8", + "src": "2839:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5347,11 +5885,11 @@ }, { "constant": false, - "id": 3515, + "id": 266, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 3722, - "src": "2480:20:8", + "scope": 474, + "src": "2867:20:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5359,10 +5897,10 @@ "typeString": "address" }, "typeName": { - "id": 3514, + "id": 265, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2480:7:8", + "src": "2867:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5373,11 +5911,11 @@ }, { "constant": false, - "id": 3517, + "id": 268, "name": "name", "nodeType": "VariableDeclaration", - "scope": 3722, - "src": "2510:11:8", + "scope": 474, + "src": "2897:11:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5385,10 +5923,10 @@ "typeString": "string" }, "typeName": { - "id": 3516, + "id": 267, "name": "string", "nodeType": "ElementaryTypeName", - "src": "2510:6:8", + "src": "2897:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -5399,11 +5937,11 @@ }, { "constant": false, - "id": 3519, + "id": 270, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 3722, - "src": "2531:13:8", + "scope": 474, + "src": "2918:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5411,10 +5949,10 @@ "typeString": "string" }, "typeName": { - "id": 3518, + "id": 269, "name": "string", "nodeType": "ElementaryTypeName", - "src": "2531:6:8", + "src": "2918:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -5425,11 +5963,11 @@ }, { "constant": false, - "id": 3521, + "id": 272, "name": "decimals", "nodeType": "VariableDeclaration", - "scope": 3722, - "src": "2554:14:8", + "scope": 474, + "src": "2941:14:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5437,10 +5975,10 @@ "typeString": "uint8" }, "typeName": { - "id": 3520, + "id": 271, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "2554:5:8", + "src": "2941:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -5451,11 +5989,11 @@ }, { "constant": false, - "id": 3523, + "id": 274, "name": "feePercent", "nodeType": "VariableDeclaration", - "scope": 3722, - "src": "2578:15:8", + "scope": 474, + "src": "2965:15:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5463,10 +6001,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3522, + "id": 273, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2578:4:8", + "src": "2965:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5477,11 +6015,11 @@ }, { "constant": false, - "id": 3525, + "id": 276, "name": "ethFeePercent", "nodeType": "VariableDeclaration", - "scope": 3722, - "src": "2603:18:8", + "scope": 474, + "src": "2990:18:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5489,10 +6027,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3524, + "id": 275, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2603:4:8", + "src": "2990:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5503,11 +6041,11 @@ }, { "constant": false, - "id": 3527, + "id": 278, "name": "WTokenSaleFeePercent", "nodeType": "VariableDeclaration", - "scope": 3722, - "src": "2631:25:8", + "scope": 474, + "src": "3018:25:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5515,10 +6053,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3526, + "id": 277, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2631:4:8", + "src": "3018:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5529,11 +6067,11 @@ }, { "constant": false, - "id": 3529, + "id": 280, "name": "trancheFeePercent", "nodeType": "VariableDeclaration", - "scope": 3722, - "src": "2666:22:8", + "scope": 474, + "src": "3053:22:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5541,10 +6079,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3528, + "id": 279, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2666:4:8", + "src": "3053:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5554,27 +6092,176 @@ "visibility": "internal" } ], - "src": "2442:252:8" + "src": "2829:252:1" }, "payable": false, "returnParameters": { - "id": 3533, + "id": 285, "nodeType": "ParameterList", "parameters": [], - "src": "2722:0:8" + "src": "3124:0:1" }, - "scope": 4273, - "src": "2419:1760:8", + "scope": 1058, + "src": "2806:1775:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" }, { "body": { - "id": 3889, + "id": 651, "nodeType": "Block", - "src": "4410:1291:8", + "src": "4812:1341:1", "statements": [ + { + "expression": { + "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", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1057, + "src": "4830:13:1", + "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" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "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" + } + ], + "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", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 488, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4849:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4830:29:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 483, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "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, @@ -5585,19 +6272,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3734, + "id": 495, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3732, + "id": 493, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3726, - "src": "4428:6:8", + "referencedDeclaration": 478, + "src": "4878:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5608,14 +6295,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3733, + "id": 494, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4437:1:8", + "src": "4887:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5623,7 +6310,7 @@ }, "value": "0" }, - "src": "4428:10:8", + "src": "4878:10:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5637,21 +6324,21 @@ "typeString": "bool" } ], - "id": 3731, + "id": 492, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "4420:7:8", + "referencedDeclaration": 10045, + "src": "4870:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3735, + "id": 496, "isConstant": false, "isLValue": false, "isPure": false, @@ -5659,15 +6346,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4420:19:8", + "src": "4870:19:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3736, + "id": 497, "nodeType": "ExpressionStatement", - "src": "4420:19:8" + "src": "4870:19:1" }, { "expression": { @@ -5679,19 +6366,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 3742, + "id": 503, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3738, + "id": 499, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3724, - "src": "4457:12:8", + "referencedDeclaration": 476, + "src": "4907:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5705,14 +6392,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 3740, + "id": 501, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4481:1:8", + "src": "4931:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5728,20 +6415,20 @@ "typeString": "int_const 0" } ], - "id": 3739, + "id": 500, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4473:7:8", + "src": "4923:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 3741, + "id": 502, "isConstant": false, "isLValue": false, "isPure": true, @@ -5749,13 +6436,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4473:10:8", + "src": "4923:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4457:26:8", + "src": "4907:26:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5769,21 +6456,21 @@ "typeString": "bool" } ], - "id": 3737, + "id": 498, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "4449:7:8", + "referencedDeclaration": 10045, + "src": "4899:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3743, + "id": 504, "isConstant": false, "isLValue": false, "isPure": false, @@ -5791,15 +6478,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4449:35:8", + "src": "4899:35:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3744, + "id": 505, "nodeType": "ExpressionStatement", - "src": "4449:35:8" + "src": "4899:35:1" }, { "expression": { @@ -5811,7 +6498,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 3753, + "id": 514, "isConstant": false, "isLValue": false, "isPure": false, @@ -5823,12 +6510,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3747, + "id": 508, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3724, - "src": "4519:12:8", + "referencedDeclaration": 476, + "src": "4969:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5838,18 +6525,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3748, + "id": 509, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "4533:3:8", + "referencedDeclaration": 10042, + "src": "4983:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3749, + "id": 510, "isConstant": false, "isLValue": false, "isPure": false, @@ -5857,7 +6544,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4533:10:8", + "src": "4983:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5875,18 +6562,18 @@ "typeString": "address" } ], - "id": 3746, + "id": 507, "name": "getApprovedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4272, - "src": "4502:16:8", + "referencedDeclaration": 1046, + "src": "4952:16:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$3455_storage_ptr_$", + "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": 3750, + "id": 511, "isConstant": false, "isLValue": false, "isPure": false, @@ -5894,21 +6581,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4502:42:8", + "src": "4952:42:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken storage pointer" } }, - "id": 3751, + "id": 512, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "tokenAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 3454, - "src": "4502:55:8", + "referencedDeclaration": 181, + "src": "4952:55:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5918,18 +6605,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 3752, + "id": 513, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3724, - "src": "4561:12:8", + "referencedDeclaration": 476, + "src": "5011:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4502:71:8", + "src": "4952:71:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5943,21 +6630,21 @@ "typeString": "bool" } ], - "id": 3745, + "id": 506, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "4494:7:8", + "referencedDeclaration": 10045, + "src": "4944:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3754, + "id": 515, "isConstant": false, "isLValue": false, "isPure": false, @@ -5965,15 +6652,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4494:80:8", + "src": "4944:80:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3755, + "id": 516, "nodeType": "ExpressionStatement", - "src": "4494:80:8" + "src": "4944:80:1" }, { "expression": { @@ -5988,12 +6675,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3758, + "id": 519, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3724, - "src": "4609:12:8", + "referencedDeclaration": 476, + "src": "5059:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6003,18 +6690,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3759, + "id": 520, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "4623:3:8", + "referencedDeclaration": 10042, + "src": "5073:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3760, + "id": 521, "isConstant": false, "isLValue": false, "isPure": false, @@ -6022,7 +6709,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4623:10:8", + "src": "5073:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6040,18 +6727,18 @@ "typeString": "address" } ], - "id": 3757, + "id": 518, "name": "getApprovedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4272, - "src": "4592:16:8", + "referencedDeclaration": 1046, + "src": "5042:16:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$3455_storage_ptr_$", + "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": 3761, + "id": 522, "isConstant": false, "isLValue": false, "isPure": false, @@ -6059,43 +6746,43 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4592:42:8", + "src": "5042:42:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken storage pointer" } }, - "id": 3762, + "id": 523, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "approvedOwners", "nodeType": "MemberAccess", - "referencedDeclaration": 3438, - "src": "4592:57:8", + "referencedDeclaration": 165, + "src": "5042:57:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 3765, + "id": 526, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3763, + "id": 524, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "4650:3:8", + "referencedDeclaration": 10042, + "src": "5100:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3764, + "id": 525, "isConstant": false, "isLValue": false, "isPure": false, @@ -6103,7 +6790,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4650:10:8", + "src": "5100:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6114,7 +6801,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4592:69:8", + "src": "5042:69:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6128,21 +6815,21 @@ "typeString": "bool" } ], - "id": 3756, + "id": 517, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "4584:7:8", + "referencedDeclaration": 10045, + "src": "5034:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3766, + "id": 527, "isConstant": false, "isLValue": false, "isPure": false, @@ -6150,43 +6837,43 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4584:78:8", + "src": "5034:78:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3767, + "id": 528, "nodeType": "ExpressionStatement", - "src": "4584:78:8" + "src": "5034:78:1" }, { "assignments": [ - 3769 + 530 ], "declarations": [ { "constant": false, - "id": 3769, + "id": 530, "name": "token", "nodeType": "VariableDeclaration", - "scope": 3890, - "src": "4673:19:8", + "scope": 652, + "src": "5123:19:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_DetailedERC20_$6974", + "typeIdentifier": "t_contract$_DetailedERC20_$9722", "typeString": "contract DetailedERC20" }, "typeName": { "contractScope": null, - "id": 3768, + "id": 529, "name": "DetailedERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6974, - "src": "4673:13:8", + "referencedDeclaration": 9722, + "src": "5123:13:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_DetailedERC20_$6974", + "typeIdentifier": "t_contract$_DetailedERC20_$9722", "typeString": "contract DetailedERC20" } }, @@ -6194,18 +6881,18 @@ "visibility": "internal" } ], - "id": 3773, + "id": 534, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 3771, + "id": 532, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3724, - "src": "4709:12:8", + "referencedDeclaration": 476, + "src": "5159:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6219,18 +6906,18 @@ "typeString": "address" } ], - "id": 3770, + "id": 531, "name": "DetailedERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6974, - "src": "4695:13:8", + "referencedDeclaration": 9722, + "src": "5145:13:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DetailedERC20_$6974_$", + "typeIdentifier": "t_type$_t_contract$_DetailedERC20_$9722_$", "typeString": "type(contract DetailedERC20)" } }, - "id": 3772, + "id": 533, "isConstant": false, "isLValue": false, "isPure": false, @@ -6238,14 +6925,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4695:27:8", + "src": "5145:27:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_DetailedERC20_$6974", + "typeIdentifier": "t_contract$_DetailedERC20_$9722", "typeString": "contract DetailedERC20" } }, "nodeType": "VariableDeclarationStatement", - "src": "4673:49:8" + "src": "5123:49:1" }, { "expression": { @@ -6257,7 +6944,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3784, + "id": 545, "isConstant": false, "isLValue": false, "isPure": false, @@ -6269,18 +6956,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3777, + "id": 538, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "4757:3:8", + "referencedDeclaration": 10042, + "src": "5207:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3778, + "id": 539, "isConstant": false, "isLValue": false, "isPure": false, @@ -6288,7 +6975,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4757:10:8", + "src": "5207:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6299,14 +6986,14 @@ "arguments": [ { "argumentTypes": null, - "id": 3780, + "id": 541, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7357, - "src": "4777:4:8", + "referencedDeclaration": 10095, + "src": "5227:4:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_W12Lister_$4273", + "typeIdentifier": "t_contract$_W12Lister_$1058", "typeString": "contract W12Lister" } } @@ -6314,24 +7001,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_W12Lister_$4273", + "typeIdentifier": "t_contract$_W12Lister_$1058", "typeString": "contract W12Lister" } ], - "id": 3779, + "id": 540, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4769:7:8", + "src": "5219:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 3781, + "id": 542, "isConstant": false, "isLValue": false, "isPure": false, @@ -6339,7 +7026,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4769:13:8", + "src": "5219:13:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6359,32 +7046,32 @@ ], "expression": { "argumentTypes": null, - "id": 3775, + "id": 536, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3769, - "src": "4741:5:8", + "referencedDeclaration": 530, + "src": "5191:5:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_DetailedERC20_$6974", + "typeIdentifier": "t_contract$_DetailedERC20_$9722", "typeString": "contract DetailedERC20" } }, - "id": 3776, + "id": 537, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "allowance", "nodeType": "MemberAccess", - "referencedDeclaration": 6988, - "src": "4741:15:8", + "referencedDeclaration": 9736, + "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": 3782, + "id": 543, "isConstant": false, "isLValue": false, "isPure": false, @@ -6392,7 +7079,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4741:42:8", + "src": "5191:42:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6402,18 +7089,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 3783, + "id": 544, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3726, - "src": "4787:6:8", + "referencedDeclaration": 478, + "src": "5237:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4741:52:8", + "src": "5191:52:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6427,21 +7114,21 @@ "typeString": "bool" } ], - "id": 3774, + "id": 535, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "4733:7:8", + "referencedDeclaration": 10045, + "src": "5183:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3785, + "id": 546, "isConstant": false, "isLValue": false, "isPure": false, @@ -6449,43 +7136,43 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4733:61:8", + "src": "5183:61:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3786, + "id": 547, "nodeType": "ExpressionStatement", - "src": "4733:61:8" + "src": "5183:61:1" }, { "assignments": [ - 3788 + 549 ], "declarations": [ { "constant": false, - "id": 3788, + "id": 549, "name": "listedToken", "nodeType": "VariableDeclaration", - "scope": 3890, - "src": "4805:31:8", + "scope": 652, + "src": "5255:31:1", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken" }, "typeName": { "contractScope": null, - "id": 3787, + "id": 548, "name": "ListedToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3455, - "src": "4805:11:8", + "referencedDeclaration": 182, + "src": "5255:11:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken" } }, @@ -6493,18 +7180,18 @@ "visibility": "internal" } ], - "id": 3794, + "id": 555, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 3790, + "id": 551, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3724, - "src": "4856:12:8", + "referencedDeclaration": 476, + "src": "5306:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6514,18 +7201,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3791, + "id": 552, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "4870:3:8", + "referencedDeclaration": 10042, + "src": "5320:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3792, + "id": 553, "isConstant": false, "isLValue": false, "isPure": false, @@ -6533,7 +7220,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4870:10:8", + "src": "5320:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6551,18 +7238,18 @@ "typeString": "address" } ], - "id": 3789, + "id": 550, "name": "getApprovedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4272, - "src": "4839:16:8", + "referencedDeclaration": 1046, + "src": "5289:16:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$3455_storage_ptr_$", + "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": 3793, + "id": 554, "isConstant": false, "isLValue": false, "isPure": false, @@ -6570,14 +7257,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4839:42:8", + "src": "5289:42:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken storage pointer" } }, "nodeType": "VariableDeclarationStatement", - "src": "4805:76:8" + "src": "5255:76:1" }, { "expression": { @@ -6589,7 +7276,7 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 3801, + "id": 562, "isConstant": false, "isLValue": false, "isPure": false, @@ -6601,32 +7288,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 3796, + "id": 557, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3769, - "src": "4900:5:8", + "referencedDeclaration": 530, + "src": "5350:5:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_DetailedERC20_$6974", + "typeIdentifier": "t_contract$_DetailedERC20_$9722", "typeString": "contract DetailedERC20" } }, - "id": 3797, + "id": 558, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "decimals", "nodeType": "MemberAccess", - "referencedDeclaration": 6951, - "src": "4900:14:8", + "referencedDeclaration": 9699, + "src": "5350:14:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", "typeString": "function () view external returns (uint8)" } }, - "id": 3798, + "id": 559, "isConstant": false, "isLValue": false, "isPure": false, @@ -6634,7 +7321,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4900:16:8", + "src": "5350:16:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -6646,32 +7333,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3799, + "id": 560, "name": "listedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3788, - "src": "4920:11:8", + "referencedDeclaration": 549, + "src": "5370:11:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken storage pointer" } }, - "id": 3800, + "id": 561, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "decimals", "nodeType": "MemberAccess", - "referencedDeclaration": 3434, - "src": "4920:20:8", + "referencedDeclaration": 161, + "src": "5370:20:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "4900:40:8", + "src": "5350:40:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6685,21 +7372,21 @@ "typeString": "bool" } ], - "id": 3795, + "id": 556, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "4892:7:8", + "referencedDeclaration": 10045, + "src": "5342:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3802, + "id": 563, "isConstant": false, "isLValue": false, "isPure": false, @@ -6707,28 +7394,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4892:49:8", + "src": "5342:49:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3803, + "id": 564, "nodeType": "ExpressionStatement", - "src": "4892:49:8" + "src": "5342:49:1" }, { "assignments": [ - 3805 + 566 ], "declarations": [ { "constant": false, - "id": 3805, + "id": 566, "name": "fee", "nodeType": "VariableDeclaration", - "scope": 3890, - "src": "4952:8:8", + "scope": 652, + "src": "5402:8:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6736,10 +7423,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3804, + "id": 565, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4952:4:8", + "src": "5402:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6749,7 +7436,7 @@ "visibility": "internal" } ], - "id": 3817, + "id": 578, "initialValue": { "argumentTypes": null, "condition": { @@ -6758,7 +7445,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3809, + "id": 570, "isConstant": false, "isLValue": false, "isPure": false, @@ -6767,26 +7454,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3806, + "id": 567, "name": "listedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3788, - "src": "4963:11:8", + "referencedDeclaration": 549, + "src": "5413:11:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken storage pointer" } }, - "id": 3807, + "id": 568, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "feePercent", "nodeType": "MemberAccess", - "referencedDeclaration": 3440, - "src": "4963:22:8", + "referencedDeclaration": 167, + "src": "5413:22:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6797,14 +7484,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3808, + "id": 569, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4988:1:8", + "src": "5438:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6812,7 +7499,7 @@ }, "value": "0" }, - "src": "4963:26:8", + "src": "5413:26:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6821,14 +7508,14 @@ "falseExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3815, + "id": 576, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5057:1:8", + "src": "5507:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6836,13 +7523,13 @@ }, "value": "0" }, - "id": 3816, + "id": 577, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", - "src": "4963:95:8", + "src": "5413:95:1", "trueExpression": { "argumentTypes": null, "arguments": [ @@ -6850,26 +7537,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3812, + "id": 573, "name": "listedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3788, - "src": "5019:11:8", + "referencedDeclaration": 549, + "src": "5469:11:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken storage pointer" } }, - "id": 3813, + "id": 574, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "feePercent", "nodeType": "MemberAccess", - "referencedDeclaration": 3440, - "src": "5019:22:8", + "referencedDeclaration": 167, + "src": "5469:22:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6885,32 +7572,32 @@ ], "expression": { "argumentTypes": null, - "id": 3810, + "id": 571, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3726, - "src": "5004:6:8", + "referencedDeclaration": 478, + "src": "5454:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3811, + "id": 572, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "percent", "nodeType": "MemberAccess", - "referencedDeclaration": 4568, - "src": "5004:14:8", + "referencedDeclaration": 5022, + "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": 3814, + "id": 575, "isConstant": false, "isLValue": false, "isPure": false, @@ -6918,7 +7605,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5004:38:8", + "src": "5454:38:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6930,20 +7617,20 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "4952:106:8" + "src": "5402:106:1" }, { "assignments": [ - 3819 + 580 ], "declarations": [ { "constant": false, - "id": 3819, + "id": 580, "name": "amountWithoutFee", "nodeType": "VariableDeclaration", - "scope": 3890, - "src": "5068:21:8", + "scope": 652, + "src": "5518:21:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6951,10 +7638,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3818, + "id": 579, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5068:4:8", + "src": "5518:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6964,18 +7651,18 @@ "visibility": "internal" } ], - "id": 3824, + "id": 585, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 3822, + "id": 583, "name": "fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3805, - "src": "5103:3:8", + "referencedDeclaration": 566, + "src": "5553:3:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6991,32 +7678,32 @@ ], "expression": { "argumentTypes": null, - "id": 3820, + "id": 581, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3726, - "src": "5092:6:8", + "referencedDeclaration": 478, + "src": "5542:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3821, + "id": 582, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 6829, - "src": "5092:10:8", + "referencedDeclaration": 9577, + "src": "5542:10: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": 3823, + "id": 584, "isConstant": false, "isLValue": false, "isPure": false, @@ -7024,14 +7711,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5092:15:8", + "src": "5542:15:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "5068:39:8" + "src": "5518:39:1" }, { "expression": { @@ -7039,38 +7726,38 @@ "arguments": [ { "argumentTypes": null, - "id": 3826, + "id": 587, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3769, - "src": "5139:5:8", + "referencedDeclaration": 530, + "src": "5589:5:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_DetailedERC20_$6974", + "typeIdentifier": "t_contract$_DetailedERC20_$9722", "typeString": "contract DetailedERC20" } }, { "argumentTypes": null, - "id": 3827, + "id": 588, "name": "exchanger", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3372, - "src": "5146:9:8", + "referencedDeclaration": 99, + "src": "5596:9:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$6187", + "typeIdentifier": "t_contract$_ITokenExchanger_$8748", "typeString": "contract ITokenExchanger" } }, { "argumentTypes": null, - "id": 3828, + "id": 589, "name": "amountWithoutFee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3819, - "src": "5157:16:8", + "referencedDeclaration": 580, + "src": "5607:16:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7080,11 +7767,11 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_DetailedERC20_$6974", + "typeIdentifier": "t_contract$_DetailedERC20_$9722", "typeString": "contract DetailedERC20" }, { - "typeIdentifier": "t_contract$_ITokenExchanger_$6187", + "typeIdentifier": "t_contract$_ITokenExchanger_$8748", "typeString": "contract ITokenExchanger" }, { @@ -7092,18 +7779,18 @@ "typeString": "uint256" } ], - "id": 3825, + "id": 586, "name": "_secureTokenTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3928, - "src": "5118:20:8", + "referencedDeclaration": 690, + "src": "5568:20:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_ERC20_$7017_$_t_address_$_t_uint256_$returns$__$", + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_ERC20_$9765_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (contract ERC20,address,uint256)" } }, - "id": 3829, + "id": 590, "isConstant": false, "isLValue": false, "isPure": false, @@ -7111,15 +7798,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5118:56:8", + "src": "5568:56:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3830, + "id": 591, "nodeType": "ExpressionStatement", - "src": "5118:56:8" + "src": "5568:56:1" }, { "expression": { @@ -7127,25 +7814,42 @@ "arguments": [ { "argumentTypes": null, - "id": 3832, + "id": 593, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3769, - "src": "5205:5:8", + "referencedDeclaration": 530, + "src": "5655:5:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_DetailedERC20_$6974", + "typeIdentifier": "t_contract$_DetailedERC20_$9722", "typeString": "contract DetailedERC20" } }, { "argumentTypes": null, - "id": 3833, - "name": "serviceWallet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3392, - "src": "5212:13:8", + "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)" + } + }, + "id": 595, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5662:15:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7153,12 +7857,12 @@ }, { "argumentTypes": null, - "id": 3834, + "id": 596, "name": "fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3805, - "src": "5227:3:8", + "referencedDeclaration": 566, + "src": "5679:3:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7168,7 +7872,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_DetailedERC20_$6974", + "typeIdentifier": "t_contract$_DetailedERC20_$9722", "typeString": "contract DetailedERC20" }, { @@ -7180,18 +7884,18 @@ "typeString": "uint256" } ], - "id": 3831, + "id": 592, "name": "_secureTokenTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3928, - "src": "5184:20:8", + "referencedDeclaration": 690, + "src": "5634:20:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_ERC20_$7017_$_t_address_$_t_uint256_$returns$__$", + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_ERC20_$9765_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (contract ERC20,address,uint256)" } }, - "id": 3835, + "id": 597, "isConstant": false, "isLValue": false, "isPure": false, @@ -7199,20 +7903,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5184:47:8", + "src": "5634:49:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3836, + "id": 598, "nodeType": "ExpressionStatement", - "src": "5184:47:8" + "src": "5634:49:1" }, { "expression": { "argumentTypes": null, - "id": 3845, + "id": 607, "isConstant": false, "isLValue": false, "isPure": false, @@ -7221,26 +7925,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3837, + "id": 599, "name": "listedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3788, - "src": "5242:11:8", + "referencedDeclaration": 549, + "src": "5694:11:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken storage pointer" } }, - "id": 3839, + "id": 601, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "tokensForSaleAmount", "nodeType": "MemberAccess", - "referencedDeclaration": 3450, - "src": "5242:31:8", + "referencedDeclaration": 177, + "src": "5694:31:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7253,12 +7957,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3843, + "id": 605, "name": "amountWithoutFee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3819, - "src": "5312:16:8", + "referencedDeclaration": 580, + "src": "5764:16:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7276,46 +7980,46 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3840, + "id": 602, "name": "listedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3788, - "src": "5276:11:8", + "referencedDeclaration": 549, + "src": "5728:11:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken storage pointer" } }, - "id": 3841, + "id": 603, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "tokensForSaleAmount", "nodeType": "MemberAccess", - "referencedDeclaration": 3450, - "src": "5276:31:8", + "referencedDeclaration": 177, + "src": "5728:31:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3842, + "id": 604, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 6853, - "src": "5276:35:8", + "referencedDeclaration": 9601, + "src": "5728:35: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": 3844, + "id": 606, "isConstant": false, "isLValue": false, "isPure": false, @@ -7323,21 +8027,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5276:53:8", + "src": "5728:53:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5242:87:8", + "src": "5694:87:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3846, + "id": 608, "nodeType": "ExpressionStatement", - "src": "5242:87:8" + "src": "5694:87:1" }, { "condition": { @@ -7346,7 +8050,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 3854, + "id": 616, "isConstant": false, "isLValue": false, "isPure": false, @@ -7356,12 +8060,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3849, + "id": 611, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3724, - "src": "5371:12:8", + "referencedDeclaration": 476, + "src": "5823:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7377,32 +8081,32 @@ ], "expression": { "argumentTypes": null, - "id": 3847, + "id": 609, "name": "exchanger", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3372, - "src": "5344:9:8", + "referencedDeclaration": 99, + "src": "5796:9:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$6187", + "typeIdentifier": "t_contract$_ITokenExchanger_$8748", "typeString": "contract ITokenExchanger" } }, - "id": 3848, + "id": 610, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getWTokenByToken", "nodeType": "MemberAccess", - "referencedDeclaration": 6214, - "src": "5344:26:8", + "referencedDeclaration": 8775, + "src": "5796:26:1", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_contract$_WToken_$5925_$", + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_contract$_WToken_$8486_$", "typeString": "function (address) view external returns (contract WToken)" } }, - "id": 3850, + "id": 612, "isConstant": false, "isLValue": false, "isPure": false, @@ -7410,9 +8114,9 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5344:40:8", + "src": "5796:40:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, @@ -7424,14 +8128,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 3852, + "id": 614, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5396:1:8", + "src": "5848:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -7447,20 +8151,20 @@ "typeString": "int_const 0" } ], - "id": 3851, + "id": 613, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "5388:7:8", + "src": "5840:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 3853, + "id": 615, "isConstant": false, "isLValue": false, "isPure": true, @@ -7468,54 +8172,54 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5388:10:8", + "src": "5840:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "5344:54:8", + "src": "5796:54:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 3877, + "id": 639, "nodeType": "IfStatement", - "src": "5340:242:8", + "src": "5792:242:1", "trueBody": { - "id": 3876, + "id": 638, "nodeType": "Block", - "src": "5400:182:8", + "src": "5852:182:1", "statements": [ { "assignments": [ - 3856 + 618 ], "declarations": [ { "constant": false, - "id": 3856, + "id": 618, "name": "wToken", "nodeType": "VariableDeclaration", - "scope": 3890, - "src": "5414:13:8", + "scope": 652, + "src": "5866:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" }, "typeName": { "contractScope": null, - "id": 3855, + "id": 617, "name": "WToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5925, - "src": "5414:6:8", + "referencedDeclaration": 8486, + "src": "5866:6:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, @@ -7523,7 +8227,7 @@ "visibility": "internal" } ], - "id": 3866, + "id": 628, "initialValue": { "argumentTypes": null, "arguments": [ @@ -7531,26 +8235,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3859, + "id": 621, "name": "listedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3788, - "src": "5441:11:8", + "referencedDeclaration": 549, + "src": "5893:11:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken storage pointer" } }, - "id": 3860, + "id": 622, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "name", "nodeType": "MemberAccess", - "referencedDeclaration": 3430, - "src": "5441:16:8", + "referencedDeclaration": 157, + "src": "5893:16:1", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -7560,26 +8264,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3861, + "id": 623, "name": "listedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3788, - "src": "5459:11:8", + "referencedDeclaration": 549, + "src": "5911:11:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken storage pointer" } }, - "id": 3862, + "id": 624, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "symbol", "nodeType": "MemberAccess", - "referencedDeclaration": 3432, - "src": "5459:18:8", + "referencedDeclaration": 159, + "src": "5911:18:1", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -7589,26 +8293,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3863, + "id": 625, "name": "listedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3788, - "src": "5479:11:8", + "referencedDeclaration": 549, + "src": "5931:11:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken storage pointer" } }, - "id": 3864, + "id": 626, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "decimals", "nodeType": "MemberAccess", - "referencedDeclaration": 3434, - "src": "5479:20:8", + "referencedDeclaration": 161, + "src": "5931:20:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -7630,31 +8334,31 @@ "typeString": "uint8" } ], - "id": 3858, + "id": 620, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "NewExpression", - "src": "5430:10:8", + "src": "5882:10:1", "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_WToken_$5925_$", + "typeIdentifier": "t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_WToken_$8486_$", "typeString": "function (string memory,string memory,uint8) returns (contract WToken)" }, "typeName": { "contractScope": null, - "id": 3857, + "id": 619, "name": "WToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5925, - "src": "5434:6:8", + "referencedDeclaration": 8486, + "src": "5886:6:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } } }, - "id": 3865, + "id": 627, "isConstant": false, "isLValue": false, "isPure": false, @@ -7662,14 +8366,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5430:70:8", + "src": "5882:70:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, "nodeType": "VariableDeclarationStatement", - "src": "5414:86:8" + "src": "5866:86:1" }, { "expression": { @@ -7680,12 +8384,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3871, + "id": 633, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3724, - "src": "5549:12:8", + "referencedDeclaration": 476, + "src": "6001:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7699,18 +8403,18 @@ "typeString": "address" } ], - "id": 3870, + "id": 632, "name": "ERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7017, - "src": "5543:5:8", + "referencedDeclaration": 9765, + "src": "5995:5:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$7017_$", + "typeIdentifier": "t_type$_t_contract$_ERC20_$9765_$", "typeString": "type(contract ERC20)" } }, - "id": 3872, + "id": 634, "isConstant": false, "isLValue": false, "isPure": false, @@ -7718,22 +8422,22 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5543:19:8", + "src": "5995:19:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, { "argumentTypes": null, - "id": 3873, + "id": 635, "name": "wToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3856, - "src": "5564:6:8", + "referencedDeclaration": 618, + "src": "6016:6:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } } @@ -7741,42 +8445,42 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" }, { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } ], "expression": { "argumentTypes": null, - "id": 3867, + "id": 629, "name": "exchanger", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3372, - "src": "5515:9:8", + "referencedDeclaration": 99, + "src": "5967:9:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$6187", + "typeIdentifier": "t_contract$_ITokenExchanger_$8748", "typeString": "contract ITokenExchanger" } }, - "id": 3869, + "id": 631, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "addTokenToListing", "nodeType": "MemberAccess", - "referencedDeclaration": 6198, - "src": "5515:27:8", + "referencedDeclaration": 8759, + "src": "5967:27:1", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_contract$_ERC20_$7017_$_t_contract$_WToken_$5925_$returns$__$", + "typeIdentifier": "t_function_external_nonpayable$_t_contract$_ERC20_$9765_$_t_contract$_WToken_$8486_$returns$__$", "typeString": "function (contract ERC20,contract WToken) external" } }, - "id": 3874, + "id": 636, "isConstant": false, "isLValue": false, "isPure": false, @@ -7784,15 +8488,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5515:56:8", + "src": "5967:56:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3875, + "id": 637, "nodeType": "ExpressionStatement", - "src": "5515:56:8" + "src": "5967:56:1" } ] } @@ -7803,12 +8507,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3879, + "id": 641, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3724, - "src": "5609:12:8", + "referencedDeclaration": 476, + "src": "6061:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7818,18 +8522,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3880, + "id": 642, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "5623:3:8", + "referencedDeclaration": 10042, + "src": "6075:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3881, + "id": 643, "isConstant": false, "isLValue": false, "isPure": false, @@ -7837,7 +8541,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5623:10:8", + "src": "6075:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7845,12 +8549,12 @@ }, { "argumentTypes": null, - "id": 3882, + "id": 644, "name": "amountWithoutFee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3819, - "src": "5635:16:8", + "referencedDeclaration": 580, + "src": "6087:16:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7861,12 +8565,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3885, + "id": 647, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3724, - "src": "5680:12:8", + "referencedDeclaration": 476, + "src": "6132:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7882,32 +8586,32 @@ ], "expression": { "argumentTypes": null, - "id": 3883, + "id": 645, "name": "exchanger", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3372, - "src": "5653:9:8", + "referencedDeclaration": 99, + "src": "6105:9:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$6187", + "typeIdentifier": "t_contract$_ITokenExchanger_$8748", "typeString": "contract ITokenExchanger" } }, - "id": 3884, + "id": 646, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getWTokenByToken", "nodeType": "MemberAccess", - "referencedDeclaration": 6214, - "src": "5653:26:8", + "referencedDeclaration": 8775, + "src": "6105:26:1", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_contract$_WToken_$5925_$", + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_contract$_WToken_$8486_$", "typeString": "function (address) view external returns (contract WToken)" } }, - "id": 3886, + "id": 648, "isConstant": false, "isLValue": false, "isPure": false, @@ -7915,9 +8619,9 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5653:40:8", + "src": "6105:40:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } } @@ -7937,22 +8641,22 @@ "typeString": "uint256" }, { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } ], - "id": 3878, + "id": 640, "name": "TokenPlaced", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3412, - "src": "5597:11:8", + "referencedDeclaration": 139, + "src": "6049:11:1", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_address_$returns$__$", "typeString": "function (address,address,uint256,address)" } }, - "id": 3887, + "id": 649, "isConstant": false, "isLValue": false, "isPure": false, @@ -7960,57 +8664,57 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5597:97:8", + "src": "6049:97:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3888, + "id": 650, "nodeType": "EmitStatement", - "src": "5592:102:8" + "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": 3890, + "id": 652, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 3729, + "id": 481, "modifierName": { "argumentTypes": null, - "id": 3728, + "id": 480, "name": "nonReentrant", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6689, - "src": "4397:12:8", + "referencedDeclaration": 9330, + "src": "4799:12:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4397:12:8" + "src": "4799:12:1" } ], "name": "placeToken", "nodeType": "FunctionDefinition", "parameters": { - "id": 3727, + "id": 479, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3724, + "id": 476, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 3890, - "src": "4353:20:8", + "scope": 652, + "src": "4755:20:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8018,10 +8722,10 @@ "typeString": "address" }, "typeName": { - "id": 3723, + "id": 475, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4353:7:8", + "src": "4755:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8032,11 +8736,11 @@ }, { "constant": false, - "id": 3726, + "id": 478, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 3890, - "src": "4375:11:8", + "scope": 652, + "src": "4777:11:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8044,10 +8748,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3725, + "id": 477, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4375:4:8", + "src": "4777:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8057,39 +8761,39 @@ "visibility": "internal" } ], - "src": "4352:35:8" + "src": "4754:35:1" }, "payable": false, "returnParameters": { - "id": 3730, + "id": 482, "nodeType": "ParameterList", "parameters": [], - "src": "4410:0:8" + "src": "4812:0:1" }, - "scope": 4273, - "src": "4333:1368:8", + "scope": 1058, + "src": "4735:1418:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" }, { "body": { - "id": 3927, + "id": 689, "nodeType": "Block", - "src": "5858:341:8", + "src": "6310:341:1", "statements": [ { "assignments": [ - 3900 + 662 ], "declarations": [ { "constant": false, - "id": 3900, + "id": 662, "name": "expectedBalance", "nodeType": "VariableDeclaration", - "scope": 3928, - "src": "5970:20:8", + "scope": 690, + "src": "6422:20:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8097,10 +8801,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3899, + "id": 661, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5970:4:8", + "src": "6422:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8110,18 +8814,18 @@ "visibility": "internal" } ], - "id": 3908, + "id": 670, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 3906, + "id": 668, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3896, - "src": "6017:5:8", + "referencedDeclaration": 658, + "src": "6469:5:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8140,12 +8844,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3903, + "id": 665, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3894, - "src": "6009:2:8", + "referencedDeclaration": 656, + "src": "6461:2:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8161,32 +8865,32 @@ ], "expression": { "argumentTypes": null, - "id": 3901, + "id": 663, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3892, - "src": "5993:5:8", + "referencedDeclaration": 654, + "src": "6445:5:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, - "id": 3902, + "id": 664, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 7031, - "src": "5993:15:8", + "referencedDeclaration": 9779, + "src": "6445:15:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 3904, + "id": 666, "isConstant": false, "isLValue": false, "isPure": false, @@ -8194,27 +8898,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5993:19:8", + "src": "6445:19:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3905, + "id": 667, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 6853, - "src": "5993:23:8", + "referencedDeclaration": 9601, + "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": 3907, + "id": 669, "isConstant": false, "isLValue": false, "isPure": false, @@ -8222,14 +8926,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5993:30:8", + "src": "6445:30:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "5970:53:8" + "src": "6422:53:1" }, { "expression": { @@ -8239,18 +8943,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3912, + "id": 674, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "6053:3:8", + "referencedDeclaration": 10042, + "src": "6505:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3913, + "id": 675, "isConstant": false, "isLValue": false, "isPure": false, @@ -8258,7 +8962,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6053:10:8", + "src": "6505:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8266,12 +8970,12 @@ }, { "argumentTypes": null, - "id": 3914, + "id": 676, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3894, - "src": "6065:2:8", + "referencedDeclaration": 656, + "src": "6517:2:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8279,12 +8983,12 @@ }, { "argumentTypes": null, - "id": 3915, + "id": 677, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3896, - "src": "6069:5:8", + "referencedDeclaration": 658, + "src": "6521:5:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8308,32 +9012,32 @@ ], "expression": { "argumentTypes": null, - "id": 3909, + "id": 671, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3892, - "src": "6034:5:8", + "referencedDeclaration": 654, + "src": "6486:5:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, - "id": 3911, + "id": 673, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transferFrom", "nodeType": "MemberAccess", - "referencedDeclaration": 6999, - "src": "6034:18:8", + "referencedDeclaration": 9747, + "src": "6486:18:1", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,address,uint256) external returns (bool)" } }, - "id": 3916, + "id": 678, "isConstant": false, "isLValue": false, "isPure": false, @@ -8341,15 +9045,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6034:41:8", + "src": "6486:41:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3917, + "id": 679, "nodeType": "ExpressionStatement", - "src": "6034:41:8" + "src": "6486:41:1" }, { "expression": { @@ -8361,7 +9065,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3924, + "id": 686, "isConstant": false, "isLValue": false, "isPure": false, @@ -8371,12 +9075,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3921, + "id": 683, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3894, - "src": "6169:2:8", + "referencedDeclaration": 656, + "src": "6621:2:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8392,32 +9096,32 @@ ], "expression": { "argumentTypes": null, - "id": 3919, + "id": 681, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3892, - "src": "6153:5:8", + "referencedDeclaration": 654, + "src": "6605:5:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, - "id": 3920, + "id": 682, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 7031, - "src": "6153:15:8", + "referencedDeclaration": 9779, + "src": "6605:15:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 3922, + "id": 684, "isConstant": false, "isLValue": false, "isPure": false, @@ -8425,7 +9129,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6153:19:8", + "src": "6605:19:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8435,18 +9139,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 3923, + "id": 685, "name": "expectedBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "6176:15:8", + "referencedDeclaration": 662, + "src": "6628:15:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6153:38:8", + "src": "6605:38:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8460,18 +9164,18 @@ "typeString": "bool" } ], - "id": 3918, + "id": 680, "name": "assert", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7283, - "src": "6146:6:8", + "referencedDeclaration": 10031, + "src": "6598:6:1", "typeDescriptions": { "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3925, + "id": 687, "isConstant": false, "isLValue": false, "isPure": false, @@ -8479,20 +9183,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6146:46:8", + "src": "6598:46:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3926, + "id": 688, "nodeType": "ExpressionStatement", - "src": "6146:46:8" + "src": "6598:46:1" } ] }, "documentation": "@dev Securely transfer token from sender to account", - "id": 3928, + "id": 690, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -8500,31 +9204,31 @@ "name": "_secureTokenTransfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 3897, + "id": 659, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3892, + "id": 654, "name": "token", "nodeType": "VariableDeclaration", - "scope": 3928, - "src": "5812:11:8", + "scope": 690, + "src": "6264:11:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" }, "typeName": { "contractScope": null, - "id": 3891, + "id": 653, "name": "ERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7017, - "src": "5812:5:8", + "referencedDeclaration": 9765, + "src": "6264:5:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, @@ -8533,11 +9237,11 @@ }, { "constant": false, - "id": 3894, + "id": 656, "name": "to", "nodeType": "VariableDeclaration", - "scope": 3928, - "src": "5825:10:8", + "scope": 690, + "src": "6277:10:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8545,10 +9249,10 @@ "typeString": "address" }, "typeName": { - "id": 3893, + "id": 655, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5825:7:8", + "src": "6277:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8559,11 +9263,11 @@ }, { "constant": false, - "id": 3896, + "id": 658, "name": "value", "nodeType": "VariableDeclaration", - "scope": 3928, - "src": "5837:10:8", + "scope": 690, + "src": "6289:10:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8571,10 +9275,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3895, + "id": 657, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5837:4:8", + "src": "6289:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8584,26 +9288,26 @@ "visibility": "internal" } ], - "src": "5811:37:8" + "src": "6263:37:1" }, "payable": false, "returnParameters": { - "id": 3898, + "id": 660, "nodeType": "ParameterList", "parameters": [], - "src": "5858:0:8" + "src": "6310:0:1" }, - "scope": 4273, - "src": "5782:417:8", + "scope": 1058, + "src": "6234:417:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 4089, + "id": 863, "nodeType": "Block", - "src": "6304:1526:8", + "src": "6756:1585:1", "statements": [ { "expression": { @@ -8612,29 +9316,178 @@ { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" }, - "id": 3950, + "id": 707, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3941, - "name": "tokenAddress", + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 702, + "name": "serviceWallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1057, + "src": "6774:13:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 703, + "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", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6774:29:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 701, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "6766:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 708, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6766:38:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 709, + "nodeType": "ExpressionStatement", + "src": "6766:38:1" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 721, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 712, + "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3930, - "src": "6339:12:8", + "referencedDeclaration": 692, + "src": "6839:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8644,18 +9497,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3942, + "id": 713, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "6353:3:8", + "referencedDeclaration": 10042, + "src": "6853:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3943, + "id": 714, "isConstant": false, "isLValue": false, "isPure": false, @@ -8663,7 +9516,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6353:10:8", + "src": "6853:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8681,18 +9534,18 @@ "typeString": "address" } ], - "id": 3940, + "id": 711, "name": "getApprovedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4272, - "src": "6322:16:8", + "referencedDeclaration": 1046, + "src": "6822:16:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$3455_storage_ptr_$", + "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": 3944, + "id": 715, "isConstant": false, "isLValue": false, "isPure": false, @@ -8700,43 +9553,43 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6322:42:8", + "src": "6822:42:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken storage pointer" } }, - "id": 3945, + "id": 716, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "approvedOwners", "nodeType": "MemberAccess", - "referencedDeclaration": 3438, - "src": "6322:57:8", + "referencedDeclaration": 165, + "src": "6822:57:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 3948, + "id": 719, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3946, + "id": 717, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "6380:3:8", + "referencedDeclaration": 10042, + "src": "6880:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3947, + "id": 718, "isConstant": false, "isLValue": false, "isPure": false, @@ -8744,7 +9597,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6380:10:8", + "src": "6880:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8755,7 +9608,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6322:69:8", + "src": "6822:69:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8766,14 +9619,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3949, + "id": 720, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "6395:4:8", + "src": "6895:4:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -8781,7 +9634,7 @@ }, "value": "true" }, - "src": "6322:77:8", + "src": "6822:77:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8795,21 +9648,21 @@ "typeString": "bool" } ], - "id": 3939, + "id": 710, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "6314:7:8", + "referencedDeclaration": 10045, + "src": "6814:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3951, + "id": 722, "isConstant": false, "isLValue": false, "isPure": false, @@ -8817,15 +9670,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6314:86:8", + "src": "6814:86:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3952, + "id": 723, "nodeType": "ExpressionStatement", - "src": "6314:86:8" + "src": "6814:86:1" }, { "expression": { @@ -8837,7 +9690,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3969, + "id": 740, "isConstant": false, "isLValue": false, "isPure": false, @@ -8849,12 +9702,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3955, + "id": 726, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3930, - "src": "6435:12:8", + "referencedDeclaration": 692, + "src": "6935:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8864,18 +9717,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3956, + "id": 727, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "6449:3:8", + "referencedDeclaration": 10042, + "src": "6949:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3957, + "id": 728, "isConstant": false, "isLValue": false, "isPure": false, @@ -8883,7 +9736,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6449:10:8", + "src": "6949:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8901,18 +9754,18 @@ "typeString": "address" } ], - "id": 3954, + "id": 725, "name": "getApprovedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4272, - "src": "6418:16:8", + "referencedDeclaration": 1046, + "src": "6918:16:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$3455_storage_ptr_$", + "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": 3958, + "id": 729, "isConstant": false, "isLValue": false, "isPure": false, @@ -8920,21 +9773,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6418:42:8", + "src": "6918:42:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken storage pointer" } }, - "id": 3959, + "id": 730, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "tokensForSaleAmount", "nodeType": "MemberAccess", - "referencedDeclaration": 3450, - "src": "6418:62:8", + "referencedDeclaration": 177, + "src": "6918:62:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8947,12 +9800,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3967, + "id": 738, "name": "amountForSale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3932, - "src": "6551:13:8", + "referencedDeclaration": 694, + "src": "7051:13:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8973,12 +9826,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3961, + "id": 732, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3930, - "src": "6501:12:8", + "referencedDeclaration": 692, + "src": "7001:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8988,18 +9841,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3962, + "id": 733, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "6515:3:8", + "referencedDeclaration": 10042, + "src": "7015:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3963, + "id": 734, "isConstant": false, "isLValue": false, "isPure": false, @@ -9007,7 +9860,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6515:10:8", + "src": "7015:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9025,18 +9878,18 @@ "typeString": "address" } ], - "id": 3960, + "id": 731, "name": "getApprovedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4272, - "src": "6484:16:8", + "referencedDeclaration": 1046, + "src": "6984:16:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$3455_storage_ptr_$", + "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": 3964, + "id": 735, "isConstant": false, "isLValue": false, "isPure": false, @@ -9044,41 +9897,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6484:42:8", + "src": "6984:42:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken storage pointer" } }, - "id": 3965, + "id": 736, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "wTokensIssuedAmount", "nodeType": "MemberAccess", - "referencedDeclaration": 3452, - "src": "6484:62:8", + "referencedDeclaration": 179, + "src": "6984:62:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3966, + "id": 737, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 6853, - "src": "6484:66:8", + "referencedDeclaration": 9601, + "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": 3968, + "id": 739, "isConstant": false, "isLValue": false, "isPure": false, @@ -9086,13 +9939,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6484:81:8", + "src": "6984:81:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6418:147:8", + "src": "6918:147:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9106,21 +9959,21 @@ "typeString": "bool" } ], - "id": 3953, + "id": 724, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "6410:7:8", + "referencedDeclaration": 10045, + "src": "6910:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3970, + "id": 741, "isConstant": false, "isLValue": false, "isPure": false, @@ -9128,15 +9981,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6410:156:8", + "src": "6910:156:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3971, + "id": 742, "nodeType": "ExpressionStatement", - "src": "6410:156:8" + "src": "6910:156:1" }, { "expression": { @@ -9148,7 +10001,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 3982, + "id": 753, "isConstant": false, "isLValue": false, "isPure": false, @@ -9160,12 +10013,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3974, + "id": 745, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3930, - "src": "6601:12:8", + "referencedDeclaration": 692, + "src": "7101:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9175,18 +10028,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3975, + "id": 746, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "6615:3:8", + "referencedDeclaration": 10042, + "src": "7115:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3976, + "id": 747, "isConstant": false, "isLValue": false, "isPure": false, @@ -9194,7 +10047,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6615:10:8", + "src": "7115:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9212,18 +10065,18 @@ "typeString": "address" } ], - "id": 3973, + "id": 744, "name": "getApprovedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4272, - "src": "6584:16:8", + "referencedDeclaration": 1046, + "src": "7084:16:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$3455_storage_ptr_$", + "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": 3977, + "id": 748, "isConstant": false, "isLValue": false, "isPure": false, @@ -9231,23 +10084,23 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6584:42:8", + "src": "7084:42:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken storage pointer" } }, - "id": 3978, + "id": 749, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "crowdsaleAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 3448, - "src": "6584:59:8", + "referencedDeclaration": 175, + "src": "7084:59:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } }, @@ -9259,14 +10112,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 3980, + "id": 751, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6655:1:8", + "src": "7155:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -9282,20 +10135,20 @@ "typeString": "int_const 0" } ], - "id": 3979, + "id": 750, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6647:7:8", + "src": "7147:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 3981, + "id": 752, "isConstant": false, "isLValue": false, "isPure": true, @@ -9303,13 +10156,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6647:10:8", + "src": "7147:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "6584:73:8", + "src": "7084:73:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9323,21 +10176,21 @@ "typeString": "bool" } ], - "id": 3972, + "id": 743, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "6576:7:8", + "referencedDeclaration": 10045, + "src": "7076:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3983, + "id": 754, "isConstant": false, "isLValue": false, "isPure": false, @@ -9345,43 +10198,43 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6576:82:8", + "src": "7076:82:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3984, + "id": 755, "nodeType": "ExpressionStatement", - "src": "6576:82:8" + "src": "7076:82:1" }, { "assignments": [ - 3986 + 757 ], "declarations": [ { "constant": false, - "id": 3986, + "id": 757, "name": "wtoken", "nodeType": "VariableDeclaration", - "scope": 4090, - "src": "6669:13:8", + "scope": 864, + "src": "7169:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" }, "typeName": { "contractScope": null, - "id": 3985, + "id": 756, "name": "WToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5925, - "src": "6669:6:8", + "referencedDeclaration": 8486, + "src": "7169:6:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, @@ -9389,18 +10242,18 @@ "visibility": "internal" } ], - "id": 3991, + "id": 762, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 3989, + "id": 760, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3930, - "src": "6712:12:8", + "referencedDeclaration": 692, + "src": "7212:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9416,32 +10269,32 @@ ], "expression": { "argumentTypes": null, - "id": 3987, + "id": 758, "name": "exchanger", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3372, - "src": "6685:9:8", + "referencedDeclaration": 99, + "src": "7185:9:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$6187", + "typeIdentifier": "t_contract$_ITokenExchanger_$8748", "typeString": "contract ITokenExchanger" } }, - "id": 3988, + "id": 759, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getWTokenByToken", "nodeType": "MemberAccess", - "referencedDeclaration": 6214, - "src": "6685:26:8", + "referencedDeclaration": 8775, + "src": "7185:26:1", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_contract$_WToken_$5925_$", + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_contract$_WToken_$8486_$", "typeString": "function (address) view external returns (contract WToken)" } }, - "id": 3990, + "id": 761, "isConstant": false, "isLValue": false, "isPure": false, @@ -9449,42 +10302,42 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6685:40:8", + "src": "7185:40:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, "nodeType": "VariableDeclarationStatement", - "src": "6669:56:8" + "src": "7169:56:1" }, { "assignments": [ - 3993 + 764 ], "declarations": [ { "constant": false, - "id": 3993, + "id": 764, "name": "crowdsale", "nodeType": "VariableDeclaration", - "scope": 4090, - "src": "6736:23:8", + "scope": 864, + "src": "7236:23:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" }, "typeName": { "contractScope": null, - "id": 3992, + "id": 763, "name": "IW12Crowdsale", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4426, - "src": "6736:13:8", + "referencedDeclaration": 1204, + "src": "7236:13:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } }, @@ -9492,7 +10345,7 @@ "visibility": "internal" } ], - "id": 4026, + "id": 800, "initialValue": { "argumentTypes": null, "arguments": [ @@ -9501,12 +10354,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3997, + "id": 768, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3930, - "src": "6807:12:8", + "referencedDeclaration": 692, + "src": "7307:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9520,20 +10373,20 @@ "typeString": "address" } ], - "id": 3996, + "id": 767, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6799:7:8", + "src": "7299:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 3998, + "id": 769, "isConstant": false, "isLValue": false, "isPure": false, @@ -9541,7 +10394,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6799:21:8", + "src": "7299:21:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9552,14 +10405,14 @@ "arguments": [ { "argumentTypes": null, - "id": 4000, + "id": 771, "name": "wtoken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3986, - "src": "6842:6:8", + "referencedDeclaration": 757, + "src": "7342:6:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } } @@ -9567,24 +10420,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } ], - "id": 3999, + "id": 770, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6834:7:8", + "src": "7334:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 4001, + "id": 772, "isConstant": false, "isLValue": false, "isPure": false, @@ -9592,7 +10445,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6834:15:8", + "src": "7334:15:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9600,12 +10453,12 @@ }, { "argumentTypes": null, - "id": 4002, + "id": 773, "name": "price", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3934, - "src": "6863:5:8", + "referencedDeclaration": 696, + "src": "7363:5:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9613,12 +10466,29 @@ }, { "argumentTypes": null, - "id": 4003, - "name": "serviceWallet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3392, - "src": "6882:13:8", + "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)" + } + }, + "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" @@ -9631,12 +10501,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4005, + "id": 777, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3930, - "src": "6926:12:8", + "referencedDeclaration": 692, + "src": "7428:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9646,18 +10516,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4006, + "id": 778, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "6940:3:8", + "referencedDeclaration": 10042, + "src": "7442:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 4007, + "id": 779, "isConstant": false, "isLValue": false, "isPure": false, @@ -9665,7 +10535,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6940:10:8", + "src": "7442:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9683,18 +10553,18 @@ "typeString": "address" } ], - "id": 4004, + "id": 776, "name": "getApprovedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4272, - "src": "6909:16:8", + "referencedDeclaration": 1046, + "src": "7411:16:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$3455_storage_ptr_$", + "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": 4008, + "id": 780, "isConstant": false, "isLValue": false, "isPure": false, @@ -9702,21 +10572,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6909:42:8", + "src": "7411:42:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken storage pointer" } }, - "id": 4009, + "id": 781, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "ethFeePercent", "nodeType": "MemberAccess", - "referencedDeclaration": 3442, - "src": "6909:56:8", + "referencedDeclaration": 169, + "src": "7411:56:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9729,12 +10599,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4011, + "id": 783, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3930, - "src": "6996:12:8", + "referencedDeclaration": 692, + "src": "7498:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9744,18 +10614,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4012, + "id": 784, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "7010:3:8", + "referencedDeclaration": 10042, + "src": "7512:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 4013, + "id": 785, "isConstant": false, "isLValue": false, "isPure": false, @@ -9763,7 +10633,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7010:10:8", + "src": "7512:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9781,18 +10651,18 @@ "typeString": "address" } ], - "id": 4010, + "id": 782, "name": "getApprovedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4272, - "src": "6979:16:8", + "referencedDeclaration": 1046, + "src": "7481:16:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$3455_storage_ptr_$", + "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": 4014, + "id": 786, "isConstant": false, "isLValue": false, "isPure": false, @@ -9800,21 +10670,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6979:42:8", + "src": "7481:42:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken storage pointer" } }, - "id": 4015, + "id": 787, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "WTokenSaleFeePercent", "nodeType": "MemberAccess", - "referencedDeclaration": 3444, - "src": "6979:63:8", + "referencedDeclaration": 171, + "src": "7481:63:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9827,12 +10697,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4017, + "id": 789, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3930, - "src": "7073:12:8", + "referencedDeclaration": 692, + "src": "7575:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9842,18 +10712,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4018, + "id": 790, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "7087:3:8", + "referencedDeclaration": 10042, + "src": "7589:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 4019, + "id": 791, "isConstant": false, "isLValue": false, "isPure": false, @@ -9861,7 +10731,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7087:10:8", + "src": "7589:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9879,18 +10749,18 @@ "typeString": "address" } ], - "id": 4016, + "id": 788, "name": "getApprovedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4272, - "src": "7056:16:8", + "referencedDeclaration": 1046, + "src": "7558:16:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$3455_storage_ptr_$", + "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": 4020, + "id": 792, "isConstant": false, "isLValue": false, "isPure": false, @@ -9898,21 +10768,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7056:42:8", + "src": "7558:42:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken storage pointer" } }, - "id": 4021, + "id": 793, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "trancheFeePercent", "nodeType": "MemberAccess", - "referencedDeclaration": 3446, - "src": "7056:60:8", + "referencedDeclaration": 173, + "src": "7558:60:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9920,33 +10790,71 @@ }, { "argumentTypes": null, - "id": 4022, - "name": "exchanger", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3372, - "src": "7130:9:8", + "arguments": [ + { + "argumentTypes": null, + "id": 795, + "name": "exchanger", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 99, + "src": "7640:9:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITokenExchanger_$8748", + "typeString": "contract ITokenExchanger" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ITokenExchanger_$8748", + "typeString": "contract ITokenExchanger" + } + ], + "id": 794, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7632:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 796, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7632:18:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$6187", - "typeString": "contract ITokenExchanger" + "typeIdentifier": "t_address", + "typeString": "address" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4023, + "id": 797, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "7153:3:8", + "referencedDeclaration": 10042, + "src": "7664:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 4024, + "id": 798, "isConstant": false, "isLValue": false, "isPure": false, @@ -9954,7 +10862,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7153:10:8", + "src": "7664:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9992,8 +10900,8 @@ "typeString": "uint256" }, { - "typeIdentifier": "t_contract$_ITokenExchanger_$6187", - "typeString": "contract ITokenExchanger" + "typeIdentifier": "t_address", + "typeString": "address" }, { "typeIdentifier": "t_address", @@ -10002,32 +10910,32 @@ ], "expression": { "argumentTypes": null, - "id": 3994, + "id": 765, "name": "factory", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3374, - "src": "6762:7:8", + "referencedDeclaration": 101, + "src": "7262:7:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4453", + "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4451", "typeString": "contract IW12CrowdsaleFactory" } }, - "id": 3995, + "id": 766, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "createCrowdsale", "nodeType": "MemberAccess", - "referencedDeclaration": 4452, - "src": "6762:23:8", + "referencedDeclaration": 4450, + "src": "7262:23: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_$4426_$", + "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_$1204_$", "typeString": "function (address,address,uint256,address,uint256,uint256,uint256,address,address) external returns (contract IW12Crowdsale)" } }, - "id": 4025, + "id": 799, "isConstant": false, "isLValue": false, "isPure": false, @@ -10035,19 +10943,19 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6762:411:8", + "src": "7262:422:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } }, "nodeType": "VariableDeclarationStatement", - "src": "6736:437:8" + "src": "7236:448:1" }, { "expression": { "argumentTypes": null, - "id": 4034, + "id": 808, "isConstant": false, "isLValue": false, "isPure": false, @@ -10059,12 +10967,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4028, + "id": 802, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3930, - "src": "7201:12:8", + "referencedDeclaration": 692, + "src": "7712:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10074,18 +10982,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4029, + "id": 803, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "7215:3:8", + "referencedDeclaration": 10042, + "src": "7726:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 4030, + "id": 804, "isConstant": false, "isLValue": false, "isPure": false, @@ -10093,7 +11001,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7215:10:8", + "src": "7726:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10111,18 +11019,18 @@ "typeString": "address" } ], - "id": 4027, + "id": 801, "name": "getApprovedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4272, - "src": "7184:16:8", + "referencedDeclaration": 1046, + "src": "7695:16:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$3455_storage_ptr_$", + "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": 4031, + "id": 805, "isConstant": false, "isLValue": false, "isPure": false, @@ -10130,23 +11038,23 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7184:42:8", + "src": "7695:42:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken storage pointer" } }, - "id": 4032, + "id": 806, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "crowdsaleAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 3448, - "src": "7184:59:8", + "referencedDeclaration": 175, + "src": "7695:59:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } }, @@ -10154,26 +11062,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 4033, + "id": 807, "name": "crowdsale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3993, - "src": "7246:9:8", + "referencedDeclaration": 764, + "src": "7757:9:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } }, - "src": "7184:71:8", + "src": "7695:71:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } }, - "id": 4035, + "id": 809, "nodeType": "ExpressionStatement", - "src": "7184:71:8" + "src": "7695:71:1" }, { "expression": { @@ -10181,14 +11089,14 @@ "arguments": [ { "argumentTypes": null, - "id": 4039, + "id": 813, "name": "crowdsale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3993, - "src": "7290:9:8", + "referencedDeclaration": 764, + "src": "7801:9:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } } @@ -10196,38 +11104,38 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } ], "expression": { "argumentTypes": null, - "id": 4036, + "id": 810, "name": "wtoken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3986, - "src": "7265:6:8", + "referencedDeclaration": 757, + "src": "7776:6:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, - "id": 4038, + "id": 812, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "addTrustedAccount", "nodeType": "MemberAccess", - "referencedDeclaration": 5898, - "src": "7265:24:8", + "referencedDeclaration": 8459, + "src": "7776:24:1", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", "typeString": "function (address) external" } }, - "id": 4040, + "id": 814, "isConstant": false, "isLValue": false, "isPure": false, @@ -10235,15 +11143,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7265:35:8", + "src": "7776:35:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4041, + "id": 815, "nodeType": "ExpressionStatement", - "src": "7265:35:8" + "src": "7776:35:1" }, { "condition": { @@ -10252,7 +11160,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4049, + "id": 823, "isConstant": false, "isLValue": false, "isPure": false, @@ -10264,12 +11172,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4043, + "id": 817, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3930, - "src": "7332:12:8", + "referencedDeclaration": 692, + "src": "7843:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10279,18 +11187,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4044, + "id": 818, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "7346:3:8", + "referencedDeclaration": 10042, + "src": "7857:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 4045, + "id": 819, "isConstant": false, "isLValue": false, "isPure": false, @@ -10298,7 +11206,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7346:10:8", + "src": "7857:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10316,18 +11224,18 @@ "typeString": "address" } ], - "id": 4042, + "id": 816, "name": "getApprovedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4272, - "src": "7315:16:8", + "referencedDeclaration": 1046, + "src": "7826:16:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$3455_storage_ptr_$", + "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": 4046, + "id": 820, "isConstant": false, "isLValue": false, "isPure": false, @@ -10335,21 +11243,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7315:42:8", + "src": "7826:42:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken storage pointer" } }, - "id": 4047, + "id": 821, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "WTokenSaleFeePercent", "nodeType": "MemberAccess", - "referencedDeclaration": 3444, - "src": "7315:63:8", + "referencedDeclaration": 171, + "src": "7826:63:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10360,14 +11268,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 4048, + "id": 822, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7381:1:8", + "src": "7892:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -10375,20 +11283,20 @@ }, "value": "0" }, - "src": "7315:67:8", + "src": "7826:67:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 4076, + "id": 850, "nodeType": "IfStatement", - "src": "7311:376:8", + "src": "7822:376:1", "trueBody": { - "id": 4075, + "id": 849, "nodeType": "Block", - "src": "7384:303:8", + "src": "7895:303:1", "statements": [ { "expression": { @@ -10399,12 +11307,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4054, + "id": 828, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3930, - "src": "7439:12:8", + "referencedDeclaration": 692, + "src": "7950:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10418,18 +11326,18 @@ "typeString": "address" } ], - "id": 4053, + "id": 827, "name": "ERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7017, - "src": "7433:5:8", + "referencedDeclaration": 9765, + "src": "7944:5:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$7017_$", + "typeIdentifier": "t_type$_t_contract$_ERC20_$9765_$", "typeString": "type(contract ERC20)" } }, - "id": 4055, + "id": 829, "isConstant": false, "isLValue": false, "isPure": false, @@ -10437,9 +11345,9 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7433:19:8", + "src": "7944:19:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, @@ -10448,14 +11356,14 @@ "arguments": [ { "argumentTypes": null, - "id": 4057, + "id": 831, "name": "crowdsale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3993, - "src": "7478:9:8", + "referencedDeclaration": 764, + "src": "7989:9:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } } @@ -10463,24 +11371,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } ], - "id": 4056, + "id": 830, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7470:7:8", + "src": "7981:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 4058, + "id": 832, "isConstant": false, "isLValue": false, "isPure": false, @@ -10488,7 +11396,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7470:18:8", + "src": "7981:18:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10504,12 +11412,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4067, + "id": 841, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3930, - "src": "7615:12:8", + "referencedDeclaration": 692, + "src": "8126:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10519,18 +11427,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4068, + "id": 842, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "7629:3:8", + "referencedDeclaration": 10042, + "src": "8140:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 4069, + "id": 843, "isConstant": false, "isLValue": false, "isPure": false, @@ -10538,7 +11446,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7629:10:8", + "src": "8140:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10556,18 +11464,18 @@ "typeString": "address" } ], - "id": 4066, + "id": 840, "name": "getApprovedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4272, - "src": "7598:16:8", + "referencedDeclaration": 1046, + "src": "8109:16:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$3455_storage_ptr_$", + "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": 4070, + "id": 844, "isConstant": false, "isLValue": false, "isPure": false, @@ -10575,21 +11483,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7598:42:8", + "src": "8109:42:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken storage pointer" } }, - "id": 4071, + "id": 845, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "WTokenSaleFeePercent", "nodeType": "MemberAccess", - "referencedDeclaration": 3444, - "src": "7598:63:8", + "referencedDeclaration": 171, + "src": "8109:63:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10610,12 +11518,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4060, + "id": 834, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3930, - "src": "7523:12:8", + "referencedDeclaration": 692, + "src": "8034:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10625,18 +11533,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4061, + "id": 835, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "7537:3:8", + "referencedDeclaration": 10042, + "src": "8048:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 4062, + "id": 836, "isConstant": false, "isLValue": false, "isPure": false, @@ -10644,7 +11552,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7537:10:8", + "src": "8048:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10662,18 +11570,18 @@ "typeString": "address" } ], - "id": 4059, + "id": 833, "name": "getApprovedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4272, - "src": "7506:16:8", + "referencedDeclaration": 1046, + "src": "8017:16:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$3455_storage_ptr_$", + "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": 4063, + "id": 837, "isConstant": false, "isLValue": false, "isPure": false, @@ -10681,41 +11589,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7506:42:8", + "src": "8017:42:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken storage pointer" } }, - "id": 4064, + "id": 838, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "tokensForSaleAmount", "nodeType": "MemberAccess", - "referencedDeclaration": 3450, - "src": "7506:62:8", + "referencedDeclaration": 177, + "src": "8017:62:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 4065, + "id": 839, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "percent", "nodeType": "MemberAccess", - "referencedDeclaration": 4568, - "src": "7506:91:8", + "referencedDeclaration": 5022, + "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": 4072, + "id": 846, "isConstant": false, "isLValue": false, "isPure": false, @@ -10723,7 +11631,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7506:156:8", + "src": "8017:156:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10733,7 +11641,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" }, { @@ -10747,32 +11655,32 @@ ], "expression": { "argumentTypes": null, - "id": 4050, + "id": 824, "name": "exchanger", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3372, - "src": "7398:9:8", + "referencedDeclaration": 99, + "src": "7909:9:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$6187", + "typeIdentifier": "t_contract$_ITokenExchanger_$8748", "typeString": "contract ITokenExchanger" } }, - "id": 4052, + "id": 826, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "approve", "nodeType": "MemberAccess", - "referencedDeclaration": 6170, - "src": "7398:17:8", + "referencedDeclaration": 8731, + "src": "7909:17:1", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_contract$_ERC20_$7017_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeIdentifier": "t_function_external_nonpayable$_t_contract$_ERC20_$9765_$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (contract ERC20,address,uint256) external returns (bool)" } }, - "id": 4073, + "id": 847, "isConstant": false, "isLValue": false, "isPure": false, @@ -10780,15 +11688,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7398:278:8", + "src": "7909:278:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 4074, + "id": 848, "nodeType": "ExpressionStatement", - "src": "7398:278:8" + "src": "7909:278:1" } ] } @@ -10799,12 +11707,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4078, + "id": 852, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3930, - "src": "7718:12:8", + "referencedDeclaration": 692, + "src": "8229:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10812,12 +11720,12 @@ }, { "argumentTypes": null, - "id": 4079, + "id": 853, "name": "amountForSale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3932, - "src": "7732:13:8", + "referencedDeclaration": 694, + "src": "8243:13:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10835,18 +11743,18 @@ "typeString": "uint256" } ], - "id": 4077, + "id": 851, "name": "addTokensToCrowdsale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4217, - "src": "7697:20:8", + "referencedDeclaration": 991, + "src": "8208:20:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 4080, + "id": 854, "isConstant": false, "isLValue": false, "isPure": false, @@ -10854,15 +11762,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7697:49:8", + "src": "8208:49:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4081, + "id": 855, "nodeType": "ExpressionStatement", - "src": "7697:49:8" + "src": "8208:49:1" }, { "eventCall": { @@ -10870,12 +11778,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4083, + "id": 857, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3930, - "src": "7783:12:8", + "referencedDeclaration": 692, + "src": "8294:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10885,18 +11793,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4084, + "id": 858, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "7797:3:8", + "referencedDeclaration": 10042, + "src": "8308:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 4085, + "id": 859, "isConstant": false, "isLValue": false, "isPure": false, @@ -10904,7 +11812,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7797:10:8", + "src": "8308:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10912,12 +11820,12 @@ }, { "argumentTypes": null, - "id": 4086, + "id": 860, "name": "amountForSale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3932, - "src": "7809:13:8", + "referencedDeclaration": 694, + "src": "8320:13:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10939,18 +11847,18 @@ "typeString": "uint256" } ], - "id": 4082, + "id": 856, "name": "CrowdsaleInitialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3420, - "src": "7762:20:8", + "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": 4087, + "id": 861, "isConstant": false, "isLValue": false, "isPure": false, @@ -10958,57 +11866,57 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7762:61:8", + "src": "8273:61:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4088, + "id": 862, "nodeType": "EmitStatement", - "src": "7757:66:8" + "src": "8268:66:1" } ] }, "documentation": null, - "id": 4090, + "id": 864, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 3937, + "id": 699, "modifierName": { "argumentTypes": null, - "id": 3936, + "id": 698, "name": "nonReentrant", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6689, - "src": "6291:12:8", + "referencedDeclaration": 9330, + "src": "6743:12:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "6291:12:8" + "src": "6743:12:1" } ], "name": "initCrowdsale", "nodeType": "FunctionDefinition", "parameters": { - "id": 3935, + "id": 697, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3930, + "id": 692, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 4090, - "src": "6228:20:8", + "scope": 864, + "src": "6680:20:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11016,10 +11924,10 @@ "typeString": "address" }, "typeName": { - "id": 3929, + "id": 691, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6228:7:8", + "src": "6680:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11030,11 +11938,11 @@ }, { "constant": false, - "id": 3932, + "id": 694, "name": "amountForSale", "nodeType": "VariableDeclaration", - "scope": 4090, - "src": "6250:18:8", + "scope": 864, + "src": "6702:18:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11042,10 +11950,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3931, + "id": 693, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6250:4:8", + "src": "6702:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11056,11 +11964,11 @@ }, { "constant": false, - "id": 3934, + "id": 696, "name": "price", "nodeType": "VariableDeclaration", - "scope": 4090, - "src": "6270:10:8", + "scope": 864, + "src": "6722:10:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11068,10 +11976,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3933, + "id": 695, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6270:4:8", + "src": "6722:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11081,26 +11989,26 @@ "visibility": "internal" } ], - "src": "6227:54:8" + "src": "6679:54:1" }, "payable": false, "returnParameters": { - "id": 3938, + "id": 700, "nodeType": "ParameterList", "parameters": [], - "src": "6304:0:8" + "src": "6756:0:1" }, - "scope": 4273, - "src": "6205:1625:8", + "scope": 1058, + "src": "6657:1684:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" }, { "body": { - "id": 4216, + "id": 990, "nodeType": "Block", - "src": "7915:973:8", + "src": "8426:973:1", "statements": [ { "expression": { @@ -11112,19 +12020,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4100, + "id": 874, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 4098, + "id": 872, "name": "amountForSale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4094, - "src": "7933:13:8", + "referencedDeclaration": 868, + "src": "8444:13:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11135,14 +12043,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 4099, + "id": 873, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7949:1:8", + "src": "8460:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -11150,7 +12058,7 @@ }, "value": "0" }, - "src": "7933:17:8", + "src": "8444:17:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11164,21 +12072,21 @@ "typeString": "bool" } ], - "id": 4097, + "id": 871, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "7925:7:8", + "referencedDeclaration": 10045, + "src": "8436:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 4101, + "id": 875, "isConstant": false, "isLValue": false, "isPure": false, @@ -11186,15 +12094,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7925:26:8", + "src": "8436:26:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4102, + "id": 876, "nodeType": "ExpressionStatement", - "src": "7925:26:8" + "src": "8436:26:1" }, { "expression": { @@ -11206,19 +12114,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 4108, + "id": 882, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 4104, + "id": 878, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4092, - "src": "7969:12:8", + "referencedDeclaration": 866, + "src": "8480:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11232,14 +12140,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 4106, + "id": 880, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7993:1:8", + "src": "8504:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -11255,20 +12163,20 @@ "typeString": "int_const 0" } ], - "id": 4105, + "id": 879, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7985:7:8", + "src": "8496:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 4107, + "id": 881, "isConstant": false, "isLValue": false, "isPure": true, @@ -11276,13 +12184,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7985:10:8", + "src": "8496:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "7969:26:8", + "src": "8480:26:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11296,21 +12204,21 @@ "typeString": "bool" } ], - "id": 4103, + "id": 877, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "7961:7:8", + "referencedDeclaration": 10045, + "src": "8472:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 4109, + "id": 883, "isConstant": false, "isLValue": false, "isPure": false, @@ -11318,15 +12226,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7961:35:8", + "src": "8472:35:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4110, + "id": 884, "nodeType": "ExpressionStatement", - "src": "7961:35:8" + "src": "8472:35:1" }, { "expression": { @@ -11338,7 +12246,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 4119, + "id": 893, "isConstant": false, "isLValue": false, "isPure": false, @@ -11348,12 +12256,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4114, + "id": 888, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4092, - "src": "8041:12:8", + "referencedDeclaration": 866, + "src": "8552:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11369,32 +12277,32 @@ ], "expression": { "argumentTypes": null, - "id": 4112, + "id": 886, "name": "exchanger", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3372, - "src": "8014:9:8", + "referencedDeclaration": 99, + "src": "8525:9:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$6187", + "typeIdentifier": "t_contract$_ITokenExchanger_$8748", "typeString": "contract ITokenExchanger" } }, - "id": 4113, + "id": 887, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getWTokenByToken", "nodeType": "MemberAccess", - "referencedDeclaration": 6214, - "src": "8014:26:8", + "referencedDeclaration": 8775, + "src": "8525:26:1", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_contract$_WToken_$5925_$", + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_contract$_WToken_$8486_$", "typeString": "function (address) view external returns (contract WToken)" } }, - "id": 4115, + "id": 889, "isConstant": false, "isLValue": false, "isPure": false, @@ -11402,9 +12310,9 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8014:40:8", + "src": "8525:40:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, @@ -11416,14 +12324,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 4117, + "id": 891, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8066:1:8", + "src": "8577:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -11439,20 +12347,20 @@ "typeString": "int_const 0" } ], - "id": 4116, + "id": 890, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8058:7:8", + "src": "8569:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 4118, + "id": 892, "isConstant": false, "isLValue": false, "isPure": true, @@ -11460,13 +12368,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8058:10:8", + "src": "8569:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "8014:54:8", + "src": "8525:54:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11480,21 +12388,21 @@ "typeString": "bool" } ], - "id": 4111, + "id": 885, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "8006:7:8", + "referencedDeclaration": 10045, + "src": "8517:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 4120, + "id": 894, "isConstant": false, "isLValue": false, "isPure": false, @@ -11502,15 +12410,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8006:63:8", + "src": "8517:63:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4121, + "id": 895, "nodeType": "ExpressionStatement", - "src": "8006:63:8" + "src": "8517:63:1" }, { "expression": { @@ -11522,7 +12430,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 4132, + "id": 906, "isConstant": false, "isLValue": false, "isPure": false, @@ -11534,12 +12442,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4124, + "id": 898, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4092, - "src": "8104:12:8", + "referencedDeclaration": 866, + "src": "8615:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11549,18 +12457,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4125, + "id": 899, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "8118:3:8", + "referencedDeclaration": 10042, + "src": "8629:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 4126, + "id": 900, "isConstant": false, "isLValue": false, "isPure": false, @@ -11568,7 +12476,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8118:10:8", + "src": "8629:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11586,18 +12494,18 @@ "typeString": "address" } ], - "id": 4123, + "id": 897, "name": "getApprovedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4272, - "src": "8087:16:8", + "referencedDeclaration": 1046, + "src": "8598:16:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$3455_storage_ptr_$", + "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": 4127, + "id": 901, "isConstant": false, "isLValue": false, "isPure": false, @@ -11605,23 +12513,23 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8087:42:8", + "src": "8598:42:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken storage pointer" } }, - "id": 4128, + "id": 902, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "crowdsaleAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 3448, - "src": "8087:59:8", + "referencedDeclaration": 175, + "src": "8598:59:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } }, @@ -11633,14 +12541,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 4130, + "id": 904, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8158:1:8", + "src": "8669:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -11656,20 +12564,20 @@ "typeString": "int_const 0" } ], - "id": 4129, + "id": 903, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8150:7:8", + "src": "8661:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 4131, + "id": 905, "isConstant": false, "isLValue": false, "isPure": true, @@ -11677,13 +12585,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8150:10:8", + "src": "8661:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "8087:73:8", + "src": "8598:73:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11697,21 +12605,21 @@ "typeString": "bool" } ], - "id": 4122, + "id": 896, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "8079:7:8", + "referencedDeclaration": 10045, + "src": "8590:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 4133, + "id": 907, "isConstant": false, "isLValue": false, "isPure": false, @@ -11719,15 +12627,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8079:82:8", + "src": "8590:82:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4134, + "id": 908, "nodeType": "ExpressionStatement", - "src": "8079:82:8" + "src": "8590:82:1" }, { "expression": { @@ -11739,7 +12647,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 4146, + "id": 920, "isConstant": false, "isLValue": false, "isPure": false, @@ -11753,12 +12661,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4137, + "id": 911, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4092, - "src": "8196:12:8", + "referencedDeclaration": 866, + "src": "8707:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11768,18 +12676,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4138, + "id": 912, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "8210:3:8", + "referencedDeclaration": 10042, + "src": "8721:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 4139, + "id": 913, "isConstant": false, "isLValue": false, "isPure": false, @@ -11787,7 +12695,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8210:10:8", + "src": "8721:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11805,18 +12713,18 @@ "typeString": "address" } ], - "id": 4136, + "id": 910, "name": "getApprovedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4272, - "src": "8179:16:8", + "referencedDeclaration": 1046, + "src": "8690:16:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$3455_storage_ptr_$", + "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": 4140, + "id": 914, "isConstant": false, "isLValue": false, "isPure": false, @@ -11824,43 +12732,43 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8179:42:8", + "src": "8690:42:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken storage pointer" } }, - "id": 4141, + "id": 915, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "approvedOwners", "nodeType": "MemberAccess", - "referencedDeclaration": 3438, - "src": "8179:57:8", + "referencedDeclaration": 165, + "src": "8690:57:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 4144, + "id": 918, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4142, + "id": 916, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "8237:3:8", + "referencedDeclaration": 10042, + "src": "8748:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 4143, + "id": 917, "isConstant": false, "isLValue": false, "isPure": false, @@ -11868,7 +12776,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8237:10:8", + "src": "8748:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11879,7 +12787,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8179:69:8", + "src": "8690:69:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11890,14 +12798,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "74727565", - "id": 4145, + "id": 919, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "8252:4:8", + "src": "8763:4:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -11905,7 +12813,7 @@ }, "value": "true" }, - "src": "8179:77:8", + "src": "8690:77:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11919,21 +12827,21 @@ "typeString": "bool" } ], - "id": 4135, + "id": 909, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "8171:7:8", + "referencedDeclaration": 10045, + "src": "8682:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 4147, + "id": 921, "isConstant": false, "isLValue": false, "isPure": false, @@ -11941,15 +12849,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8171:86:8", + "src": "8682:86:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4148, + "id": 922, "nodeType": "ExpressionStatement", - "src": "8171:86:8" + "src": "8682:86:1" }, { "expression": { @@ -11961,7 +12869,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4165, + "id": 939, "isConstant": false, "isLValue": false, "isPure": false, @@ -11973,12 +12881,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4151, + "id": 925, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4092, - "src": "8292:12:8", + "referencedDeclaration": 866, + "src": "8803:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11988,18 +12896,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4152, + "id": 926, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "8306:3:8", + "referencedDeclaration": 10042, + "src": "8817:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 4153, + "id": 927, "isConstant": false, "isLValue": false, "isPure": false, @@ -12007,7 +12915,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8306:10:8", + "src": "8817:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12025,18 +12933,18 @@ "typeString": "address" } ], - "id": 4150, + "id": 924, "name": "getApprovedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4272, - "src": "8275:16:8", + "referencedDeclaration": 1046, + "src": "8786:16:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$3455_storage_ptr_$", + "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": 4154, + "id": 928, "isConstant": false, "isLValue": false, "isPure": false, @@ -12044,21 +12952,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8275:42:8", + "src": "8786:42:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken storage pointer" } }, - "id": 4155, + "id": 929, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "tokensForSaleAmount", "nodeType": "MemberAccess", - "referencedDeclaration": 3450, - "src": "8275:62:8", + "referencedDeclaration": 177, + "src": "8786:62:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12071,12 +12979,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4163, + "id": 937, "name": "amountForSale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4094, - "src": "8408:13:8", + "referencedDeclaration": 868, + "src": "8919:13:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12097,12 +13005,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4157, + "id": 931, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4092, - "src": "8358:12:8", + "referencedDeclaration": 866, + "src": "8869:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12112,18 +13020,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4158, + "id": 932, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "8372:3:8", + "referencedDeclaration": 10042, + "src": "8883:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 4159, + "id": 933, "isConstant": false, "isLValue": false, "isPure": false, @@ -12131,7 +13039,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8372:10:8", + "src": "8883:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12149,18 +13057,18 @@ "typeString": "address" } ], - "id": 4156, + "id": 930, "name": "getApprovedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4272, - "src": "8341:16:8", + "referencedDeclaration": 1046, + "src": "8852:16:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$3455_storage_ptr_$", + "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": 4160, + "id": 934, "isConstant": false, "isLValue": false, "isPure": false, @@ -12168,41 +13076,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8341:42:8", + "src": "8852:42:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken storage pointer" } }, - "id": 4161, + "id": 935, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "wTokensIssuedAmount", "nodeType": "MemberAccess", - "referencedDeclaration": 3452, - "src": "8341:62:8", + "referencedDeclaration": 179, + "src": "8852:62:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 4162, + "id": 936, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 6853, - "src": "8341:66:8", + "referencedDeclaration": 9601, + "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": 4164, + "id": 938, "isConstant": false, "isLValue": false, "isPure": false, @@ -12210,13 +13118,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8341:81:8", + "src": "8852:81:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "8275:147:8", + "src": "8786:147:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -12230,21 +13138,21 @@ "typeString": "bool" } ], - "id": 4149, + "id": 923, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "8267:7:8", + "referencedDeclaration": 10045, + "src": "8778:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 4166, + "id": 940, "isConstant": false, "isLValue": false, "isPure": false, @@ -12252,43 +13160,43 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8267:156:8", + "src": "8778:156:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4167, + "id": 941, "nodeType": "ExpressionStatement", - "src": "8267:156:8" + "src": "8778:156:1" }, { "assignments": [ - 4169 + 943 ], "declarations": [ { "constant": false, - "id": 4169, + "id": 943, "name": "token", "nodeType": "VariableDeclaration", - "scope": 4217, - "src": "8434:12:8", + "scope": 991, + "src": "8945:12:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" }, "typeName": { "contractScope": null, - "id": 4168, + "id": 942, "name": "WToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5925, - "src": "8434:6:8", + "referencedDeclaration": 8486, + "src": "8945:6:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, @@ -12296,18 +13204,18 @@ "visibility": "internal" } ], - "id": 4174, + "id": 948, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 4172, + "id": 946, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4092, - "src": "8476:12:8", + "referencedDeclaration": 866, + "src": "8987:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12323,32 +13231,32 @@ ], "expression": { "argumentTypes": null, - "id": 4170, + "id": 944, "name": "exchanger", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3372, - "src": "8449:9:8", + "referencedDeclaration": 99, + "src": "8960:9:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$6187", + "typeIdentifier": "t_contract$_ITokenExchanger_$8748", "typeString": "contract ITokenExchanger" } }, - "id": 4171, + "id": 945, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getWTokenByToken", "nodeType": "MemberAccess", - "referencedDeclaration": 6214, - "src": "8449:26:8", + "referencedDeclaration": 8775, + "src": "8960:26:1", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_contract$_WToken_$5925_$", + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_contract$_WToken_$8486_$", "typeString": "function (address) view external returns (contract WToken)" } }, - "id": 4173, + "id": 947, "isConstant": false, "isLValue": false, "isPure": false, @@ -12356,42 +13264,42 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8449:40:8", + "src": "8960:40:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, "nodeType": "VariableDeclarationStatement", - "src": "8434:55:8" + "src": "8945:55:1" }, { "assignments": [ - 4176 + 950 ], "declarations": [ { "constant": false, - "id": 4176, + "id": 950, "name": "crowdsale", "nodeType": "VariableDeclaration", - "scope": 4217, - "src": "8499:23:8", + "scope": 991, + "src": "9010:23:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" }, "typeName": { "contractScope": null, - "id": 4175, + "id": 949, "name": "IW12Crowdsale", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4426, - "src": "8499:13:8", + "referencedDeclaration": 1204, + "src": "9010:13:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } }, @@ -12399,7 +13307,7 @@ "visibility": "internal" } ], - "id": 4183, + "id": 957, "initialValue": { "argumentTypes": null, "expression": { @@ -12407,12 +13315,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4178, + "id": 952, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4092, - "src": "8542:12:8", + "referencedDeclaration": 866, + "src": "9053:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12422,18 +13330,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4179, + "id": 953, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "8556:3:8", + "referencedDeclaration": 10042, + "src": "9067:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 4180, + "id": 954, "isConstant": false, "isLValue": false, "isPure": false, @@ -12441,7 +13349,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8556:10:8", + "src": "9067:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12459,18 +13367,18 @@ "typeString": "address" } ], - "id": 4177, + "id": 951, "name": "getApprovedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4272, - "src": "8525:16:8", + "referencedDeclaration": 1046, + "src": "9036:16:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$3455_storage_ptr_$", + "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": 4181, + "id": 955, "isConstant": false, "isLValue": false, "isPure": false, @@ -12478,33 +13386,33 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8525:42:8", + "src": "9036:42:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken storage pointer" } }, - "id": 4182, + "id": 956, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "crowdsaleAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 3448, - "src": "8525:59:8", + "referencedDeclaration": 175, + "src": "9036:59:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } }, "nodeType": "VariableDeclarationStatement", - "src": "8499:85:8" + "src": "9010:85:1" }, { "expression": { "argumentTypes": null, - "id": 4199, + "id": 973, "isConstant": false, "isLValue": false, "isPure": false, @@ -12516,12 +13424,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4185, + "id": 959, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4092, - "src": "8612:12:8", + "referencedDeclaration": 866, + "src": "9123:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12531,18 +13439,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4186, + "id": 960, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "8626:3:8", + "referencedDeclaration": 10042, + "src": "9137:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 4187, + "id": 961, "isConstant": false, "isLValue": false, "isPure": false, @@ -12550,7 +13458,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8626:10:8", + "src": "9137:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12568,18 +13476,18 @@ "typeString": "address" } ], - "id": 4184, + "id": 958, "name": "getApprovedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4272, - "src": "8595:16:8", + "referencedDeclaration": 1046, + "src": "9106:16:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$3455_storage_ptr_$", + "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": 4188, + "id": 962, "isConstant": false, "isLValue": false, "isPure": false, @@ -12587,21 +13495,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8595:42:8", + "src": "9106:42:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken storage pointer" } }, - "id": 4189, + "id": 963, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "wTokensIssuedAmount", "nodeType": "MemberAccess", - "referencedDeclaration": 3452, - "src": "8595:62:8", + "referencedDeclaration": 179, + "src": "9106:62:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12614,12 +13522,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4197, + "id": 971, "name": "amountForSale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4094, - "src": "8740:13:8", + "referencedDeclaration": 868, + "src": "9251:13:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12640,12 +13548,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4191, + "id": 965, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4092, - "src": "8677:12:8", + "referencedDeclaration": 866, + "src": "9188:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12655,18 +13563,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4192, + "id": 966, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "8691:3:8", + "referencedDeclaration": 10042, + "src": "9202:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 4193, + "id": 967, "isConstant": false, "isLValue": false, "isPure": false, @@ -12674,7 +13582,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8691:10:8", + "src": "9202:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12692,18 +13600,18 @@ "typeString": "address" } ], - "id": 4190, + "id": 964, "name": "getApprovedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4272, - "src": "8660:16:8", + "referencedDeclaration": 1046, + "src": "9171:16:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$3455_storage_ptr_$", + "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": 4194, + "id": 968, "isConstant": false, "isLValue": false, "isPure": false, @@ -12711,41 +13619,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8660:42:8", + "src": "9171:42:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken storage pointer" } }, - "id": 4195, + "id": 969, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "wTokensIssuedAmount", "nodeType": "MemberAccess", - "referencedDeclaration": 3452, - "src": "8660:75:8", + "referencedDeclaration": 179, + "src": "9171:75:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 4196, + "id": 970, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 6853, - "src": "8660:79:8", + "referencedDeclaration": 9601, + "src": "9171:79: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": 4198, + "id": 972, "isConstant": false, "isLValue": false, "isPure": false, @@ -12753,21 +13661,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8660:94:8", + "src": "9171:94:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "8595:159:8", + "src": "9106:159:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 4200, + "id": 974, "nodeType": "ExpressionStatement", - "src": "8595:159:8" + "src": "9106:159:1" }, { "expression": { @@ -12775,25 +13683,25 @@ "arguments": [ { "argumentTypes": null, - "id": 4204, + "id": 978, "name": "crowdsale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4176, - "src": "8776:9:8", + "referencedDeclaration": 950, + "src": "9287:9:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } }, { "argumentTypes": null, - "id": 4205, + "id": 979, "name": "amountForSale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4094, - "src": "8787:13:8", + "referencedDeclaration": 868, + "src": "9298:13:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12802,14 +13710,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 4206, + "id": 980, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8802:1:8", + "src": "9313:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -12821,7 +13729,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" }, { @@ -12835,32 +13743,32 @@ ], "expression": { "argumentTypes": null, - "id": 4201, + "id": 975, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4169, - "src": "8765:5:8", + "referencedDeclaration": 943, + "src": "9276:5:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, - "id": 4203, + "id": 977, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mint", "nodeType": "MemberAccess", - "referencedDeclaration": 5587, - "src": "8765:10:8", + "referencedDeclaration": 8148, + "src": "9276:10:1", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint32_$returns$_t_bool_$", "typeString": "function (address,uint256,uint32) external returns (bool)" } }, - "id": 4207, + "id": 981, "isConstant": false, "isLValue": false, "isPure": false, @@ -12868,15 +13776,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8765:39:8", + "src": "9276:39:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 4208, + "id": 982, "nodeType": "ExpressionStatement", - "src": "8765:39:8" + "src": "9276:39:1" }, { "eventCall": { @@ -12884,12 +13792,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4210, + "id": 984, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4092, - "src": "8841:12:8", + "referencedDeclaration": 866, + "src": "9352:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12899,18 +13807,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4211, + "id": 985, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "8855:3:8", + "referencedDeclaration": 10042, + "src": "9366:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 4212, + "id": 986, "isConstant": false, "isLValue": false, "isPure": false, @@ -12918,7 +13826,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8855:10:8", + "src": "9366:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12926,12 +13834,12 @@ }, { "argumentTypes": null, - "id": 4213, + "id": 987, "name": "amountForSale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4094, - "src": "8867:13:8", + "referencedDeclaration": 868, + "src": "9378:13:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12953,18 +13861,18 @@ "typeString": "uint256" } ], - "id": 4209, + "id": 983, "name": "CrowdsaleTokenMinted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3428, - "src": "8820:20:8", + "referencedDeclaration": 155, + "src": "9331:20:1", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 4214, + "id": 988, "isConstant": false, "isLValue": false, "isPure": false, @@ -12972,20 +13880,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8820:61:8", + "src": "9331:61:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4215, + "id": 989, "nodeType": "EmitStatement", - "src": "8815:66:8" + "src": "9326:66:1" } ] }, "documentation": null, - "id": 4217, + "id": 991, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -12993,16 +13901,16 @@ "name": "addTokensToCrowdsale", "nodeType": "FunctionDefinition", "parameters": { - "id": 4095, + "id": 869, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4092, + "id": 866, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 4217, - "src": "7866:20:8", + "scope": 991, + "src": "8377:20:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13010,10 +13918,10 @@ "typeString": "address" }, "typeName": { - "id": 4091, + "id": 865, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7866:7:8", + "src": "8377:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13024,11 +13932,11 @@ }, { "constant": false, - "id": 4094, + "id": 868, "name": "amountForSale", "nodeType": "VariableDeclaration", - "scope": 4217, - "src": "7888:18:8", + "scope": 991, + "src": "8399:18:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13036,10 +13944,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4093, + "id": 867, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "7888:4:8", + "src": "8399:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13049,26 +13957,26 @@ "visibility": "internal" } ], - "src": "7865:42:8" + "src": "8376:42:1" }, "payable": false, "returnParameters": { - "id": 4096, + "id": 870, "nodeType": "ParameterList", "parameters": [], - "src": "7915:0:8" + "src": "8426:0:1" }, - "scope": 4273, - "src": "7836:1052:8", + "scope": 1058, + "src": "8347:1052:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 4232, + "id": 1006, "nodeType": "Block", - "src": "8997:85:8", + "src": "9508:85:1", "statements": [ { "expression": { @@ -13078,12 +13986,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4227, + "id": 1001, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4219, - "src": "9031:12:8", + "referencedDeclaration": 993, + "src": "9542:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13091,12 +13999,12 @@ }, { "argumentTypes": null, - "id": 4228, + "id": 1002, "name": "ownerAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4221, - "src": "9045:12:8", + "referencedDeclaration": 995, + "src": "9556:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13114,18 +14022,18 @@ "typeString": "address" } ], - "id": 4226, + "id": 1000, "name": "getApprovedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4272, - "src": "9014:16:8", + "referencedDeclaration": 1046, + "src": "9525:16:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$3455_storage_ptr_$", + "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": 4229, + "id": 1003, "isConstant": false, "isLValue": false, "isPure": false, @@ -13133,35 +14041,35 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9014:44:8", + "src": "9525:44:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken storage pointer" } }, - "id": 4230, + "id": 1004, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "crowdsaleAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 3448, - "src": "9014:61:8", + "referencedDeclaration": 175, + "src": "9525:61:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } }, - "functionReturnParameters": 4225, - "id": 4231, + "functionReturnParameters": 999, + "id": 1005, "nodeType": "Return", - "src": "9007:68:8" + "src": "9518:68:1" } ] }, "documentation": null, - "id": 4233, + "id": 1007, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -13169,16 +14077,16 @@ "name": "getTokenCrowdsale", "nodeType": "FunctionDefinition", "parameters": { - "id": 4222, + "id": 996, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4219, + "id": 993, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 4233, - "src": "8921:20:8", + "scope": 1007, + "src": "9432:20:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13186,10 +14094,10 @@ "typeString": "address" }, "typeName": { - "id": 4218, + "id": 992, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8921:7:8", + "src": "9432:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13200,11 +14108,11 @@ }, { "constant": false, - "id": 4221, + "id": 995, "name": "ownerAddress", "nodeType": "VariableDeclaration", - "scope": 4233, - "src": "8943:20:8", + "scope": 1007, + "src": "9454:20:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13212,10 +14120,10 @@ "typeString": "address" }, "typeName": { - "id": 4220, + "id": 994, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8943:7:8", + "src": "9454:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13225,20 +14133,20 @@ "visibility": "internal" } ], - "src": "8920:44:8" + "src": "9431:44:1" }, "payable": false, "returnParameters": { - "id": 4225, + "id": 999, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4224, + "id": 998, "name": "", "nodeType": "VariableDeclaration", - "scope": 4233, - "src": "8988:7:8", + "scope": 1007, + "src": "9499:7:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13246,10 +14154,10 @@ "typeString": "address" }, "typeName": { - "id": 4223, + "id": 997, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8988:7:8", + "src": "9499:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13259,45 +14167,45 @@ "visibility": "internal" } ], - "src": "8987:9:8" + "src": "9498:9:1" }, - "scope": 4273, - "src": "8894:188:8", + "scope": 1058, + "src": "9405:188:1", "stateMutability": "view", "superFunction": null, "visibility": "external" }, { "body": { - "id": 4245, + "id": 1019, "nodeType": "Block", - "src": "9159:49:8", + "src": "9670:49:1", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 4241, + "id": 1015, "name": "approvedOwnersList", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3388, - "src": "9176:18:8", + "referencedDeclaration": 117, + "src": "9687:18:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$", "typeString": "mapping(address => address[] storage ref)" } }, - "id": 4243, + "id": 1017, "indexExpression": { "argumentTypes": null, - "id": 4242, + "id": 1016, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4235, - "src": "9195:5:8", + "referencedDeclaration": 1009, + "src": "9706:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13308,21 +14216,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9176:25:8", + "src": "9687:25:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "functionReturnParameters": 4240, - "id": 4244, + "functionReturnParameters": 1014, + "id": 1018, "nodeType": "Return", - "src": "9169:32:8" + "src": "9680:32:1" } ] }, "documentation": null, - "id": 4246, + "id": 1020, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -13330,16 +14238,16 @@ "name": "getTokenOwners", "nodeType": "FunctionDefinition", "parameters": { - "id": 4236, + "id": 1010, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4235, + "id": 1009, "name": "token", "nodeType": "VariableDeclaration", - "scope": 4246, - "src": "9112:13:8", + "scope": 1020, + "src": "9623:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13347,10 +14255,10 @@ "typeString": "address" }, "typeName": { - "id": 4234, + "id": 1008, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9112:7:8", + "src": "9623:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13360,20 +14268,20 @@ "visibility": "internal" } ], - "src": "9111:15:8" + "src": "9622:15:1" }, "payable": false, "returnParameters": { - "id": 4240, + "id": 1014, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4239, + "id": 1013, "name": "", "nodeType": "VariableDeclaration", - "scope": 4246, - "src": "9148:9:8", + "scope": 1020, + "src": "9659:9:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13382,19 +14290,19 @@ }, "typeName": { "baseType": { - "id": 4237, + "id": 1011, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9148:7:8", + "src": "9659:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 4238, + "id": 1012, "length": null, "nodeType": "ArrayTypeName", - "src": "9148:9:8", + "src": "9659:9:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -13404,43 +14312,43 @@ "visibility": "internal" } ], - "src": "9147:11:8" + "src": "9658:11:1" }, - "scope": 4273, - "src": "9088:120:8", + "scope": 1058, + "src": "9599:120:1", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 4253, + "id": 1027, "nodeType": "Block", - "src": "9278:33:8", + "src": "9789:33:1", "statements": [ { "expression": { "argumentTypes": null, - "id": 4251, + "id": 1025, "name": "exchanger", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3372, - "src": "9295:9:8", + "referencedDeclaration": 99, + "src": "9806:9:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$6187", + "typeIdentifier": "t_contract$_ITokenExchanger_$8748", "typeString": "contract ITokenExchanger" } }, - "functionReturnParameters": 4250, - "id": 4252, + "functionReturnParameters": 1024, + "id": 1026, "nodeType": "Return", - "src": "9288:16:8" + "src": "9799:16:1" } ] }, "documentation": null, - "id": 4254, + "id": 1028, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -13448,38 +14356,38 @@ "name": "getExchanger", "nodeType": "FunctionDefinition", "parameters": { - "id": 4247, + "id": 1021, "nodeType": "ParameterList", "parameters": [], - "src": "9235:2:8" + "src": "9746:2:1" }, "payable": false, "returnParameters": { - "id": 4250, + "id": 1024, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4249, + "id": 1023, "name": "", "nodeType": "VariableDeclaration", - "scope": 4254, - "src": "9261:15:8", + "scope": 1028, + "src": "9772:15:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$6187", + "typeIdentifier": "t_contract$_ITokenExchanger_$8748", "typeString": "contract ITokenExchanger" }, "typeName": { "contractScope": null, - "id": 4248, + "id": 1022, "name": "ITokenExchanger", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6187, - "src": "9261:15:8", + "referencedDeclaration": 8748, + "src": "9772:15:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$6187", + "typeIdentifier": "t_contract$_ITokenExchanger_$8748", "typeString": "contract ITokenExchanger" } }, @@ -13487,63 +14395,63 @@ "visibility": "internal" } ], - "src": "9260:17:8" + "src": "9771:17:1" }, - "scope": 4273, - "src": "9214:97:8", + "scope": 1058, + "src": "9725:97:1", "stateMutability": "view", "superFunction": null, "visibility": "external" }, { "body": { - "id": 4271, + "id": 1045, "nodeType": "Block", - "src": "9438:87:8", + "src": "9949:87:1", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 4263, + "id": 1037, "name": "approvedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3383, - "src": "9455:14:8", + "referencedDeclaration": 112, + "src": "9966:14:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ListedToken_$3455_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_ListedToken_$182_storage_$dyn_storage", "typeString": "struct W12Lister.ListedToken storage ref[] storage ref" } }, - "id": 4269, + "id": 1043, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 4264, + "id": 1038, "name": "approvedTokensIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3380, - "src": "9470:19:8", + "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": 4266, + "id": 1040, "indexExpression": { "argumentTypes": null, - "id": 4265, + "id": 1039, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4256, - "src": "9490:12:8", + "referencedDeclaration": 1030, + "src": "10001:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13554,21 +14462,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9470:33:8", + "src": "9981:33:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint16_$", "typeString": "mapping(address => uint16)" } }, - "id": 4268, + "id": 1042, "indexExpression": { "argumentTypes": null, - "id": 4267, + "id": 1041, "name": "ownerAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4258, - "src": "9504:12:8", + "referencedDeclaration": 1032, + "src": "10015:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13579,7 +14487,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9470:47:8", + "src": "9981:47:1", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" @@ -13590,21 +14498,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9455:63:8", + "src": "9966:63:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage", + "typeIdentifier": "t_struct$_ListedToken_$182_storage", "typeString": "struct W12Lister.ListedToken storage ref" } }, - "functionReturnParameters": 4262, - "id": 4270, + "functionReturnParameters": 1036, + "id": 1044, "nodeType": "Return", - "src": "9448:70:8" + "src": "9959:70:1" } ] }, "documentation": null, - "id": 4272, + "id": 1046, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -13612,16 +14520,16 @@ "name": "getApprovedToken", "nodeType": "FunctionDefinition", "parameters": { - "id": 4259, + "id": 1033, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4256, + "id": 1030, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 4272, - "src": "9343:20:8", + "scope": 1046, + "src": "9854:20:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13629,10 +14537,10 @@ "typeString": "address" }, "typeName": { - "id": 4255, + "id": 1029, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9343:7:8", + "src": "9854:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13643,11 +14551,11 @@ }, { "constant": false, - "id": 4258, + "id": 1032, "name": "ownerAddress", "nodeType": "VariableDeclaration", - "scope": 4272, - "src": "9365:20:8", + "scope": 1046, + "src": "9876:20:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13655,10 +14563,10 @@ "typeString": "address" }, "typeName": { - "id": 4257, + "id": 1031, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9365:7:8", + "src": "9876:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13668,35 +14576,35 @@ "visibility": "internal" } ], - "src": "9342:44:8" + "src": "9853:44:1" }, "payable": false, "returnParameters": { - "id": 4262, + "id": 1036, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4261, + "id": 1035, "name": "result", "nodeType": "VariableDeclaration", - "scope": 4272, - "src": "9410:26:8", + "scope": 1046, + "src": "9921:26:1", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken" }, "typeName": { "contractScope": null, - "id": 4260, + "id": 1034, "name": "ListedToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3455, - "src": "9410:11:8", + "referencedDeclaration": 182, + "src": "9921:11:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken" } }, @@ -13704,138 +14612,293 @@ "visibility": "internal" } ], - "src": "9409:28:8" + "src": "9920:28:1" }, - "scope": 4273, - "src": "9317:208:8", + "scope": 1058, + "src": "9828:208:1", "stateMutability": "view", "superFunction": null, "visibility": "internal" - } - ], - "scope": 4274, - "src": "471:9056:8" - } - ], - "src": "0:9528:8" - }, - "legacyAST": { - "absolutePath": "/home/circleci/code/contracts/W12Lister.sol", - "exportedSymbols": { - "W12Lister": [ - 4273 - ] - }, - "id": 4274, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3349, - "literals": [ - "solidity", - "^", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:24:8" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 3350, - "nodeType": "ImportDirective", - "scope": 4274, - "sourceUnit": 6855, - "src": "26:59:8", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 3351, - "nodeType": "ImportDirective", - "scope": 4274, - "sourceUnit": 6941, - "src": "86:63:8", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/ReentrancyGuard.sol", - "file": "openzeppelin-solidity/contracts/ReentrancyGuard.sol", - "id": 3352, - "nodeType": "ImportDirective", - "scope": 4274, - "sourceUnit": 6691, - "src": "150:61:8", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "id": 3353, - "nodeType": "ImportDirective", - "scope": 4274, - "sourceUnit": 7018, - "src": "212:63:8", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/circleci/code/contracts/interfaces/IW12CrowdsaleFactory.sol", - "file": "./interfaces/IW12CrowdsaleFactory.sol", - "id": 3354, - "nodeType": "ImportDirective", - "scope": 4274, - "sourceUnit": 4454, - "src": "276:47:8", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/circleci/code/contracts/libs/Percent.sol", - "file": "./libs/Percent.sol", - "id": 3355, - "nodeType": "ImportDirective", - "scope": 4274, - "sourceUnit": 4632, - "src": "324:28:8", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/circleci/code/contracts/token/WToken.sol", - "file": "./token/WToken.sol", - "id": 3356, + }, + { + "body": { + "id": 1056, + "nodeType": "Block", + "src": "10096:60:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1053, + "name": "SERVICE_WALLET_ID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 94, + "src": "10131:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "expression": { + "argumentTypes": null, + "id": 1051, + "name": "wallets", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 103, + "src": "10113:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWallets_$9239", + "typeString": "contract IWallets" + } + }, + "id": 1052, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getWallet", + "nodeType": "MemberAccess", + "referencedDeclaration": 9238, + "src": "10113:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint8_$returns$_t_address_$", + "typeString": "function (uint8) view external returns (address)" + } + }, + "id": 1054, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10113:36:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "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": [ + { + "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, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:1" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", + "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", + "id": 67, + "nodeType": "ImportDirective", + "scope": 1059, + "sourceUnit": 9603, + "src": "26:59:1", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", + "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", + "id": 68, + "nodeType": "ImportDirective", + "scope": 1059, + "sourceUnit": 9689, + "src": "86:63:1", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/ReentrancyGuard.sol", + "file": "openzeppelin-solidity/contracts/ReentrancyGuard.sol", + "id": 69, + "nodeType": "ImportDirective", + "scope": 1059, + "sourceUnit": 9332, + "src": "150:61:1", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", + "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", + "id": 70, + "nodeType": "ImportDirective", + "scope": 1059, + "sourceUnit": 9766, + "src": "212:63:1", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/access/rbac/RBAC.sol", + "file": "openzeppelin-solidity/contracts/access/rbac/RBAC.sol", + "id": 71, + "nodeType": "ImportDirective", + "scope": 1059, + "sourceUnit": 9439, + "src": "276:62:1", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/crowdsale/factories/IW12CrowdsaleFactory.sol", + "file": "./crowdsale/factories/IW12CrowdsaleFactory.sol", + "id": 72, + "nodeType": "ImportDirective", + "scope": 1059, + "sourceUnit": 4452, + "src": "339:56:1", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/wallets/IWallets.sol", + "file": "./wallets/IWallets.sol", + "id": 73, + "nodeType": "ImportDirective", + "scope": 1059, + "sourceUnit": 9240, + "src": "396:32:1", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/libs/Percent.sol", + "file": "./libs/Percent.sol", + "id": 74, + "nodeType": "ImportDirective", + "scope": 1059, + "sourceUnit": 5104, + "src": "429:28:1", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/circleci/code/contracts/token/WToken.sol", + "file": "./token/WToken.sol", + "id": 75, "nodeType": "ImportDirective", - "scope": 4274, - "sourceUnit": 5926, - "src": "353:28:8", + "scope": 1059, + "sourceUnit": 8487, + "src": "458:28:1", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/token/exchanger/ITokenExchanger.sol", "file": "./token/exchanger/ITokenExchanger.sol", - "id": 3357, + "id": 76, "nodeType": "ImportDirective", - "scope": 4274, - "sourceUnit": 6188, - "src": "382:47:8", + "scope": 1059, + "sourceUnit": 8749, + "src": "487:47:1", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/versioning/Versionable.sol", "file": "./versioning/Versionable.sol", - "id": 3358, + "id": 77, "nodeType": "ImportDirective", - "scope": 4274, - "sourceUnit": 6510, - "src": "430:38:8", + "scope": 1059, + "sourceUnit": 9071, + "src": "535:38:1", "symbolAliases": [], "unitAlias": "" }, @@ -13845,97 +14908,117 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 3359, + "id": 78, "name": "Versionable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6509, - "src": "493:11:8", + "referencedDeclaration": 9070, + "src": "598:11:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_Versionable_$6509", + "typeIdentifier": "t_contract$_Versionable_$9070", "typeString": "contract Versionable" } }, - "id": 3360, + "id": 79, + "nodeType": "InheritanceSpecifier", + "src": "598:11:1" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 80, + "name": "RBAC", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9438, + "src": "611:4:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RBAC_$9438", + "typeString": "contract RBAC" + } + }, + "id": 81, "nodeType": "InheritanceSpecifier", - "src": "493:11:8" + "src": "611:4:1" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 3361, + "id": 82, "name": "Ownable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6940, - "src": "506:7:8", + "referencedDeclaration": 9688, + "src": "617:7:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$6940", + "typeIdentifier": "t_contract$_Ownable_$9688", "typeString": "contract Ownable" } }, - "id": 3362, + "id": 83, "nodeType": "InheritanceSpecifier", - "src": "506:7:8" + "src": "617:7:1" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 3363, + "id": 84, "name": "ReentrancyGuard", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6690, - "src": "515:15:8", + "referencedDeclaration": 9331, + "src": "626:15:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ReentrancyGuard_$6690", + "typeIdentifier": "t_contract$_ReentrancyGuard_$9331", "typeString": "contract ReentrancyGuard" } }, - "id": 3364, + "id": 85, "nodeType": "InheritanceSpecifier", - "src": "515:15:8" + "src": "626:15:1" } ], "contractDependencies": [ - 5925, - 6509, - 6690, - 6940 + 8486, + 9070, + 9331, + 9438, + 9688 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 4273, + "id": 1058, "linearizedBaseContracts": [ - 4273, - 6690, - 6940, - 6509 + 1058, + 9331, + 9688, + 9438, + 9070 ], "name": "W12Lister", "nodeType": "ContractDefinition", "nodes": [ { - "id": 3367, + "id": 88, "libraryName": { "contractScope": null, - "id": 3365, + "id": 86, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6854, - "src": "543:8:8", + "referencedDeclaration": 9602, + "src": "654:8:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$6854", + "typeIdentifier": "t_contract$_SafeMath_$9602", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "537:24:8", + "src": "648:24:1", "typeName": { - "id": 3366, + "id": 87, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "556:4:8", + "src": "667:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13943,54 +15026,140 @@ } }, { - "id": 3370, + "id": 91, "libraryName": { "contractScope": null, - "id": 3368, + "id": 89, "name": "Percent", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4631, - "src": "572:7:8", + "referencedDeclaration": 5103, + "src": "683:7:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_Percent_$4631", + "typeIdentifier": "t_contract$_Percent_$5103", "typeString": "library Percent" } }, "nodeType": "UsingForDirective", - "src": "566:23:8", + "src": "677:23:1", "typeName": { - "id": 3369, + "id": 90, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "584:4:8", + "src": "695:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } }, + { + "constant": true, + "id": 94, + "name": "SERVICE_WALLET_ID", + "nodeType": "VariableDeclaration", + "scope": 1058, + "src": "706:36:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 92, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "706:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "31", + "id": 93, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "741:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "visibility": "internal" + }, + { + "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": 3372, + "id": 99, "name": "exchanger", "nodeType": "VariableDeclaration", - "scope": 4273, - "src": "595:32:8", + "scope": 1058, + "src": "789:32:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$6187", + "typeIdentifier": "t_contract$_ITokenExchanger_$8748", "typeString": "contract ITokenExchanger" }, "typeName": { "contractScope": null, - "id": 3371, + "id": 98, "name": "ITokenExchanger", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6187, - "src": "595:15:8", + "referencedDeclaration": 8748, + "src": "789:15:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$6187", + "typeIdentifier": "t_contract$_ITokenExchanger_$8748", "typeString": "contract ITokenExchanger" } }, @@ -13999,26 +15168,26 @@ }, { "constant": false, - "id": 3374, + "id": 101, "name": "factory", "nodeType": "VariableDeclaration", - "scope": 4273, - "src": "633:35:8", + "scope": 1058, + "src": "827:35:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4453", + "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4451", "typeString": "contract IW12CrowdsaleFactory" }, "typeName": { "contractScope": null, - "id": 3373, + "id": 100, "name": "IW12CrowdsaleFactory", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4453, - "src": "633:20:8", + "referencedDeclaration": 4451, + "src": "827:20:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4453", + "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4451", "typeString": "contract IW12CrowdsaleFactory" } }, @@ -14027,11 +15196,39 @@ }, { "constant": false, - "id": 3380, + "id": 103, + "name": "wallets", + "nodeType": "VariableDeclaration", + "scope": 1058, + "src": "868:23:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWallets_$9239", + "typeString": "contract IWallets" + }, + "typeName": { + "contractScope": null, + "id": 102, + "name": "IWallets", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9239, + "src": "868:8:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWallets_$9239", + "typeString": "contract IWallets" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 109, "name": "approvedTokensIndex", "nodeType": "VariableDeclaration", - "scope": 4273, - "src": "761:75:8", + "scope": 1058, + "src": "984:75:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -14039,46 +15236,46 @@ "typeString": "mapping(address => mapping(address => uint16))" }, "typeName": { - "id": 3379, + "id": 108, "keyType": { - "id": 3375, + "id": 104, "name": "address", "nodeType": "ElementaryTypeName", - "src": "770:7:8", + "src": "993:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "761:48:8", + "src": "984:48:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint16_$_$", "typeString": "mapping(address => mapping(address => uint16))" }, "valueType": { - "id": 3378, + "id": 107, "keyType": { - "id": 3376, + "id": 105, "name": "address", "nodeType": "ElementaryTypeName", - "src": "790:7:8", + "src": "1013:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "781:27:8", + "src": "1004:27:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint16_$", "typeString": "mapping(address => uint16)" }, "valueType": { - "id": 3377, + "id": 106, "name": "uint16", "nodeType": "ElementaryTypeName", - "src": "801:6:8", + "src": "1024:6:1", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" @@ -14091,36 +15288,36 @@ }, { "constant": false, - "id": 3383, + "id": 112, "name": "approvedTokens", "nodeType": "VariableDeclaration", - "scope": 4273, - "src": "842:35:8", + "scope": 1058, + "src": "1065:35:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ListedToken_$3455_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_ListedToken_$182_storage_$dyn_storage", "typeString": "struct W12Lister.ListedToken[]" }, "typeName": { "baseType": { "contractScope": null, - "id": 3381, + "id": 110, "name": "ListedToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3455, - "src": "842:11:8", + "referencedDeclaration": 182, + "src": "1065:11:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken" } }, - "id": 3382, + "id": 111, "length": null, "nodeType": "ArrayTypeName", - "src": "842:13:8", + "src": "1065:13:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ListedToken_$3455_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_ListedToken_$182_storage_$dyn_storage_ptr", "typeString": "struct W12Lister.ListedToken[]" } }, @@ -14129,11 +15326,11 @@ }, { "constant": false, - "id": 3388, + "id": 117, "name": "approvedOwnersList", "nodeType": "VariableDeclaration", - "scope": 4273, - "src": "921:51:8", + "scope": 1058, + "src": "1144:51:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -14141,38 +15338,38 @@ "typeString": "mapping(address => address[])" }, "typeName": { - "id": 3387, + "id": 116, "keyType": { - "id": 3384, + "id": 113, "name": "address", "nodeType": "ElementaryTypeName", - "src": "931:7:8", + "src": "1154:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "921:32:8", + "src": "1144:32:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$", "typeString": "mapping(address => address[])" }, "valueType": { "baseType": { - "id": 3385, + "id": 114, "name": "address", "nodeType": "ElementaryTypeName", - "src": "942:7:8", + "src": "1165:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 3386, + "id": 115, "length": null, "nodeType": "ArrayTypeName", - "src": "942:9:8", + "src": "1165:9:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -14184,11 +15381,11 @@ }, { "constant": false, - "id": 3390, + "id": 119, "name": "approvedTokensLength", "nodeType": "VariableDeclaration", - "scope": 4273, - "src": "978:34:8", + "scope": 1058, + "src": "1201:34:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -14196,10 +15393,10 @@ "typeString": "uint16" }, "typeName": { - "id": 3389, + "id": 118, "name": "uint16", "nodeType": "ElementaryTypeName", - "src": "978:6:8", + "src": "1201:6:1", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" @@ -14208,50 +15405,24 @@ "value": null, "visibility": "public" }, - { - "constant": false, - "id": 3392, - "name": "serviceWallet", - "nodeType": "VariableDeclaration", - "scope": 4273, - "src": "1018:28:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3391, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1018:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, { "anonymous": false, "documentation": null, - "id": 3402, + "id": 129, "name": "OwnerWhitelisted", "nodeType": "EventDefinition", "parameters": { - "id": 3401, + "id": 128, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3394, + "id": 121, "indexed": true, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 3402, - "src": "1076:28:8", + "scope": 129, + "src": "1265:28:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14259,10 +15430,10 @@ "typeString": "address" }, "typeName": { - "id": 3393, + "id": 120, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1076:7:8", + "src": "1265:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14273,12 +15444,12 @@ }, { "constant": false, - "id": 3396, + "id": 123, "indexed": true, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 3402, - "src": "1106:26:8", + "scope": 129, + "src": "1295:26:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14286,10 +15457,10 @@ "typeString": "address" }, "typeName": { - "id": 3395, + "id": 122, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1106:7:8", + "src": "1295:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14300,12 +15471,12 @@ }, { "constant": false, - "id": 3398, + "id": 125, "indexed": false, "name": "name", "nodeType": "VariableDeclaration", - "scope": 3402, - "src": "1134:11:8", + "scope": 129, + "src": "1323:11:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14313,10 +15484,10 @@ "typeString": "string" }, "typeName": { - "id": 3397, + "id": 124, "name": "string", "nodeType": "ElementaryTypeName", - "src": "1134:6:8", + "src": "1323:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -14327,12 +15498,12 @@ }, { "constant": false, - "id": 3400, + "id": 127, "indexed": false, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 3402, - "src": "1147:13:8", + "scope": 129, + "src": "1336:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14340,10 +15511,10 @@ "typeString": "string" }, "typeName": { - "id": 3399, + "id": 126, "name": "string", "nodeType": "ElementaryTypeName", - "src": "1147:6:8", + "src": "1336:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -14353,28 +15524,28 @@ "visibility": "internal" } ], - "src": "1075:86:8" + "src": "1264:86:1" }, - "src": "1053:109:8" + "src": "1242:109:1" }, { "anonymous": false, "documentation": null, - "id": 3412, + "id": 139, "name": "TokenPlaced", "nodeType": "EventDefinition", "parameters": { - "id": 3411, + "id": 138, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3404, + "id": 131, "indexed": true, "name": "originalTokenAddress", "nodeType": "VariableDeclaration", - "scope": 3412, - "src": "1185:36:8", + "scope": 139, + "src": "1374:36:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14382,10 +15553,10 @@ "typeString": "address" }, "typeName": { - "id": 3403, + "id": 130, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1185:7:8", + "src": "1374:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14396,12 +15567,12 @@ }, { "constant": false, - "id": 3406, + "id": 133, "indexed": true, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 3412, - "src": "1223:26:8", + "scope": 139, + "src": "1412:26:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14409,10 +15580,10 @@ "typeString": "address" }, "typeName": { - "id": 3405, + "id": 132, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1223:7:8", + "src": "1412:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14423,12 +15594,12 @@ }, { "constant": false, - "id": 3408, + "id": 135, "indexed": false, "name": "tokenAmount", "nodeType": "VariableDeclaration", - "scope": 3412, - "src": "1251:16:8", + "scope": 139, + "src": "1440:16:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14436,10 +15607,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3407, + "id": 134, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1251:4:8", + "src": "1440:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14450,12 +15621,12 @@ }, { "constant": false, - "id": 3410, + "id": 137, "indexed": false, "name": "placedTokenAddress", "nodeType": "VariableDeclaration", - "scope": 3412, - "src": "1269:26:8", + "scope": 139, + "src": "1458:26:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14463,10 +15634,10 @@ "typeString": "address" }, "typeName": { - "id": 3409, + "id": 136, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1269:7:8", + "src": "1458:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14476,28 +15647,28 @@ "visibility": "internal" } ], - "src": "1184:112:8" + "src": "1373:112:1" }, - "src": "1167:130:8" + "src": "1356:130:1" }, { "anonymous": false, "documentation": null, - "id": 3420, + "id": 147, "name": "CrowdsaleInitialized", "nodeType": "EventDefinition", "parameters": { - "id": 3419, + "id": 146, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3414, + "id": 141, "indexed": true, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 3420, - "src": "1329:28:8", + "scope": 147, + "src": "1518:28:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14505,10 +15676,10 @@ "typeString": "address" }, "typeName": { - "id": 3413, + "id": 140, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1329:7:8", + "src": "1518:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14519,12 +15690,12 @@ }, { "constant": false, - "id": 3416, + "id": 143, "indexed": true, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 3420, - "src": "1359:26:8", + "scope": 147, + "src": "1548:26:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14532,10 +15703,10 @@ "typeString": "address" }, "typeName": { - "id": 3415, + "id": 142, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1359:7:8", + "src": "1548:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14546,12 +15717,12 @@ }, { "constant": false, - "id": 3418, + "id": 145, "indexed": false, "name": "amountForSale", "nodeType": "VariableDeclaration", - "scope": 3420, - "src": "1387:18:8", + "scope": 147, + "src": "1576:18:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14559,10 +15730,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3417, + "id": 144, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1387:4:8", + "src": "1576:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14572,28 +15743,28 @@ "visibility": "internal" } ], - "src": "1328:78:8" + "src": "1517:78:1" }, - "src": "1302:105:8" + "src": "1491:105:1" }, { "anonymous": false, "documentation": null, - "id": 3428, + "id": 155, "name": "CrowdsaleTokenMinted", "nodeType": "EventDefinition", "parameters": { - "id": 3427, + "id": 154, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3422, + "id": 149, "indexed": true, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 3428, - "src": "1439:28:8", + "scope": 155, + "src": "1628:28:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14601,10 +15772,10 @@ "typeString": "address" }, "typeName": { - "id": 3421, + "id": 148, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1439:7:8", + "src": "1628:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14615,12 +15786,12 @@ }, { "constant": false, - "id": 3424, + "id": 151, "indexed": true, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 3428, - "src": "1469:26:8", + "scope": 155, + "src": "1658:26:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14628,10 +15799,10 @@ "typeString": "address" }, "typeName": { - "id": 3423, + "id": 150, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1469:7:8", + "src": "1658:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14642,12 +15813,12 @@ }, { "constant": false, - "id": 3426, + "id": 153, "indexed": false, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 3428, - "src": "1497:11:8", + "scope": 155, + "src": "1686:11:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14655,10 +15826,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3425, + "id": 152, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1497:4:8", + "src": "1686:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14668,21 +15839,21 @@ "visibility": "internal" } ], - "src": "1438:71:8" + "src": "1627:71:1" }, - "src": "1412:98:8" + "src": "1601:98:1" }, { "canonicalName": "W12Lister.ListedToken", - "id": 3455, + "id": 182, "members": [ { "constant": false, - "id": 3430, + "id": 157, "name": "name", "nodeType": "VariableDeclaration", - "scope": 3455, - "src": "1545:11:8", + "scope": 182, + "src": "1734:11:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14690,10 +15861,10 @@ "typeString": "string" }, "typeName": { - "id": 3429, + "id": 156, "name": "string", "nodeType": "ElementaryTypeName", - "src": "1545:6:8", + "src": "1734:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -14704,11 +15875,11 @@ }, { "constant": false, - "id": 3432, + "id": 159, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 3455, - "src": "1566:13:8", + "scope": 182, + "src": "1755:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14716,10 +15887,10 @@ "typeString": "string" }, "typeName": { - "id": 3431, + "id": 158, "name": "string", "nodeType": "ElementaryTypeName", - "src": "1566:6:8", + "src": "1755:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -14730,11 +15901,11 @@ }, { "constant": false, - "id": 3434, + "id": 161, "name": "decimals", "nodeType": "VariableDeclaration", - "scope": 3455, - "src": "1589:14:8", + "scope": 182, + "src": "1778:14:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14742,10 +15913,10 @@ "typeString": "uint8" }, "typeName": { - "id": 3433, + "id": 160, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "1589:5:8", + "src": "1778:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -14756,11 +15927,11 @@ }, { "constant": false, - "id": 3438, + "id": 165, "name": "approvedOwners", "nodeType": "VariableDeclaration", - "scope": 3455, - "src": "1613:39:8", + "scope": 182, + "src": "1802:39:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14768,28 +15939,28 @@ "typeString": "mapping(address => bool)" }, "typeName": { - "id": 3437, + "id": 164, "keyType": { - "id": 3435, + "id": 162, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1621:7:8", + "src": "1810:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "1613:24:8", + "src": "1802:24:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { - "id": 3436, + "id": 163, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1632:4:8", + "src": "1821:4:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14801,11 +15972,11 @@ }, { "constant": false, - "id": 3440, + "id": 167, "name": "feePercent", "nodeType": "VariableDeclaration", - "scope": 3455, - "src": "1662:15:8", + "scope": 182, + "src": "1851:15:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14813,10 +15984,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3439, + "id": 166, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1662:4:8", + "src": "1851:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14827,11 +15998,11 @@ }, { "constant": false, - "id": 3442, + "id": 169, "name": "ethFeePercent", "nodeType": "VariableDeclaration", - "scope": 3455, - "src": "1687:18:8", + "scope": 182, + "src": "1876:18:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14839,10 +16010,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3441, + "id": 168, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1687:4:8", + "src": "1876:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14853,11 +16024,11 @@ }, { "constant": false, - "id": 3444, + "id": 171, "name": "WTokenSaleFeePercent", "nodeType": "VariableDeclaration", - "scope": 3455, - "src": "1715:25:8", + "scope": 182, + "src": "1904:25:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14865,10 +16036,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3443, + "id": 170, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1715:4:8", + "src": "1904:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14879,11 +16050,11 @@ }, { "constant": false, - "id": 3446, + "id": 173, "name": "trancheFeePercent", "nodeType": "VariableDeclaration", - "scope": 3455, - "src": "1750:22:8", + "scope": 182, + "src": "1939:22:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14891,10 +16062,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3445, + "id": 172, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1750:4:8", + "src": "1939:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14905,26 +16076,26 @@ }, { "constant": false, - "id": 3448, + "id": 175, "name": "crowdsaleAddress", "nodeType": "VariableDeclaration", - "scope": 3455, - "src": "1782:30:8", + "scope": 182, + "src": "1971:30:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" }, "typeName": { "contractScope": null, - "id": 3447, + "id": 174, "name": "IW12Crowdsale", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4426, - "src": "1782:13:8", + "referencedDeclaration": 1204, + "src": "1971:13:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } }, @@ -14933,11 +16104,11 @@ }, { "constant": false, - "id": 3450, + "id": 177, "name": "tokensForSaleAmount", "nodeType": "VariableDeclaration", - "scope": 3455, - "src": "1822:24:8", + "scope": 182, + "src": "2011:24:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14945,10 +16116,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3449, + "id": 176, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1822:4:8", + "src": "2011:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14959,11 +16130,11 @@ }, { "constant": false, - "id": 3452, + "id": 179, "name": "wTokensIssuedAmount", "nodeType": "VariableDeclaration", - "scope": 3455, - "src": "1856:24:8", + "scope": 182, + "src": "2045:24:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14971,10 +16142,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3451, + "id": 178, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1856:4:8", + "src": "2045:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14985,11 +16156,11 @@ }, { "constant": false, - "id": 3454, + "id": 181, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 3455, - "src": "1890:20:8", + "scope": 182, + "src": "2079:20:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14997,10 +16168,10 @@ "typeString": "address" }, "typeName": { - "id": 3453, + "id": 180, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1890:7:8", + "src": "2079:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15012,15 +16183,15 @@ ], "name": "ListedToken", "nodeType": "StructDefinition", - "scope": 4273, - "src": "1516:401:8", + "scope": 1058, + "src": "1705:401:1", "visibility": "public" }, { "body": { - "id": 3510, + "id": 235, "nodeType": "Block", - "src": "2098:315:8", + "src": "2282:298:1", "statements": [ { "expression": { @@ -15032,22 +16203,22 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 3474, + "id": 201, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3470, - "name": "_serviceWallet", + "id": 197, + "name": "_factory", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3459, - "src": "2116:14:8", + "referencedDeclaration": 188, + "src": "2300:8:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4451", + "typeString": "contract IW12CrowdsaleFactory" } }, "nodeType": "BinaryOperation", @@ -15058,14 +16229,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 3472, + "id": 199, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2142:1:8", + "src": "2320:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -15081,20 +16252,20 @@ "typeString": "int_const 0" } ], - "id": 3471, + "id": 198, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2134:7:8", + "src": "2312:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 3473, + "id": 200, "isConstant": false, "isLValue": false, "isPure": true, @@ -15102,13 +16273,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2134:10:8", + "src": "2312:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2116:28:8", + "src": "2300:22:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -15122,21 +16293,21 @@ "typeString": "bool" } ], - "id": 3469, + "id": 196, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "2108:7:8", + "referencedDeclaration": 10045, + "src": "2292:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3475, + "id": 202, "isConstant": false, "isLValue": false, "isPure": false, @@ -15144,15 +16315,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2108:37:8", + "src": "2292:31:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3476, + "id": 203, "nodeType": "ExpressionStatement", - "src": "2108:37:8" + "src": "2292:31:1" }, { "expression": { @@ -15164,22 +16335,22 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 3482, + "id": 209, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3478, - "name": "_factory", + "id": 205, + "name": "_exchanger", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3461, - "src": "2163:8:8", + "referencedDeclaration": 190, + "src": "2341:10:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4453", - "typeString": "contract IW12CrowdsaleFactory" + "typeIdentifier": "t_contract$_ITokenExchanger_$8748", + "typeString": "contract ITokenExchanger" } }, "nodeType": "BinaryOperation", @@ -15190,14 +16361,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 3480, + "id": 207, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2183:1:8", + "src": "2363:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -15213,20 +16384,20 @@ "typeString": "int_const 0" } ], - "id": 3479, + "id": 206, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2175:7:8", + "src": "2355:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 3481, + "id": 208, "isConstant": false, "isLValue": false, "isPure": true, @@ -15234,13 +16405,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2175:10:8", + "src": "2355:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2163:22:8", + "src": "2341:24:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -15254,21 +16425,21 @@ "typeString": "bool" } ], - "id": 3477, + "id": 204, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "2155:7:8", + "referencedDeclaration": 10045, + "src": "2333:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3483, + "id": 210, "isConstant": false, "isLValue": false, "isPure": false, @@ -15276,166 +16447,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2155:31:8", + "src": "2333:33:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3484, + "id": 211, "nodeType": "ExpressionStatement", - "src": "2155:31:8" + "src": "2333:33:1" }, { "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3490, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3486, - "name": "_exchanger", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3463, - "src": "2204:10:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$6187", - "typeString": "contract ITokenExchanger" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3488, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2226:1:8", - "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": 3487, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2218:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3489, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2218:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2204:24:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3485, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 7297, - 7298 - ], - "referencedDeclaration": 7297, - "src": "2196:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2196:33:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3492, - "nodeType": "ExpressionStatement", - "src": "2196:33:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 3495, + "id": 214, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3493, + "id": 212, "name": "exchanger", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3372, - "src": "2240:9:8", + "referencedDeclaration": 99, + "src": "2377:9:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$6187", + "typeIdentifier": "t_contract$_ITokenExchanger_$8748", "typeString": "contract ITokenExchanger" } }, @@ -15443,91 +16482,91 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3494, + "id": 213, "name": "_exchanger", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3463, - "src": "2252:10:8", + "referencedDeclaration": 190, + "src": "2389:10:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$6187", + "typeIdentifier": "t_contract$_ITokenExchanger_$8748", "typeString": "contract ITokenExchanger" } }, - "src": "2240:22:8", + "src": "2377:22:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$6187", + "typeIdentifier": "t_contract$_ITokenExchanger_$8748", "typeString": "contract ITokenExchanger" } }, - "id": 3496, + "id": 215, "nodeType": "ExpressionStatement", - "src": "2240:22:8" + "src": "2377:22:1" }, { "expression": { "argumentTypes": null, - "id": 3499, + "id": 218, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3497, - "name": "serviceWallet", + "id": 216, + "name": "wallets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3392, - "src": "2272:13:8", + "referencedDeclaration": 103, + "src": "2409:7:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_contract$_IWallets_$9239", + "typeString": "contract IWallets" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3498, - "name": "_serviceWallet", + "id": 217, + "name": "_wallets", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3459, - "src": "2288:14:8", + "referencedDeclaration": 186, + "src": "2419:8:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_contract$_IWallets_$9239", + "typeString": "contract IWallets" } }, - "src": "2272:30:8", + "src": "2409:18:1", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_contract$_IWallets_$9239", + "typeString": "contract IWallets" } }, - "id": 3500, + "id": 219, "nodeType": "ExpressionStatement", - "src": "2272:30:8" + "src": "2409:18:1" }, { "expression": { "argumentTypes": null, - "id": 3503, + "id": 222, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3501, + "id": 220, "name": "factory", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3374, - "src": "2312:7:8", + "referencedDeclaration": 101, + "src": "2437:7:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4453", + "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4451", "typeString": "contract IW12CrowdsaleFactory" } }, @@ -15535,31 +16574,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3502, + "id": 221, "name": "_factory", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3461, - "src": "2322:8:8", + "referencedDeclaration": 188, + "src": "2447:8:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4453", + "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4451", "typeString": "contract IW12CrowdsaleFactory" } }, - "src": "2312:18:8", + "src": "2437:18:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4453", + "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4451", "typeString": "contract IW12CrowdsaleFactory" } }, - "id": 3504, + "id": 223, "nodeType": "ExpressionStatement", - "src": "2312:18:8" + "src": "2437:18:1" }, { "expression": { "argumentTypes": null, - "id": 3508, + "id": 227, "isConstant": false, "isLValue": false, "isPure": false, @@ -15567,126 +16606,577 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "2340:23:8", + "src": "2465:23:1", "subExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3505, + "id": 224, "name": "approvedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3383, - "src": "2340:14:8", + "referencedDeclaration": 112, + "src": "2465:14:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ListedToken_$3455_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_ListedToken_$182_storage_$dyn_storage", "typeString": "struct W12Lister.ListedToken storage ref[] storage ref" } - }, - "id": 3507, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2340:21:8", + }, + "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" + } + }, + "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": 10042, + "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": 9405, + "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": 9070, + "src": "2254:11:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Versionable_$9070_$", + "typeString": "type(contract Versionable)" + } + }, + "nodeType": "ModifierInvocation", + "src": "2254:20:1" + } + ], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 191, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 184, + "name": "version", + "nodeType": "VariableDeclaration", + "scope": 236, + "src": "2133:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 183, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2133:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 186, + "name": "_wallets", + "nodeType": "VariableDeclaration", + "scope": 236, + "src": "2155:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWallets_$9239", + "typeString": "contract IWallets" + }, + "typeName": { + "contractScope": null, + "id": 185, + "name": "IWallets", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9239, + "src": "2155:8:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWallets_$9239", + "typeString": "contract IWallets" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 188, + "name": "_factory", + "nodeType": "VariableDeclaration", + "scope": 236, + "src": "2182:29:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4451", + "typeString": "contract IW12CrowdsaleFactory" + }, + "typeName": { + "contractScope": null, + "id": 187, + "name": "IW12CrowdsaleFactory", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4451, + "src": "2182:20:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4451", + "typeString": "contract IW12CrowdsaleFactory" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 190, + "name": "_exchanger", + "nodeType": "VariableDeclaration", + "scope": 236, + "src": "2221:26:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITokenExchanger_$8748", + "typeString": "contract ITokenExchanger" + }, + "typeName": { + "contractScope": null, + "id": 189, + "name": "ITokenExchanger", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 8748, + "src": "2221:15:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITokenExchanger_$8748", + "typeString": "contract ITokenExchanger" + } + }, + "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": 9405, + "src": "2650:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (address,string memory)" + } + }, + "id": 246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2650:30:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "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": 9636, + "src": "2630:9:1", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2630:9:1" + } + ], + "name": "addAdmin", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 239, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 238, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 249, + "src": "2604:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 237, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2604:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "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": 9425, + "src": "2760:10:1", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "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", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 3509, + "id": 260, "nodeType": "ExpressionStatement", - "src": "2340:23:8" + "src": "2760:33:1" } ] }, "documentation": null, - "id": 3511, + "id": 262, "implemented": true, - "isConstructor": true, + "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { - "arguments": [ - { - "argumentTypes": null, - "id": 3466, - "name": "version", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3457, - "src": "2082:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3467, + "arguments": null, + "id": 254, "modifierName": { "argumentTypes": null, - "id": 3465, - "name": "Versionable", + "id": 253, + "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6509, - "src": "2070:11:8", + "referencedDeclaration": 9636, + "src": "2740:9:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Versionable_$6509_$", - "typeString": "type(contract Versionable)" + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2070:20:8" + "src": "2740:9:1" } ], - "name": "", + "name": "removeAdmin", "nodeType": "FunctionDefinition", "parameters": { - "id": 3464, + "id": 252, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3457, - "name": "version", - "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1944:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3456, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1944:4:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3459, - "name": "_serviceWallet", + "id": 251, + "name": "_operator", "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1966:22:8", + "scope": 262, + "src": "2714:17:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15694,10 +17184,10 @@ "typeString": "address" }, "typeName": { - "id": 3458, + "id": 250, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1966:7:8", + "src": "2714:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15705,84 +17195,28 @@ }, "value": null, "visibility": "internal" - }, - { - "constant": false, - "id": 3461, - "name": "_factory", - "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "1998:29:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4453", - "typeString": "contract IW12CrowdsaleFactory" - }, - "typeName": { - "contractScope": null, - "id": 3460, - "name": "IW12CrowdsaleFactory", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4453, - "src": "1998:20:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4453", - "typeString": "contract IW12CrowdsaleFactory" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3463, - "name": "_exchanger", - "nodeType": "VariableDeclaration", - "scope": 3511, - "src": "2037:26:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$6187", - "typeString": "contract ITokenExchanger" - }, - "typeName": { - "contractScope": null, - "id": 3462, - "name": "ITokenExchanger", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6187, - "src": "2037:15:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$6187", - "typeString": "contract ITokenExchanger" - } - }, - "value": null, - "visibility": "internal" } ], - "src": "1934:135:8" + "src": "2713:19:1" }, "payable": false, "returnParameters": { - "id": 3468, + "id": 255, "nodeType": "ParameterList", "parameters": [], - "src": "2098:0:8" + "src": "2750:0:1" }, - "scope": 4273, - "src": "1923:490:8", + "scope": 1058, + "src": "2693:107:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 3721, + "id": 473, "nodeType": "Block", - "src": "2722:1457:8", + "src": "3124:1457:1", "statements": [ { "expression": { @@ -15794,19 +17228,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 3539, + "id": 291, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3535, + "id": 287, "name": "tokenOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3513, - "src": "2741:10:8", + "referencedDeclaration": 264, + "src": "3143:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15820,14 +17254,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 3537, + "id": 289, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2763:1:8", + "src": "3165:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -15843,20 +17277,20 @@ "typeString": "int_const 0" } ], - "id": 3536, + "id": 288, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2755:7:8", + "src": "3157:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 3538, + "id": 290, "isConstant": false, "isLValue": false, "isPure": true, @@ -15864,13 +17298,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2755:10:8", + "src": "3157:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2741:24:8", + "src": "3143:24:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -15884,21 +17318,21 @@ "typeString": "bool" } ], - "id": 3534, + "id": 286, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "2733:7:8", + "referencedDeclaration": 10045, + "src": "3135:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3540, + "id": 292, "isConstant": false, "isLValue": false, "isPure": false, @@ -15906,15 +17340,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2733:33:8", + "src": "3135:33:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3541, + "id": 293, "nodeType": "ExpressionStatement", - "src": "2733:33:8" + "src": "3135:33:1" }, { "expression": { @@ -15926,19 +17360,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 3547, + "id": 299, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3543, + "id": 295, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3515, - "src": "2784:12:8", + "referencedDeclaration": 266, + "src": "3186:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15952,14 +17386,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 3545, + "id": 297, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2808:1:8", + "src": "3210:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -15975,20 +17409,20 @@ "typeString": "int_const 0" } ], - "id": 3544, + "id": 296, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2800:7:8", + "src": "3202:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 3546, + "id": 298, "isConstant": false, "isLValue": false, "isPure": true, @@ -15996,13 +17430,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2800:10:8", + "src": "3202:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2784:26:8", + "src": "3186:26:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -16016,21 +17450,21 @@ "typeString": "bool" } ], - "id": 3542, + "id": 294, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "2776:7:8", + "referencedDeclaration": 10045, + "src": "3178:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3548, + "id": 300, "isConstant": false, "isLValue": false, "isPure": false, @@ -16038,15 +17472,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2776:35:8", + "src": "3178:35:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3549, + "id": 301, "nodeType": "ExpressionStatement", - "src": "2776:35:8" + "src": "3178:35:1" }, { "expression": { @@ -16058,7 +17492,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 3559, + "id": 311, "isConstant": false, "isLValue": false, "isPure": false, @@ -16070,32 +17504,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 3551, + "id": 303, "name": "feePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3523, - "src": "2829:10:8", + "referencedDeclaration": 274, + "src": "3231:10:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3552, + "id": 304, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isPercent", "nodeType": "MemberAccess", - "referencedDeclaration": 4586, - "src": "2829:20:8", + "referencedDeclaration": 5058, + "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": 3553, + "id": 305, "isConstant": false, "isLValue": false, "isPure": false, @@ -16103,7 +17537,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2829:22:8", + "src": "3231:22:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -16117,7 +17551,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3558, + "id": 310, "isConstant": false, "isLValue": false, "isPure": false, @@ -16129,32 +17563,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 3554, + "id": 306, "name": "feePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3523, - "src": "2855:10:8", + "referencedDeclaration": 274, + "src": "3257:10:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3555, + "id": 307, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "fromPercent", "nodeType": "MemberAccess", - "referencedDeclaration": 4630, - "src": "2855:22:8", + "referencedDeclaration": 5102, + "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": 3556, + "id": 308, "isConstant": false, "isLValue": false, "isPure": false, @@ -16162,7 +17596,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2855:24:8", + "src": "3257:24:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16173,14 +17607,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "313030", - "id": 3557, + "id": 309, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2882:3:8", + "src": "3284:3:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_100_by_1", @@ -16188,13 +17622,13 @@ }, "value": "100" }, - "src": "2855:30:8", + "src": "3257:30:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2829:56:8", + "src": "3231:56:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -16208,21 +17642,21 @@ "typeString": "bool" } ], - "id": 3550, + "id": 302, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "2821:7:8", + "referencedDeclaration": 10045, + "src": "3223:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3560, + "id": 312, "isConstant": false, "isLValue": false, "isPure": false, @@ -16230,15 +17664,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2821:65:8", + "src": "3223:65:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3561, + "id": 313, "nodeType": "ExpressionStatement", - "src": "2821:65:8" + "src": "3223:65:1" }, { "expression": { @@ -16250,7 +17684,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 3571, + "id": 323, "isConstant": false, "isLValue": false, "isPure": false, @@ -16262,32 +17696,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 3563, + "id": 315, "name": "ethFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "2904:13:8", + "referencedDeclaration": 276, + "src": "3306:13:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3564, + "id": 316, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isPercent", "nodeType": "MemberAccess", - "referencedDeclaration": 4586, - "src": "2904:23:8", + "referencedDeclaration": 5058, + "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": 3565, + "id": 317, "isConstant": false, "isLValue": false, "isPure": false, @@ -16295,7 +17729,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2904:25:8", + "src": "3306:25:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -16309,7 +17743,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3570, + "id": 322, "isConstant": false, "isLValue": false, "isPure": false, @@ -16321,32 +17755,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 3566, + "id": 318, "name": "ethFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "2933:13:8", + "referencedDeclaration": 276, + "src": "3335:13:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3567, + "id": 319, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "fromPercent", "nodeType": "MemberAccess", - "referencedDeclaration": 4630, - "src": "2933:25:8", + "referencedDeclaration": 5102, + "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": 3568, + "id": 320, "isConstant": false, "isLValue": false, "isPure": false, @@ -16354,7 +17788,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2933:27:8", + "src": "3335:27:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16365,14 +17799,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "313030", - "id": 3569, + "id": 321, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2963:3:8", + "src": "3365:3:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_100_by_1", @@ -16380,13 +17814,13 @@ }, "value": "100" }, - "src": "2933:33:8", + "src": "3335:33:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2904:62:8", + "src": "3306:62:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -16400,21 +17834,21 @@ "typeString": "bool" } ], - "id": 3562, + "id": 314, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "2896:7:8", + "referencedDeclaration": 10045, + "src": "3298:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3572, + "id": 324, "isConstant": false, "isLValue": false, "isPure": false, @@ -16422,15 +17856,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2896:71:8", + "src": "3298:71:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3573, + "id": 325, "nodeType": "ExpressionStatement", - "src": "2896:71:8" + "src": "3298:71:1" }, { "expression": { @@ -16442,7 +17876,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 3583, + "id": 335, "isConstant": false, "isLValue": false, "isPure": false, @@ -16454,32 +17888,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 3575, + "id": 327, "name": "WTokenSaleFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3527, - "src": "2985:20:8", + "referencedDeclaration": 278, + "src": "3387:20:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3576, + "id": 328, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isPercent", "nodeType": "MemberAccess", - "referencedDeclaration": 4586, - "src": "2985:30:8", + "referencedDeclaration": 5058, + "src": "3387:30:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bool_$bound_to$_t_uint256_$", "typeString": "function (uint256) pure returns (bool)" } }, - "id": 3577, + "id": 329, "isConstant": false, "isLValue": false, "isPure": false, @@ -16487,7 +17921,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2985:32:8", + "src": "3387:32:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -16501,7 +17935,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3582, + "id": 334, "isConstant": false, "isLValue": false, "isPure": false, @@ -16513,32 +17947,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 3578, + "id": 330, "name": "WTokenSaleFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3527, - "src": "3021:20:8", + "referencedDeclaration": 278, + "src": "3423:20:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3579, + "id": 331, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "fromPercent", "nodeType": "MemberAccess", - "referencedDeclaration": 4630, - "src": "3021:32:8", + "referencedDeclaration": 5102, + "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": 3580, + "id": 332, "isConstant": false, "isLValue": false, "isPure": false, @@ -16546,7 +17980,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3021:34:8", + "src": "3423:34:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16557,14 +17991,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "313030", - "id": 3581, + "id": 333, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3058:3:8", + "src": "3460:3:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_100_by_1", @@ -16572,13 +18006,13 @@ }, "value": "100" }, - "src": "3021:40:8", + "src": "3423:40:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2985:76:8", + "src": "3387:76:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -16592,21 +18026,21 @@ "typeString": "bool" } ], - "id": 3574, + "id": 326, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "2977:7:8", + "referencedDeclaration": 10045, + "src": "3379:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3584, + "id": 336, "isConstant": false, "isLValue": false, "isPure": false, @@ -16614,15 +18048,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2977:85:8", + "src": "3379:85:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3585, + "id": 337, "nodeType": "ExpressionStatement", - "src": "2977:85:8" + "src": "3379:85:1" }, { "expression": { @@ -16634,7 +18068,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 3595, + "id": 347, "isConstant": false, "isLValue": false, "isPure": false, @@ -16646,32 +18080,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 3587, + "id": 339, "name": "trancheFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3529, - "src": "3080:17:8", + "referencedDeclaration": 280, + "src": "3482:17:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3588, + "id": 340, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isPercent", "nodeType": "MemberAccess", - "referencedDeclaration": 4586, - "src": "3080:27:8", + "referencedDeclaration": 5058, + "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": 3589, + "id": 341, "isConstant": false, "isLValue": false, "isPure": false, @@ -16679,7 +18113,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3080:29:8", + "src": "3482:29:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -16693,7 +18127,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3594, + "id": 346, "isConstant": false, "isLValue": false, "isPure": false, @@ -16705,32 +18139,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 3590, + "id": 342, "name": "trancheFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3529, - "src": "3113:17:8", + "referencedDeclaration": 280, + "src": "3515:17:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3591, + "id": 343, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "fromPercent", "nodeType": "MemberAccess", - "referencedDeclaration": 4630, - "src": "3113:29:8", + "referencedDeclaration": 5102, + "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": 3592, + "id": 344, "isConstant": false, "isLValue": false, "isPure": false, @@ -16738,7 +18172,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3113:31:8", + "src": "3515:31:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16749,14 +18183,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "313030", - "id": 3593, + "id": 345, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3147:3:8", + "src": "3549:3:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_100_by_1", @@ -16764,13 +18198,13 @@ }, "value": "100" }, - "src": "3113:37:8", + "src": "3515:37:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3080:70:8", + "src": "3482:70:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -16784,21 +18218,21 @@ "typeString": "bool" } ], - "id": 3586, + "id": 338, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "3072:7:8", + "referencedDeclaration": 10045, + "src": "3474:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3596, + "id": 348, "isConstant": false, "isLValue": false, "isPure": false, @@ -16806,15 +18240,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3072:79:8", + "src": "3474:79:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3597, + "id": 349, "nodeType": "ExpressionStatement", - "src": "3072:79:8" + "src": "3474:79:1" }, { "expression": { @@ -16826,7 +18260,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 3605, + "id": 357, "isConstant": false, "isLValue": false, "isPure": false, @@ -16838,12 +18272,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3600, + "id": 352, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3515, - "src": "3186:12:8", + "referencedDeclaration": 266, + "src": "3588:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -16851,12 +18285,12 @@ }, { "argumentTypes": null, - "id": 3601, + "id": 353, "name": "tokenOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3513, - "src": "3200:10:8", + "referencedDeclaration": 264, + "src": "3602:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -16874,18 +18308,18 @@ "typeString": "address" } ], - "id": 3599, + "id": 351, "name": "getApprovedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4272, - "src": "3169:16:8", + "referencedDeclaration": 1046, + "src": "3571:16:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$3455_storage_ptr_$", + "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": 3602, + "id": 354, "isConstant": false, "isLValue": false, "isPure": false, @@ -16893,21 +18327,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3169:42:8", + "src": "3571:42:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken storage pointer" } }, - "id": 3603, + "id": 355, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "tokenAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 3454, - "src": "3169:55:8", + "referencedDeclaration": 181, + "src": "3571:55:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -16917,18 +18351,18 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 3604, + "id": 356, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3515, - "src": "3228:12:8", + "referencedDeclaration": 266, + "src": "3630:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3169:71:8", + "src": "3571:71:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -16942,21 +18376,21 @@ "typeString": "bool" } ], - "id": 3598, + "id": 350, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "3161:7:8", + "referencedDeclaration": 10045, + "src": "3563:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3606, + "id": 358, "isConstant": false, "isLValue": false, "isPure": false, @@ -16964,15 +18398,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3161:80:8", + "src": "3563:80:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3607, + "id": 359, "nodeType": "ExpressionStatement", - "src": "3161:80:8" + "src": "3563:80:1" }, { "expression": { @@ -16980,7 +18414,7 @@ "arguments": [ { "argumentTypes": null, - "id": 3616, + "id": 368, "isConstant": false, "isLValue": false, "isPure": false, @@ -16988,7 +18422,7 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "3259:70:8", + "src": "3661:70:1", "subExpression": { "argumentTypes": null, "baseExpression": { @@ -16998,12 +18432,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3610, + "id": 362, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3515, - "src": "3277:12:8", + "referencedDeclaration": 266, + "src": "3679:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -17011,12 +18445,12 @@ }, { "argumentTypes": null, - "id": 3611, + "id": 363, "name": "tokenOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3513, - "src": "3291:10:8", + "referencedDeclaration": 264, + "src": "3693:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -17034,18 +18468,18 @@ "typeString": "address" } ], - "id": 3609, + "id": 361, "name": "getApprovedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4272, - "src": "3260:16:8", + "referencedDeclaration": 1046, + "src": "3662:16:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$3455_storage_ptr_$", + "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": 3612, + "id": 364, "isConstant": false, "isLValue": false, "isPure": false, @@ -17053,35 +18487,35 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3260:42:8", + "src": "3662:42:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken storage pointer" } }, - "id": 3613, + "id": 365, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "approvedOwners", "nodeType": "MemberAccess", - "referencedDeclaration": 3438, - "src": "3260:57:8", + "referencedDeclaration": 165, + "src": "3662:57:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 3615, + "id": 367, "indexExpression": { "argumentTypes": null, - "id": 3614, + "id": 366, "name": "tokenOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3513, - "src": "3318:10:8", + "referencedDeclaration": 264, + "src": "3720:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -17092,7 +18526,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3260:69:8", + "src": "3662:69:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -17111,21 +18545,21 @@ "typeString": "bool" } ], - "id": 3608, + "id": 360, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "3251:7:8", + "referencedDeclaration": 10045, + "src": "3653:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3617, + "id": 369, "isConstant": false, "isLValue": false, "isPure": false, @@ -17133,28 +18567,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3251:79:8", + "src": "3653:79:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3618, + "id": 370, "nodeType": "ExpressionStatement", - "src": "3251:79:8" + "src": "3653:79:1" }, { "assignments": [ - 3620 + 372 ], "declarations": [ { "constant": false, - "id": 3620, + "id": 372, "name": "index", "nodeType": "VariableDeclaration", - "scope": 3722, - "src": "3341:12:8", + "scope": 474, + "src": "3743:12:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17162,10 +18596,10 @@ "typeString": "uint16" }, "typeName": { - "id": 3619, + "id": 371, "name": "uint16", "nodeType": "ElementaryTypeName", - "src": "3341:6:8", + "src": "3743:6:1", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" @@ -17175,7 +18609,7 @@ "visibility": "internal" } ], - "id": 3625, + "id": 377, "initialValue": { "argumentTypes": null, "arguments": [ @@ -17183,18 +18617,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3622, + "id": 374, "name": "approvedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3383, - "src": "3363:14:8", + "referencedDeclaration": 112, + "src": "3765:14:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ListedToken_$3455_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_ListedToken_$182_storage_$dyn_storage", "typeString": "struct W12Lister.ListedToken storage ref[] storage ref" } }, - "id": 3623, + "id": 375, "isConstant": false, "isLValue": true, "isPure": false, @@ -17202,7 +18636,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3363:21:8", + "src": "3765:21:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17216,20 +18650,20 @@ "typeString": "uint256" } ], - "id": 3621, + "id": 373, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3356:6:8", + "src": "3758:6:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint16_$", "typeString": "type(uint16)" }, "typeName": "uint16" }, - "id": 3624, + "id": 376, "isConstant": false, "isLValue": false, "isPure": false, @@ -17237,19 +18671,19 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3356:29:8", + "src": "3758:29:1", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, "nodeType": "VariableDeclarationStatement", - "src": "3341:44:8" + "src": "3743:44:1" }, { "expression": { "argumentTypes": null, - "id": 3632, + "id": 384, "isConstant": false, "isLValue": false, "isPure": false, @@ -17260,26 +18694,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3626, + "id": 378, "name": "approvedTokensIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3380, - "src": "3396:19:8", + "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": 3629, + "id": 381, "indexExpression": { "argumentTypes": null, - "id": 3627, + "id": 379, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3515, - "src": "3416:12:8", + "referencedDeclaration": 266, + "src": "3818:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -17290,21 +18724,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3396:33:8", + "src": "3798:33:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint16_$", "typeString": "mapping(address => uint16)" } }, - "id": 3630, + "id": 382, "indexExpression": { "argumentTypes": null, - "id": 3628, + "id": 380, "name": "tokenOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3513, - "src": "3430:10:8", + "referencedDeclaration": 264, + "src": "3832:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -17315,7 +18749,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3396:45:8", + "src": "3798:45:1", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" @@ -17325,43 +18759,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3631, + "id": 383, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3620, - "src": "3444:5:8", + "referencedDeclaration": 372, + "src": "3846:5:1", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, - "src": "3396:53:8", + "src": "3798:53:1", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, - "id": 3633, + "id": 385, "nodeType": "ExpressionStatement", - "src": "3396:53:8" + "src": "3798:53:1" }, { "expression": { "argumentTypes": null, - "id": 3640, + "id": 392, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3634, + "id": 386, "name": "approvedTokensLength", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3390, - "src": "3460:20:8", + "referencedDeclaration": 119, + "src": "3862:20:1", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" @@ -17374,7 +18808,7 @@ "arguments": [ { "argumentTypes": null, - "id": 3638, + "id": 390, "isConstant": false, "isLValue": false, "isPure": false, @@ -17382,23 +18816,23 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "3490:23:8", + "src": "3892:23:1", "subExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3636, + "id": 388, "name": "approvedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3383, - "src": "3490:14:8", + "referencedDeclaration": 112, + "src": "3892:14:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ListedToken_$3455_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_ListedToken_$182_storage_$dyn_storage", "typeString": "struct W12Lister.ListedToken storage ref[] storage ref" } }, - "id": 3637, + "id": 389, "isConstant": false, "isLValue": true, "isPure": false, @@ -17406,7 +18840,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3490:21:8", + "src": "3892:21:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17425,20 +18859,20 @@ "typeString": "uint256" } ], - "id": 3635, + "id": 387, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3483:6:8", + "src": "3885:6:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint16_$", "typeString": "type(uint16)" }, "typeName": "uint16" }, - "id": 3639, + "id": 391, "isConstant": false, "isLValue": false, "isPure": false, @@ -17446,21 +18880,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3483:31:8", + "src": "3885:31:1", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, - "src": "3460:54:8", + "src": "3862:54:1", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, - "id": 3641, + "id": 393, "nodeType": "ExpressionStatement", - "src": "3460:54:8" + "src": "3862:54:1" }, { "expression": { @@ -17468,12 +18902,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3646, + "id": 398, "name": "tokenOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3513, - "src": "3563:10:8", + "referencedDeclaration": 264, + "src": "3965:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -17491,26 +18925,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3642, + "id": 394, "name": "approvedOwnersList", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3388, - "src": "3525:18:8", + "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": 3644, + "id": 396, "indexExpression": { "argumentTypes": null, - "id": 3643, + "id": 395, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3515, - "src": "3544:12:8", + "referencedDeclaration": 266, + "src": "3946:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -17521,13 +18955,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3525:32:8", + "src": "3927:32:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 3645, + "id": 397, "isConstant": false, "isLValue": false, "isPure": false, @@ -17535,13 +18969,13 @@ "memberName": "push", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3525:37:8", + "src": "3927:37:1", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", "typeString": "function (address) returns (uint256)" } }, - "id": 3647, + "id": 399, "isConstant": false, "isLValue": false, "isPure": false, @@ -17549,20 +18983,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3525:49:8", + "src": "3927:49:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3648, + "id": 400, "nodeType": "ExpressionStatement", - "src": "3525:49:8" + "src": "3927:49:1" }, { "expression": { "argumentTypes": null, - "id": 3656, + "id": 408, "isConstant": false, "isLValue": false, "isPure": false, @@ -17575,26 +19009,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3649, + "id": 401, "name": "approvedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3383, - "src": "3585:14:8", + "referencedDeclaration": 112, + "src": "3987:14:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ListedToken_$3455_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_ListedToken_$182_storage_$dyn_storage", "typeString": "struct W12Lister.ListedToken storage ref[] storage ref" } }, - "id": 3651, + "id": 403, "indexExpression": { "argumentTypes": null, - "id": 3650, + "id": 402, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3620, - "src": "3600:5:8", + "referencedDeclaration": 372, + "src": "4002:5:1", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" @@ -17605,35 +19039,35 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3585:21:8", + "src": "3987:21:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage", + "typeIdentifier": "t_struct$_ListedToken_$182_storage", "typeString": "struct W12Lister.ListedToken storage ref" } }, - "id": 3652, + "id": 404, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "approvedOwners", "nodeType": "MemberAccess", - "referencedDeclaration": 3438, - "src": "3585:36:8", + "referencedDeclaration": 165, + "src": "3987:36:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 3654, + "id": 406, "indexExpression": { "argumentTypes": null, - "id": 3653, + "id": 405, "name": "tokenOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3513, - "src": "3622:10:8", + "referencedDeclaration": 264, + "src": "4024:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -17644,7 +19078,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3585:48:8", + "src": "3987:48:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -17655,14 +19089,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 3655, + "id": 407, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3636:4:8", + "src": "4038:4:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -17670,20 +19104,20 @@ }, "value": "true" }, - "src": "3585:55:8", + "src": "3987:55:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3657, + "id": 409, "nodeType": "ExpressionStatement", - "src": "3585:55:8" + "src": "3987:55:1" }, { "expression": { "argumentTypes": null, - "id": 3663, + "id": 415, "isConstant": false, "isLValue": false, "isPure": false, @@ -17694,26 +19128,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3658, + "id": 410, "name": "approvedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3383, - "src": "3650:14:8", + "referencedDeclaration": 112, + "src": "4052:14:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ListedToken_$3455_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_ListedToken_$182_storage_$dyn_storage", "typeString": "struct W12Lister.ListedToken storage ref[] storage ref" } }, - "id": 3660, + "id": 412, "indexExpression": { "argumentTypes": null, - "id": 3659, + "id": 411, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3620, - "src": "3665:5:8", + "referencedDeclaration": 372, + "src": "4067:5:1", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" @@ -17724,21 +19158,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3650:21:8", + "src": "4052:21:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage", + "typeIdentifier": "t_struct$_ListedToken_$182_storage", "typeString": "struct W12Lister.ListedToken storage ref" } }, - "id": 3661, + "id": 413, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "name", "nodeType": "MemberAccess", - "referencedDeclaration": 3430, - "src": "3650:26:8", + "referencedDeclaration": 157, + "src": "4052:26:1", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -17748,31 +19182,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3662, + "id": 414, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3517, - "src": "3679:4:8", + "referencedDeclaration": 268, + "src": "4081:4:1", "typeDescriptions": { "typeIdentifier": "t_string_calldata_ptr", "typeString": "string calldata" } }, - "src": "3650:33:8", + "src": "4052:33:1", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 3664, + "id": 416, "nodeType": "ExpressionStatement", - "src": "3650:33:8" + "src": "4052:33:1" }, { "expression": { "argumentTypes": null, - "id": 3670, + "id": 422, "isConstant": false, "isLValue": false, "isPure": false, @@ -17783,26 +19217,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3665, + "id": 417, "name": "approvedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3383, - "src": "3693:14:8", + "referencedDeclaration": 112, + "src": "4095:14:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ListedToken_$3455_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_ListedToken_$182_storage_$dyn_storage", "typeString": "struct W12Lister.ListedToken storage ref[] storage ref" } }, - "id": 3667, + "id": 419, "indexExpression": { "argumentTypes": null, - "id": 3666, + "id": 418, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3620, - "src": "3708:5:8", + "referencedDeclaration": 372, + "src": "4110:5:1", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" @@ -17813,21 +19247,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3693:21:8", + "src": "4095:21:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage", + "typeIdentifier": "t_struct$_ListedToken_$182_storage", "typeString": "struct W12Lister.ListedToken storage ref" } }, - "id": 3668, + "id": 420, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "symbol", "nodeType": "MemberAccess", - "referencedDeclaration": 3432, - "src": "3693:28:8", + "referencedDeclaration": 159, + "src": "4095:28:1", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -17837,31 +19271,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3669, + "id": 421, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3519, - "src": "3724:6:8", + "referencedDeclaration": 270, + "src": "4126:6:1", "typeDescriptions": { "typeIdentifier": "t_string_calldata_ptr", "typeString": "string calldata" } }, - "src": "3693:37:8", + "src": "4095:37:1", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 3671, + "id": 423, "nodeType": "ExpressionStatement", - "src": "3693:37:8" + "src": "4095:37:1" }, { "expression": { "argumentTypes": null, - "id": 3677, + "id": 429, "isConstant": false, "isLValue": false, "isPure": false, @@ -17872,26 +19306,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3672, + "id": 424, "name": "approvedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3383, - "src": "3740:14:8", + "referencedDeclaration": 112, + "src": "4142:14:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ListedToken_$3455_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_ListedToken_$182_storage_$dyn_storage", "typeString": "struct W12Lister.ListedToken storage ref[] storage ref" } }, - "id": 3674, + "id": 426, "indexExpression": { "argumentTypes": null, - "id": 3673, + "id": 425, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3620, - "src": "3755:5:8", + "referencedDeclaration": 372, + "src": "4157:5:1", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" @@ -17902,21 +19336,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3740:21:8", + "src": "4142:21:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage", + "typeIdentifier": "t_struct$_ListedToken_$182_storage", "typeString": "struct W12Lister.ListedToken storage ref" } }, - "id": 3675, + "id": 427, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "decimals", "nodeType": "MemberAccess", - "referencedDeclaration": 3434, - "src": "3740:30:8", + "referencedDeclaration": 161, + "src": "4142:30:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -17926,31 +19360,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3676, + "id": 428, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3521, - "src": "3773:8:8", + "referencedDeclaration": 272, + "src": "4175:8:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "3740:41:8", + "src": "4142:41:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 3678, + "id": 430, "nodeType": "ExpressionStatement", - "src": "3740:41:8" + "src": "4142:41:1" }, { "expression": { "argumentTypes": null, - "id": 3684, + "id": 436, "isConstant": false, "isLValue": false, "isPure": false, @@ -17961,26 +19395,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3679, + "id": 431, "name": "approvedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3383, - "src": "3791:14:8", + "referencedDeclaration": 112, + "src": "4193:14:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ListedToken_$3455_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_ListedToken_$182_storage_$dyn_storage", "typeString": "struct W12Lister.ListedToken storage ref[] storage ref" } }, - "id": 3681, + "id": 433, "indexExpression": { "argumentTypes": null, - "id": 3680, + "id": 432, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3620, - "src": "3806:5:8", + "referencedDeclaration": 372, + "src": "4208:5:1", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" @@ -17991,21 +19425,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3791:21:8", + "src": "4193:21:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage", + "typeIdentifier": "t_struct$_ListedToken_$182_storage", "typeString": "struct W12Lister.ListedToken storage ref" } }, - "id": 3682, + "id": 434, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "feePercent", "nodeType": "MemberAccess", - "referencedDeclaration": 3440, - "src": "3791:32:8", + "referencedDeclaration": 167, + "src": "4193:32:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18015,31 +19449,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3683, + "id": 435, "name": "feePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3523, - "src": "3826:10:8", + "referencedDeclaration": 274, + "src": "4228:10:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3791:45:8", + "src": "4193:45:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3685, + "id": 437, "nodeType": "ExpressionStatement", - "src": "3791:45:8" + "src": "4193:45:1" }, { "expression": { "argumentTypes": null, - "id": 3691, + "id": 443, "isConstant": false, "isLValue": false, "isPure": false, @@ -18050,26 +19484,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3686, + "id": 438, "name": "approvedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3383, - "src": "3846:14:8", + "referencedDeclaration": 112, + "src": "4248:14:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ListedToken_$3455_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_ListedToken_$182_storage_$dyn_storage", "typeString": "struct W12Lister.ListedToken storage ref[] storage ref" } }, - "id": 3688, + "id": 440, "indexExpression": { "argumentTypes": null, - "id": 3687, + "id": 439, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3620, - "src": "3861:5:8", + "referencedDeclaration": 372, + "src": "4263:5:1", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" @@ -18080,21 +19514,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3846:21:8", + "src": "4248:21:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage", + "typeIdentifier": "t_struct$_ListedToken_$182_storage", "typeString": "struct W12Lister.ListedToken storage ref" } }, - "id": 3689, + "id": 441, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "ethFeePercent", "nodeType": "MemberAccess", - "referencedDeclaration": 3442, - "src": "3846:35:8", + "referencedDeclaration": 169, + "src": "4248:35:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18104,31 +19538,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3690, + "id": 442, "name": "ethFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "3884:13:8", + "referencedDeclaration": 276, + "src": "4286:13:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3846:51:8", + "src": "4248:51:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3692, + "id": 444, "nodeType": "ExpressionStatement", - "src": "3846:51:8" + "src": "4248:51:1" }, { "expression": { "argumentTypes": null, - "id": 3698, + "id": 450, "isConstant": false, "isLValue": false, "isPure": false, @@ -18139,26 +19573,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3693, + "id": 445, "name": "approvedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3383, - "src": "3907:14:8", + "referencedDeclaration": 112, + "src": "4309:14:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ListedToken_$3455_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_ListedToken_$182_storage_$dyn_storage", "typeString": "struct W12Lister.ListedToken storage ref[] storage ref" } }, - "id": 3695, + "id": 447, "indexExpression": { "argumentTypes": null, - "id": 3694, + "id": 446, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3620, - "src": "3922:5:8", + "referencedDeclaration": 372, + "src": "4324:5:1", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" @@ -18169,21 +19603,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3907:21:8", + "src": "4309:21:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage", + "typeIdentifier": "t_struct$_ListedToken_$182_storage", "typeString": "struct W12Lister.ListedToken storage ref" } }, - "id": 3696, + "id": 448, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "WTokenSaleFeePercent", "nodeType": "MemberAccess", - "referencedDeclaration": 3444, - "src": "3907:42:8", + "referencedDeclaration": 171, + "src": "4309:42:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18193,31 +19627,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3697, + "id": 449, "name": "WTokenSaleFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3527, - "src": "3952:20:8", + "referencedDeclaration": 278, + "src": "4354:20:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3907:65:8", + "src": "4309:65:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3699, + "id": 451, "nodeType": "ExpressionStatement", - "src": "3907:65:8" + "src": "4309:65:1" }, { "expression": { "argumentTypes": null, - "id": 3705, + "id": 457, "isConstant": false, "isLValue": false, "isPure": false, @@ -18228,26 +19662,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3700, + "id": 452, "name": "approvedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3383, - "src": "3982:14:8", + "referencedDeclaration": 112, + "src": "4384:14:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ListedToken_$3455_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_ListedToken_$182_storage_$dyn_storage", "typeString": "struct W12Lister.ListedToken storage ref[] storage ref" } }, - "id": 3702, + "id": 454, "indexExpression": { "argumentTypes": null, - "id": 3701, + "id": 453, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3620, - "src": "3997:5:8", + "referencedDeclaration": 372, + "src": "4399:5:1", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" @@ -18258,21 +19692,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3982:21:8", + "src": "4384:21:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage", + "typeIdentifier": "t_struct$_ListedToken_$182_storage", "typeString": "struct W12Lister.ListedToken storage ref" } }, - "id": 3703, + "id": 455, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "trancheFeePercent", "nodeType": "MemberAccess", - "referencedDeclaration": 3446, - "src": "3982:39:8", + "referencedDeclaration": 173, + "src": "4384:39:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18282,31 +19716,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3704, + "id": 456, "name": "trancheFeePercent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3529, - "src": "4024:17:8", + "referencedDeclaration": 280, + "src": "4426:17:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3982:59:8", + "src": "4384:59:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3706, + "id": 458, "nodeType": "ExpressionStatement", - "src": "3982:59:8" + "src": "4384:59:1" }, { "expression": { "argumentTypes": null, - "id": 3712, + "id": 464, "isConstant": false, "isLValue": false, "isPure": false, @@ -18317,26 +19751,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3707, + "id": 459, "name": "approvedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3383, - "src": "4051:14:8", + "referencedDeclaration": 112, + "src": "4453:14:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ListedToken_$3455_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_ListedToken_$182_storage_$dyn_storage", "typeString": "struct W12Lister.ListedToken storage ref[] storage ref" } }, - "id": 3709, + "id": 461, "indexExpression": { "argumentTypes": null, - "id": 3708, + "id": 460, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3620, - "src": "4066:5:8", + "referencedDeclaration": 372, + "src": "4468:5:1", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" @@ -18347,21 +19781,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4051:21:8", + "src": "4453:21:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage", + "typeIdentifier": "t_struct$_ListedToken_$182_storage", "typeString": "struct W12Lister.ListedToken storage ref" } }, - "id": 3710, + "id": 462, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "tokenAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 3454, - "src": "4051:34:8", + "referencedDeclaration": 181, + "src": "4453:34:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -18371,26 +19805,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3711, + "id": 463, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3515, - "src": "4088:12:8", + "referencedDeclaration": 266, + "src": "4490:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4051:49:8", + "src": "4453:49:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 3713, + "id": 465, "nodeType": "ExpressionStatement", - "src": "4051:49:8" + "src": "4453:49:1" }, { "eventCall": { @@ -18398,12 +19832,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3715, + "id": 467, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3515, - "src": "4133:12:8", + "referencedDeclaration": 266, + "src": "4535:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -18411,12 +19845,12 @@ }, { "argumentTypes": null, - "id": 3716, + "id": 468, "name": "tokenOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3513, - "src": "4147:10:8", + "referencedDeclaration": 264, + "src": "4549:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -18424,12 +19858,12 @@ }, { "argumentTypes": null, - "id": 3717, + "id": 469, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3517, - "src": "4159:4:8", + "referencedDeclaration": 268, + "src": "4561:4:1", "typeDescriptions": { "typeIdentifier": "t_string_calldata_ptr", "typeString": "string calldata" @@ -18437,12 +19871,12 @@ }, { "argumentTypes": null, - "id": 3718, + "id": 470, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3519, - "src": "4165:6:8", + "referencedDeclaration": 270, + "src": "4567:6:1", "typeDescriptions": { "typeIdentifier": "t_string_calldata_ptr", "typeString": "string calldata" @@ -18468,18 +19902,18 @@ "typeString": "string calldata" } ], - "id": 3714, + "id": 466, "name": "OwnerWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3402, - "src": "4116:16:8", + "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": 3719, + "id": 471, "isConstant": false, "isLValue": false, "isPure": false, @@ -18487,57 +19921,71 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4116:56:8", + "src": "4518:56:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3720, + "id": 472, "nodeType": "EmitStatement", - "src": "4111:61:8" + "src": "4513:61:1" } ] }, "documentation": null, - "id": 3722, + "id": 474, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { - "arguments": null, - "id": 3532, + "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": 3531, - "name": "onlyOwner", + "id": 282, + "name": "onlyRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6888, - "src": "2712:9:8", + "referencedDeclaration": 9437, + "src": "3099:8:1", "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" + "typeIdentifier": "t_modifier$_t_string_memory_ptr_$", + "typeString": "modifier (string memory)" } }, "nodeType": "ModifierInvocation", - "src": "2712:9:8" + "src": "3099:20:1" } ], "name": "whitelistToken", "nodeType": "FunctionDefinition", "parameters": { - "id": 3530, + "id": 281, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3513, + "id": 264, "name": "tokenOwner", "nodeType": "VariableDeclaration", - "scope": 3722, - "src": "2452:18:8", + "scope": 474, + "src": "2839:18:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -18545,10 +19993,10 @@ "typeString": "address" }, "typeName": { - "id": 3512, + "id": 263, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2452:7:8", + "src": "2839:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -18559,11 +20007,11 @@ }, { "constant": false, - "id": 3515, + "id": 266, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 3722, - "src": "2480:20:8", + "scope": 474, + "src": "2867:20:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -18571,10 +20019,10 @@ "typeString": "address" }, "typeName": { - "id": 3514, + "id": 265, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2480:7:8", + "src": "2867:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -18585,11 +20033,11 @@ }, { "constant": false, - "id": 3517, + "id": 268, "name": "name", "nodeType": "VariableDeclaration", - "scope": 3722, - "src": "2510:11:8", + "scope": 474, + "src": "2897:11:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -18597,10 +20045,10 @@ "typeString": "string" }, "typeName": { - "id": 3516, + "id": 267, "name": "string", "nodeType": "ElementaryTypeName", - "src": "2510:6:8", + "src": "2897:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -18611,11 +20059,11 @@ }, { "constant": false, - "id": 3519, + "id": 270, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 3722, - "src": "2531:13:8", + "scope": 474, + "src": "2918:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -18623,10 +20071,10 @@ "typeString": "string" }, "typeName": { - "id": 3518, + "id": 269, "name": "string", "nodeType": "ElementaryTypeName", - "src": "2531:6:8", + "src": "2918:6:1", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -18637,11 +20085,11 @@ }, { "constant": false, - "id": 3521, + "id": 272, "name": "decimals", "nodeType": "VariableDeclaration", - "scope": 3722, - "src": "2554:14:8", + "scope": 474, + "src": "2941:14:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -18649,10 +20097,10 @@ "typeString": "uint8" }, "typeName": { - "id": 3520, + "id": 271, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "2554:5:8", + "src": "2941:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -18663,11 +20111,11 @@ }, { "constant": false, - "id": 3523, + "id": 274, "name": "feePercent", "nodeType": "VariableDeclaration", - "scope": 3722, - "src": "2578:15:8", + "scope": 474, + "src": "2965:15:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -18675,10 +20123,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3522, + "id": 273, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2578:4:8", + "src": "2965:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18689,11 +20137,11 @@ }, { "constant": false, - "id": 3525, + "id": 276, "name": "ethFeePercent", "nodeType": "VariableDeclaration", - "scope": 3722, - "src": "2603:18:8", + "scope": 474, + "src": "2990:18:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -18701,10 +20149,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3524, + "id": 275, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2603:4:8", + "src": "2990:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18715,11 +20163,11 @@ }, { "constant": false, - "id": 3527, + "id": 278, "name": "WTokenSaleFeePercent", "nodeType": "VariableDeclaration", - "scope": 3722, - "src": "2631:25:8", + "scope": 474, + "src": "3018:25:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -18727,10 +20175,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3526, + "id": 277, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2631:4:8", + "src": "3018:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18741,11 +20189,11 @@ }, { "constant": false, - "id": 3529, + "id": 280, "name": "trancheFeePercent", "nodeType": "VariableDeclaration", - "scope": 3722, - "src": "2666:22:8", + "scope": 474, + "src": "3053:22:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -18753,40 +20201,189 @@ "typeString": "uint256" }, "typeName": { - "id": 3528, + "id": 279, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2666:4:8", + "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": [ + { + "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", + "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" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "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" + } + ], + "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", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 488, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4849:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4830:29:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 483, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "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_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "value": null, - "visibility": "internal" - } - ], - "src": "2442:252:8" - }, - "payable": false, - "returnParameters": { - "id": 3533, - "nodeType": "ParameterList", - "parameters": [], - "src": "2722:0:8" - }, - "scope": 4273, - "src": "2419:1760:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 3889, - "nodeType": "Block", - "src": "4410:1291:8", - "statements": [ + "id": 491, + "nodeType": "ExpressionStatement", + "src": "4822:38:1" + }, { "expression": { "argumentTypes": null, @@ -18797,19 +20394,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3734, + "id": 495, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3732, + "id": 493, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3726, - "src": "4428:6:8", + "referencedDeclaration": 478, + "src": "4878:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18820,14 +20417,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3733, + "id": 494, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4437:1:8", + "src": "4887:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -18835,7 +20432,7 @@ }, "value": "0" }, - "src": "4428:10:8", + "src": "4878:10:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -18849,21 +20446,21 @@ "typeString": "bool" } ], - "id": 3731, + "id": 492, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "4420:7:8", + "referencedDeclaration": 10045, + "src": "4870:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3735, + "id": 496, "isConstant": false, "isLValue": false, "isPure": false, @@ -18871,15 +20468,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4420:19:8", + "src": "4870:19:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3736, + "id": 497, "nodeType": "ExpressionStatement", - "src": "4420:19:8" + "src": "4870:19:1" }, { "expression": { @@ -18891,19 +20488,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 3742, + "id": 503, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3738, + "id": 499, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3724, - "src": "4457:12:8", + "referencedDeclaration": 476, + "src": "4907:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -18917,14 +20514,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 3740, + "id": 501, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4481:1:8", + "src": "4931:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -18940,20 +20537,20 @@ "typeString": "int_const 0" } ], - "id": 3739, + "id": 500, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4473:7:8", + "src": "4923:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 3741, + "id": 502, "isConstant": false, "isLValue": false, "isPure": true, @@ -18961,13 +20558,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4473:10:8", + "src": "4923:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4457:26:8", + "src": "4907:26:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -18981,21 +20578,21 @@ "typeString": "bool" } ], - "id": 3737, + "id": 498, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "4449:7:8", + "referencedDeclaration": 10045, + "src": "4899:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3743, + "id": 504, "isConstant": false, "isLValue": false, "isPure": false, @@ -19003,15 +20600,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4449:35:8", + "src": "4899:35:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3744, + "id": 505, "nodeType": "ExpressionStatement", - "src": "4449:35:8" + "src": "4899:35:1" }, { "expression": { @@ -19023,7 +20620,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 3753, + "id": 514, "isConstant": false, "isLValue": false, "isPure": false, @@ -19035,12 +20632,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3747, + "id": 508, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3724, - "src": "4519:12:8", + "referencedDeclaration": 476, + "src": "4969:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19050,18 +20647,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3748, + "id": 509, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "4533:3:8", + "referencedDeclaration": 10042, + "src": "4983:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3749, + "id": 510, "isConstant": false, "isLValue": false, "isPure": false, @@ -19069,7 +20666,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4533:10:8", + "src": "4983:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19087,18 +20684,18 @@ "typeString": "address" } ], - "id": 3746, + "id": 507, "name": "getApprovedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4272, - "src": "4502:16:8", + "referencedDeclaration": 1046, + "src": "4952:16:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$3455_storage_ptr_$", + "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": 3750, + "id": 511, "isConstant": false, "isLValue": false, "isPure": false, @@ -19106,21 +20703,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4502:42:8", + "src": "4952:42:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken storage pointer" } }, - "id": 3751, + "id": 512, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "tokenAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 3454, - "src": "4502:55:8", + "referencedDeclaration": 181, + "src": "4952:55:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19130,18 +20727,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 3752, + "id": 513, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3724, - "src": "4561:12:8", + "referencedDeclaration": 476, + "src": "5011:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4502:71:8", + "src": "4952:71:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -19155,21 +20752,21 @@ "typeString": "bool" } ], - "id": 3745, + "id": 506, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "4494:7:8", + "referencedDeclaration": 10045, + "src": "4944:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3754, + "id": 515, "isConstant": false, "isLValue": false, "isPure": false, @@ -19177,15 +20774,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4494:80:8", + "src": "4944:80:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3755, + "id": 516, "nodeType": "ExpressionStatement", - "src": "4494:80:8" + "src": "4944:80:1" }, { "expression": { @@ -19200,12 +20797,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3758, + "id": 519, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3724, - "src": "4609:12:8", + "referencedDeclaration": 476, + "src": "5059:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19215,18 +20812,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3759, + "id": 520, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "4623:3:8", + "referencedDeclaration": 10042, + "src": "5073:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3760, + "id": 521, "isConstant": false, "isLValue": false, "isPure": false, @@ -19234,7 +20831,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4623:10:8", + "src": "5073:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19252,18 +20849,18 @@ "typeString": "address" } ], - "id": 3757, + "id": 518, "name": "getApprovedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4272, - "src": "4592:16:8", + "referencedDeclaration": 1046, + "src": "5042:16:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$3455_storage_ptr_$", + "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": 3761, + "id": 522, "isConstant": false, "isLValue": false, "isPure": false, @@ -19271,43 +20868,43 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4592:42:8", + "src": "5042:42:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken storage pointer" } }, - "id": 3762, + "id": 523, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "approvedOwners", "nodeType": "MemberAccess", - "referencedDeclaration": 3438, - "src": "4592:57:8", + "referencedDeclaration": 165, + "src": "5042:57:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 3765, + "id": 526, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3763, + "id": 524, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "4650:3:8", + "referencedDeclaration": 10042, + "src": "5100:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3764, + "id": 525, "isConstant": false, "isLValue": false, "isPure": false, @@ -19315,7 +20912,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4650:10:8", + "src": "5100:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19326,7 +20923,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4592:69:8", + "src": "5042:69:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -19340,21 +20937,21 @@ "typeString": "bool" } ], - "id": 3756, + "id": 517, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "4584:7:8", + "referencedDeclaration": 10045, + "src": "5034:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3766, + "id": 527, "isConstant": false, "isLValue": false, "isPure": false, @@ -19362,43 +20959,43 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4584:78:8", + "src": "5034:78:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3767, + "id": 528, "nodeType": "ExpressionStatement", - "src": "4584:78:8" + "src": "5034:78:1" }, { "assignments": [ - 3769 + 530 ], "declarations": [ { "constant": false, - "id": 3769, + "id": 530, "name": "token", "nodeType": "VariableDeclaration", - "scope": 3890, - "src": "4673:19:8", + "scope": 652, + "src": "5123:19:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_DetailedERC20_$6974", + "typeIdentifier": "t_contract$_DetailedERC20_$9722", "typeString": "contract DetailedERC20" }, "typeName": { "contractScope": null, - "id": 3768, + "id": 529, "name": "DetailedERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6974, - "src": "4673:13:8", + "referencedDeclaration": 9722, + "src": "5123:13:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_DetailedERC20_$6974", + "typeIdentifier": "t_contract$_DetailedERC20_$9722", "typeString": "contract DetailedERC20" } }, @@ -19406,18 +21003,18 @@ "visibility": "internal" } ], - "id": 3773, + "id": 534, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 3771, + "id": 532, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3724, - "src": "4709:12:8", + "referencedDeclaration": 476, + "src": "5159:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19431,18 +21028,18 @@ "typeString": "address" } ], - "id": 3770, + "id": 531, "name": "DetailedERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6974, - "src": "4695:13:8", + "referencedDeclaration": 9722, + "src": "5145:13:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DetailedERC20_$6974_$", + "typeIdentifier": "t_type$_t_contract$_DetailedERC20_$9722_$", "typeString": "type(contract DetailedERC20)" } }, - "id": 3772, + "id": 533, "isConstant": false, "isLValue": false, "isPure": false, @@ -19450,14 +21047,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4695:27:8", + "src": "5145:27:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_DetailedERC20_$6974", + "typeIdentifier": "t_contract$_DetailedERC20_$9722", "typeString": "contract DetailedERC20" } }, "nodeType": "VariableDeclarationStatement", - "src": "4673:49:8" + "src": "5123:49:1" }, { "expression": { @@ -19469,7 +21066,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3784, + "id": 545, "isConstant": false, "isLValue": false, "isPure": false, @@ -19481,18 +21078,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3777, + "id": 538, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "4757:3:8", + "referencedDeclaration": 10042, + "src": "5207:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3778, + "id": 539, "isConstant": false, "isLValue": false, "isPure": false, @@ -19500,7 +21097,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4757:10:8", + "src": "5207:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19511,14 +21108,14 @@ "arguments": [ { "argumentTypes": null, - "id": 3780, + "id": 541, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7357, - "src": "4777:4:8", + "referencedDeclaration": 10095, + "src": "5227:4:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_W12Lister_$4273", + "typeIdentifier": "t_contract$_W12Lister_$1058", "typeString": "contract W12Lister" } } @@ -19526,24 +21123,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_W12Lister_$4273", + "typeIdentifier": "t_contract$_W12Lister_$1058", "typeString": "contract W12Lister" } ], - "id": 3779, + "id": 540, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4769:7:8", + "src": "5219:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 3781, + "id": 542, "isConstant": false, "isLValue": false, "isPure": false, @@ -19551,7 +21148,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4769:13:8", + "src": "5219:13:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19571,32 +21168,32 @@ ], "expression": { "argumentTypes": null, - "id": 3775, + "id": 536, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3769, - "src": "4741:5:8", + "referencedDeclaration": 530, + "src": "5191:5:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_DetailedERC20_$6974", + "typeIdentifier": "t_contract$_DetailedERC20_$9722", "typeString": "contract DetailedERC20" } }, - "id": 3776, + "id": 537, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "allowance", "nodeType": "MemberAccess", - "referencedDeclaration": 6988, - "src": "4741:15:8", + "referencedDeclaration": 9736, + "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": 3782, + "id": 543, "isConstant": false, "isLValue": false, "isPure": false, @@ -19604,7 +21201,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4741:42:8", + "src": "5191:42:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19614,18 +21211,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 3783, + "id": 544, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3726, - "src": "4787:6:8", + "referencedDeclaration": 478, + "src": "5237:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4741:52:8", + "src": "5191:52:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -19639,21 +21236,21 @@ "typeString": "bool" } ], - "id": 3774, + "id": 535, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "4733:7:8", + "referencedDeclaration": 10045, + "src": "5183:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3785, + "id": 546, "isConstant": false, "isLValue": false, "isPure": false, @@ -19661,43 +21258,43 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4733:61:8", + "src": "5183:61:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3786, + "id": 547, "nodeType": "ExpressionStatement", - "src": "4733:61:8" + "src": "5183:61:1" }, { "assignments": [ - 3788 + 549 ], "declarations": [ { "constant": false, - "id": 3788, + "id": 549, "name": "listedToken", "nodeType": "VariableDeclaration", - "scope": 3890, - "src": "4805:31:8", + "scope": 652, + "src": "5255:31:1", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken" }, "typeName": { "contractScope": null, - "id": 3787, + "id": 548, "name": "ListedToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3455, - "src": "4805:11:8", + "referencedDeclaration": 182, + "src": "5255:11:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken" } }, @@ -19705,18 +21302,18 @@ "visibility": "internal" } ], - "id": 3794, + "id": 555, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 3790, + "id": 551, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3724, - "src": "4856:12:8", + "referencedDeclaration": 476, + "src": "5306:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19726,18 +21323,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3791, + "id": 552, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "4870:3:8", + "referencedDeclaration": 10042, + "src": "5320:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3792, + "id": 553, "isConstant": false, "isLValue": false, "isPure": false, @@ -19745,7 +21342,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4870:10:8", + "src": "5320:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19763,18 +21360,18 @@ "typeString": "address" } ], - "id": 3789, + "id": 550, "name": "getApprovedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4272, - "src": "4839:16:8", + "referencedDeclaration": 1046, + "src": "5289:16:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$3455_storage_ptr_$", + "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": 3793, + "id": 554, "isConstant": false, "isLValue": false, "isPure": false, @@ -19782,14 +21379,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4839:42:8", + "src": "5289:42:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken storage pointer" } }, "nodeType": "VariableDeclarationStatement", - "src": "4805:76:8" + "src": "5255:76:1" }, { "expression": { @@ -19801,7 +21398,7 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 3801, + "id": 562, "isConstant": false, "isLValue": false, "isPure": false, @@ -19813,32 +21410,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 3796, + "id": 557, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3769, - "src": "4900:5:8", + "referencedDeclaration": 530, + "src": "5350:5:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_DetailedERC20_$6974", + "typeIdentifier": "t_contract$_DetailedERC20_$9722", "typeString": "contract DetailedERC20" } }, - "id": 3797, + "id": 558, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "decimals", "nodeType": "MemberAccess", - "referencedDeclaration": 6951, - "src": "4900:14:8", + "referencedDeclaration": 9699, + "src": "5350:14:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", "typeString": "function () view external returns (uint8)" } }, - "id": 3798, + "id": 559, "isConstant": false, "isLValue": false, "isPure": false, @@ -19846,7 +21443,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4900:16:8", + "src": "5350:16:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -19858,32 +21455,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3799, + "id": 560, "name": "listedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3788, - "src": "4920:11:8", + "referencedDeclaration": 549, + "src": "5370:11:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken storage pointer" } }, - "id": 3800, + "id": 561, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "decimals", "nodeType": "MemberAccess", - "referencedDeclaration": 3434, - "src": "4920:20:8", + "referencedDeclaration": 161, + "src": "5370:20:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "4900:40:8", + "src": "5350:40:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -19897,21 +21494,21 @@ "typeString": "bool" } ], - "id": 3795, + "id": 556, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "4892:7:8", + "referencedDeclaration": 10045, + "src": "5342:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3802, + "id": 563, "isConstant": false, "isLValue": false, "isPure": false, @@ -19919,28 +21516,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4892:49:8", + "src": "5342:49:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3803, + "id": 564, "nodeType": "ExpressionStatement", - "src": "4892:49:8" + "src": "5342:49:1" }, { "assignments": [ - 3805 + 566 ], "declarations": [ { "constant": false, - "id": 3805, + "id": 566, "name": "fee", "nodeType": "VariableDeclaration", - "scope": 3890, - "src": "4952:8:8", + "scope": 652, + "src": "5402:8:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19948,10 +21545,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3804, + "id": 565, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4952:4:8", + "src": "5402:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19961,7 +21558,7 @@ "visibility": "internal" } ], - "id": 3817, + "id": 578, "initialValue": { "argumentTypes": null, "condition": { @@ -19970,7 +21567,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3809, + "id": 570, "isConstant": false, "isLValue": false, "isPure": false, @@ -19979,26 +21576,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3806, + "id": 567, "name": "listedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3788, - "src": "4963:11:8", + "referencedDeclaration": 549, + "src": "5413:11:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken storage pointer" } }, - "id": 3807, + "id": 568, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "feePercent", "nodeType": "MemberAccess", - "referencedDeclaration": 3440, - "src": "4963:22:8", + "referencedDeclaration": 167, + "src": "5413:22:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20009,14 +21606,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3808, + "id": 569, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4988:1:8", + "src": "5438:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -20024,7 +21621,7 @@ }, "value": "0" }, - "src": "4963:26:8", + "src": "5413:26:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -20033,14 +21630,14 @@ "falseExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3815, + "id": 576, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5057:1:8", + "src": "5507:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -20048,13 +21645,13 @@ }, "value": "0" }, - "id": 3816, + "id": 577, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", - "src": "4963:95:8", + "src": "5413:95:1", "trueExpression": { "argumentTypes": null, "arguments": [ @@ -20062,26 +21659,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3812, + "id": 573, "name": "listedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3788, - "src": "5019:11:8", + "referencedDeclaration": 549, + "src": "5469:11:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken storage pointer" } }, - "id": 3813, + "id": 574, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "feePercent", "nodeType": "MemberAccess", - "referencedDeclaration": 3440, - "src": "5019:22:8", + "referencedDeclaration": 167, + "src": "5469:22:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20097,32 +21694,32 @@ ], "expression": { "argumentTypes": null, - "id": 3810, + "id": 571, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3726, - "src": "5004:6:8", + "referencedDeclaration": 478, + "src": "5454:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3811, + "id": 572, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "percent", "nodeType": "MemberAccess", - "referencedDeclaration": 4568, - "src": "5004:14:8", + "referencedDeclaration": 5022, + "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": 3814, + "id": 575, "isConstant": false, "isLValue": false, "isPure": false, @@ -20130,7 +21727,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5004:38:8", + "src": "5454:38:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20142,20 +21739,20 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "4952:106:8" + "src": "5402:106:1" }, { "assignments": [ - 3819 + 580 ], "declarations": [ { "constant": false, - "id": 3819, + "id": 580, "name": "amountWithoutFee", "nodeType": "VariableDeclaration", - "scope": 3890, - "src": "5068:21:8", + "scope": 652, + "src": "5518:21:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -20163,10 +21760,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3818, + "id": 579, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5068:4:8", + "src": "5518:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20176,18 +21773,18 @@ "visibility": "internal" } ], - "id": 3824, + "id": 585, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 3822, + "id": 583, "name": "fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3805, - "src": "5103:3:8", + "referencedDeclaration": 566, + "src": "5553:3:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20203,32 +21800,32 @@ ], "expression": { "argumentTypes": null, - "id": 3820, + "id": 581, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3726, - "src": "5092:6:8", + "referencedDeclaration": 478, + "src": "5542:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3821, + "id": 582, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 6829, - "src": "5092:10:8", + "referencedDeclaration": 9577, + "src": "5542:10: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": 3823, + "id": 584, "isConstant": false, "isLValue": false, "isPure": false, @@ -20236,14 +21833,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5092:15:8", + "src": "5542:15:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "5068:39:8" + "src": "5518:39:1" }, { "expression": { @@ -20251,38 +21848,38 @@ "arguments": [ { "argumentTypes": null, - "id": 3826, + "id": 587, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3769, - "src": "5139:5:8", + "referencedDeclaration": 530, + "src": "5589:5:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_DetailedERC20_$6974", + "typeIdentifier": "t_contract$_DetailedERC20_$9722", "typeString": "contract DetailedERC20" } }, { "argumentTypes": null, - "id": 3827, + "id": 588, "name": "exchanger", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3372, - "src": "5146:9:8", + "referencedDeclaration": 99, + "src": "5596:9:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$6187", + "typeIdentifier": "t_contract$_ITokenExchanger_$8748", "typeString": "contract ITokenExchanger" } }, { "argumentTypes": null, - "id": 3828, + "id": 589, "name": "amountWithoutFee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3819, - "src": "5157:16:8", + "referencedDeclaration": 580, + "src": "5607:16:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20292,11 +21889,11 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_DetailedERC20_$6974", + "typeIdentifier": "t_contract$_DetailedERC20_$9722", "typeString": "contract DetailedERC20" }, { - "typeIdentifier": "t_contract$_ITokenExchanger_$6187", + "typeIdentifier": "t_contract$_ITokenExchanger_$8748", "typeString": "contract ITokenExchanger" }, { @@ -20304,18 +21901,18 @@ "typeString": "uint256" } ], - "id": 3825, + "id": 586, "name": "_secureTokenTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3928, - "src": "5118:20:8", + "referencedDeclaration": 690, + "src": "5568:20:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_ERC20_$7017_$_t_address_$_t_uint256_$returns$__$", + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_ERC20_$9765_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (contract ERC20,address,uint256)" } }, - "id": 3829, + "id": 590, "isConstant": false, "isLValue": false, "isPure": false, @@ -20323,15 +21920,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5118:56:8", + "src": "5568:56:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3830, + "id": 591, "nodeType": "ExpressionStatement", - "src": "5118:56:8" + "src": "5568:56:1" }, { "expression": { @@ -20339,25 +21936,42 @@ "arguments": [ { "argumentTypes": null, - "id": 3832, + "id": 593, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3769, - "src": "5205:5:8", + "referencedDeclaration": 530, + "src": "5655:5:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_DetailedERC20_$6974", + "typeIdentifier": "t_contract$_DetailedERC20_$9722", "typeString": "contract DetailedERC20" } }, { "argumentTypes": null, - "id": 3833, - "name": "serviceWallet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3392, - "src": "5212:13:8", + "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)" + } + }, + "id": 595, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5662:15:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -20365,12 +21979,12 @@ }, { "argumentTypes": null, - "id": 3834, + "id": 596, "name": "fee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3805, - "src": "5227:3:8", + "referencedDeclaration": 566, + "src": "5679:3:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20380,7 +21994,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_DetailedERC20_$6974", + "typeIdentifier": "t_contract$_DetailedERC20_$9722", "typeString": "contract DetailedERC20" }, { @@ -20392,18 +22006,18 @@ "typeString": "uint256" } ], - "id": 3831, + "id": 592, "name": "_secureTokenTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3928, - "src": "5184:20:8", + "referencedDeclaration": 690, + "src": "5634:20:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_ERC20_$7017_$_t_address_$_t_uint256_$returns$__$", + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_ERC20_$9765_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (contract ERC20,address,uint256)" } }, - "id": 3835, + "id": 597, "isConstant": false, "isLValue": false, "isPure": false, @@ -20411,20 +22025,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5184:47:8", + "src": "5634:49:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3836, + "id": 598, "nodeType": "ExpressionStatement", - "src": "5184:47:8" + "src": "5634:49:1" }, { "expression": { "argumentTypes": null, - "id": 3845, + "id": 607, "isConstant": false, "isLValue": false, "isPure": false, @@ -20433,26 +22047,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3837, + "id": 599, "name": "listedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3788, - "src": "5242:11:8", + "referencedDeclaration": 549, + "src": "5694:11:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken storage pointer" } }, - "id": 3839, + "id": 601, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "tokensForSaleAmount", "nodeType": "MemberAccess", - "referencedDeclaration": 3450, - "src": "5242:31:8", + "referencedDeclaration": 177, + "src": "5694:31:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20465,12 +22079,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3843, + "id": 605, "name": "amountWithoutFee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3819, - "src": "5312:16:8", + "referencedDeclaration": 580, + "src": "5764:16:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20488,46 +22102,46 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3840, + "id": 602, "name": "listedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3788, - "src": "5276:11:8", + "referencedDeclaration": 549, + "src": "5728:11:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken storage pointer" } }, - "id": 3841, + "id": 603, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "tokensForSaleAmount", "nodeType": "MemberAccess", - "referencedDeclaration": 3450, - "src": "5276:31:8", + "referencedDeclaration": 177, + "src": "5728:31:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3842, + "id": 604, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 6853, - "src": "5276:35:8", + "referencedDeclaration": 9601, + "src": "5728:35: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": 3844, + "id": 606, "isConstant": false, "isLValue": false, "isPure": false, @@ -20535,21 +22149,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5276:53:8", + "src": "5728:53:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5242:87:8", + "src": "5694:87:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3846, + "id": 608, "nodeType": "ExpressionStatement", - "src": "5242:87:8" + "src": "5694:87:1" }, { "condition": { @@ -20558,7 +22172,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 3854, + "id": 616, "isConstant": false, "isLValue": false, "isPure": false, @@ -20568,12 +22182,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3849, + "id": 611, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3724, - "src": "5371:12:8", + "referencedDeclaration": 476, + "src": "5823:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -20589,32 +22203,32 @@ ], "expression": { "argumentTypes": null, - "id": 3847, + "id": 609, "name": "exchanger", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3372, - "src": "5344:9:8", + "referencedDeclaration": 99, + "src": "5796:9:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$6187", + "typeIdentifier": "t_contract$_ITokenExchanger_$8748", "typeString": "contract ITokenExchanger" } }, - "id": 3848, + "id": 610, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getWTokenByToken", "nodeType": "MemberAccess", - "referencedDeclaration": 6214, - "src": "5344:26:8", + "referencedDeclaration": 8775, + "src": "5796:26:1", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_contract$_WToken_$5925_$", + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_contract$_WToken_$8486_$", "typeString": "function (address) view external returns (contract WToken)" } }, - "id": 3850, + "id": 612, "isConstant": false, "isLValue": false, "isPure": false, @@ -20622,9 +22236,9 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5344:40:8", + "src": "5796:40:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, @@ -20636,14 +22250,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 3852, + "id": 614, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5396:1:8", + "src": "5848:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -20659,20 +22273,20 @@ "typeString": "int_const 0" } ], - "id": 3851, + "id": 613, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "5388:7:8", + "src": "5840:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 3853, + "id": 615, "isConstant": false, "isLValue": false, "isPure": true, @@ -20680,54 +22294,54 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5388:10:8", + "src": "5840:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "5344:54:8", + "src": "5796:54:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 3877, + "id": 639, "nodeType": "IfStatement", - "src": "5340:242:8", + "src": "5792:242:1", "trueBody": { - "id": 3876, + "id": 638, "nodeType": "Block", - "src": "5400:182:8", + "src": "5852:182:1", "statements": [ { "assignments": [ - 3856 + 618 ], "declarations": [ { "constant": false, - "id": 3856, + "id": 618, "name": "wToken", "nodeType": "VariableDeclaration", - "scope": 3890, - "src": "5414:13:8", + "scope": 652, + "src": "5866:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" }, "typeName": { "contractScope": null, - "id": 3855, + "id": 617, "name": "WToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5925, - "src": "5414:6:8", + "referencedDeclaration": 8486, + "src": "5866:6:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, @@ -20735,7 +22349,7 @@ "visibility": "internal" } ], - "id": 3866, + "id": 628, "initialValue": { "argumentTypes": null, "arguments": [ @@ -20743,26 +22357,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3859, + "id": 621, "name": "listedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3788, - "src": "5441:11:8", + "referencedDeclaration": 549, + "src": "5893:11:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken storage pointer" } }, - "id": 3860, + "id": 622, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "name", "nodeType": "MemberAccess", - "referencedDeclaration": 3430, - "src": "5441:16:8", + "referencedDeclaration": 157, + "src": "5893:16:1", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -20772,26 +22386,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3861, + "id": 623, "name": "listedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3788, - "src": "5459:11:8", + "referencedDeclaration": 549, + "src": "5911:11:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken storage pointer" } }, - "id": 3862, + "id": 624, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "symbol", "nodeType": "MemberAccess", - "referencedDeclaration": 3432, - "src": "5459:18:8", + "referencedDeclaration": 159, + "src": "5911:18:1", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -20801,26 +22415,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3863, + "id": 625, "name": "listedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3788, - "src": "5479:11:8", + "referencedDeclaration": 549, + "src": "5931:11:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken storage pointer" } }, - "id": 3864, + "id": 626, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "decimals", "nodeType": "MemberAccess", - "referencedDeclaration": 3434, - "src": "5479:20:8", + "referencedDeclaration": 161, + "src": "5931:20:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -20842,31 +22456,31 @@ "typeString": "uint8" } ], - "id": 3858, + "id": 620, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "NewExpression", - "src": "5430:10:8", + "src": "5882:10:1", "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_WToken_$5925_$", + "typeIdentifier": "t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_WToken_$8486_$", "typeString": "function (string memory,string memory,uint8) returns (contract WToken)" }, "typeName": { "contractScope": null, - "id": 3857, + "id": 619, "name": "WToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5925, - "src": "5434:6:8", + "referencedDeclaration": 8486, + "src": "5886:6:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } } }, - "id": 3865, + "id": 627, "isConstant": false, "isLValue": false, "isPure": false, @@ -20874,14 +22488,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5430:70:8", + "src": "5882:70:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, "nodeType": "VariableDeclarationStatement", - "src": "5414:86:8" + "src": "5866:86:1" }, { "expression": { @@ -20892,12 +22506,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3871, + "id": 633, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3724, - "src": "5549:12:8", + "referencedDeclaration": 476, + "src": "6001:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -20911,18 +22525,18 @@ "typeString": "address" } ], - "id": 3870, + "id": 632, "name": "ERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7017, - "src": "5543:5:8", + "referencedDeclaration": 9765, + "src": "5995:5:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$7017_$", + "typeIdentifier": "t_type$_t_contract$_ERC20_$9765_$", "typeString": "type(contract ERC20)" } }, - "id": 3872, + "id": 634, "isConstant": false, "isLValue": false, "isPure": false, @@ -20930,22 +22544,22 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5543:19:8", + "src": "5995:19:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, { "argumentTypes": null, - "id": 3873, + "id": 635, "name": "wToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3856, - "src": "5564:6:8", + "referencedDeclaration": 618, + "src": "6016:6:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } } @@ -20953,42 +22567,42 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" }, { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } ], "expression": { "argumentTypes": null, - "id": 3867, + "id": 629, "name": "exchanger", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3372, - "src": "5515:9:8", + "referencedDeclaration": 99, + "src": "5967:9:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$6187", + "typeIdentifier": "t_contract$_ITokenExchanger_$8748", "typeString": "contract ITokenExchanger" } }, - "id": 3869, + "id": 631, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "addTokenToListing", "nodeType": "MemberAccess", - "referencedDeclaration": 6198, - "src": "5515:27:8", + "referencedDeclaration": 8759, + "src": "5967:27:1", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_contract$_ERC20_$7017_$_t_contract$_WToken_$5925_$returns$__$", + "typeIdentifier": "t_function_external_nonpayable$_t_contract$_ERC20_$9765_$_t_contract$_WToken_$8486_$returns$__$", "typeString": "function (contract ERC20,contract WToken) external" } }, - "id": 3874, + "id": 636, "isConstant": false, "isLValue": false, "isPure": false, @@ -20996,15 +22610,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5515:56:8", + "src": "5967:56:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3875, + "id": 637, "nodeType": "ExpressionStatement", - "src": "5515:56:8" + "src": "5967:56:1" } ] } @@ -21015,12 +22629,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3879, + "id": 641, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3724, - "src": "5609:12:8", + "referencedDeclaration": 476, + "src": "6061:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -21030,18 +22644,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3880, + "id": 642, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "5623:3:8", + "referencedDeclaration": 10042, + "src": "6075:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3881, + "id": 643, "isConstant": false, "isLValue": false, "isPure": false, @@ -21049,7 +22663,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5623:10:8", + "src": "6075:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -21057,12 +22671,12 @@ }, { "argumentTypes": null, - "id": 3882, + "id": 644, "name": "amountWithoutFee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3819, - "src": "5635:16:8", + "referencedDeclaration": 580, + "src": "6087:16:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21073,12 +22687,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3885, + "id": 647, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3724, - "src": "5680:12:8", + "referencedDeclaration": 476, + "src": "6132:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -21094,32 +22708,32 @@ ], "expression": { "argumentTypes": null, - "id": 3883, + "id": 645, "name": "exchanger", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3372, - "src": "5653:9:8", + "referencedDeclaration": 99, + "src": "6105:9:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$6187", + "typeIdentifier": "t_contract$_ITokenExchanger_$8748", "typeString": "contract ITokenExchanger" } }, - "id": 3884, + "id": 646, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getWTokenByToken", "nodeType": "MemberAccess", - "referencedDeclaration": 6214, - "src": "5653:26:8", + "referencedDeclaration": 8775, + "src": "6105:26:1", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_contract$_WToken_$5925_$", + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_contract$_WToken_$8486_$", "typeString": "function (address) view external returns (contract WToken)" } }, - "id": 3886, + "id": 648, "isConstant": false, "isLValue": false, "isPure": false, @@ -21127,9 +22741,9 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5653:40:8", + "src": "6105:40:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } } @@ -21149,22 +22763,22 @@ "typeString": "uint256" }, { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } ], - "id": 3878, + "id": 640, "name": "TokenPlaced", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3412, - "src": "5597:11:8", + "referencedDeclaration": 139, + "src": "6049:11:1", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_address_$returns$__$", "typeString": "function (address,address,uint256,address)" } }, - "id": 3887, + "id": 649, "isConstant": false, "isLValue": false, "isPure": false, @@ -21172,57 +22786,57 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5597:97:8", + "src": "6049:97:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3888, + "id": 650, "nodeType": "EmitStatement", - "src": "5592:102:8" + "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": 3890, + "id": 652, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 3729, + "id": 481, "modifierName": { "argumentTypes": null, - "id": 3728, + "id": 480, "name": "nonReentrant", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6689, - "src": "4397:12:8", + "referencedDeclaration": 9330, + "src": "4799:12:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4397:12:8" + "src": "4799:12:1" } ], "name": "placeToken", "nodeType": "FunctionDefinition", "parameters": { - "id": 3727, + "id": 479, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3724, + "id": 476, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 3890, - "src": "4353:20:8", + "scope": 652, + "src": "4755:20:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -21230,10 +22844,10 @@ "typeString": "address" }, "typeName": { - "id": 3723, + "id": 475, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4353:7:8", + "src": "4755:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -21244,11 +22858,11 @@ }, { "constant": false, - "id": 3726, + "id": 478, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 3890, - "src": "4375:11:8", + "scope": 652, + "src": "4777:11:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -21256,10 +22870,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3725, + "id": 477, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4375:4:8", + "src": "4777:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21269,39 +22883,39 @@ "visibility": "internal" } ], - "src": "4352:35:8" + "src": "4754:35:1" }, "payable": false, "returnParameters": { - "id": 3730, + "id": 482, "nodeType": "ParameterList", "parameters": [], - "src": "4410:0:8" + "src": "4812:0:1" }, - "scope": 4273, - "src": "4333:1368:8", + "scope": 1058, + "src": "4735:1418:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" }, { "body": { - "id": 3927, + "id": 689, "nodeType": "Block", - "src": "5858:341:8", + "src": "6310:341:1", "statements": [ { "assignments": [ - 3900 + 662 ], "declarations": [ { "constant": false, - "id": 3900, + "id": 662, "name": "expectedBalance", "nodeType": "VariableDeclaration", - "scope": 3928, - "src": "5970:20:8", + "scope": 690, + "src": "6422:20:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -21309,10 +22923,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3899, + "id": 661, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5970:4:8", + "src": "6422:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21322,18 +22936,18 @@ "visibility": "internal" } ], - "id": 3908, + "id": 670, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 3906, + "id": 668, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3896, - "src": "6017:5:8", + "referencedDeclaration": 658, + "src": "6469:5:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21352,12 +22966,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3903, + "id": 665, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3894, - "src": "6009:2:8", + "referencedDeclaration": 656, + "src": "6461:2:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -21373,32 +22987,32 @@ ], "expression": { "argumentTypes": null, - "id": 3901, + "id": 663, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3892, - "src": "5993:5:8", + "referencedDeclaration": 654, + "src": "6445:5:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, - "id": 3902, + "id": 664, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 7031, - "src": "5993:15:8", + "referencedDeclaration": 9779, + "src": "6445:15:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 3904, + "id": 666, "isConstant": false, "isLValue": false, "isPure": false, @@ -21406,27 +23020,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5993:19:8", + "src": "6445:19:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3905, + "id": 667, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 6853, - "src": "5993:23:8", + "referencedDeclaration": 9601, + "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": 3907, + "id": 669, "isConstant": false, "isLValue": false, "isPure": false, @@ -21434,14 +23048,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5993:30:8", + "src": "6445:30:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "5970:53:8" + "src": "6422:53:1" }, { "expression": { @@ -21451,18 +23065,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3912, + "id": 674, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "6053:3:8", + "referencedDeclaration": 10042, + "src": "6505:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3913, + "id": 675, "isConstant": false, "isLValue": false, "isPure": false, @@ -21470,7 +23084,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6053:10:8", + "src": "6505:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -21478,12 +23092,12 @@ }, { "argumentTypes": null, - "id": 3914, + "id": 676, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3894, - "src": "6065:2:8", + "referencedDeclaration": 656, + "src": "6517:2:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -21491,12 +23105,12 @@ }, { "argumentTypes": null, - "id": 3915, + "id": 677, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3896, - "src": "6069:5:8", + "referencedDeclaration": 658, + "src": "6521:5:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21520,32 +23134,32 @@ ], "expression": { "argumentTypes": null, - "id": 3909, + "id": 671, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3892, - "src": "6034:5:8", + "referencedDeclaration": 654, + "src": "6486:5:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, - "id": 3911, + "id": 673, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transferFrom", "nodeType": "MemberAccess", - "referencedDeclaration": 6999, - "src": "6034:18:8", + "referencedDeclaration": 9747, + "src": "6486:18:1", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,address,uint256) external returns (bool)" } }, - "id": 3916, + "id": 678, "isConstant": false, "isLValue": false, "isPure": false, @@ -21553,15 +23167,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6034:41:8", + "src": "6486:41:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3917, + "id": 679, "nodeType": "ExpressionStatement", - "src": "6034:41:8" + "src": "6486:41:1" }, { "expression": { @@ -21573,7 +23187,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3924, + "id": 686, "isConstant": false, "isLValue": false, "isPure": false, @@ -21583,12 +23197,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3921, + "id": 683, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3894, - "src": "6169:2:8", + "referencedDeclaration": 656, + "src": "6621:2:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -21604,32 +23218,32 @@ ], "expression": { "argumentTypes": null, - "id": 3919, + "id": 681, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3892, - "src": "6153:5:8", + "referencedDeclaration": 654, + "src": "6605:5:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, - "id": 3920, + "id": 682, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 7031, - "src": "6153:15:8", + "referencedDeclaration": 9779, + "src": "6605:15:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 3922, + "id": 684, "isConstant": false, "isLValue": false, "isPure": false, @@ -21637,7 +23251,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6153:19:8", + "src": "6605:19:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21647,18 +23261,280 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 3923, + "id": 685, "name": "expectedBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "6176:15:8", + "referencedDeclaration": 662, + "src": "6628:15:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6153:38:8", + "src": "6605:38:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 680, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10031, + "src": "6598:6:1", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 687, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "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_$9765", + "typeString": "contract ERC20" + }, + "typeName": { + "contractScope": null, + "id": 653, + "name": "ERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9765, + "src": "6264:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$9765", + "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", + "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" + }, + "id": 707, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 702, + "name": "serviceWallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1057, + "src": "6774:13:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 703, + "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", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6774:29:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -21672,18 +23548,21 @@ "typeString": "bool" } ], - "id": 3918, - "name": "assert", + "id": 701, + "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7283, - "src": "6146:6:8", + "overloadedDeclarations": [ + 10045, + 10046 + ], + "referencedDeclaration": 10045, + "src": "6766:7:1", "typeDescriptions": { - "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3925, + "id": 708, "isConstant": false, "isLValue": false, "isPure": false, @@ -21691,132 +23570,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6146:46:8", + "src": "6766:38:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3926, + "id": 709, "nodeType": "ExpressionStatement", - "src": "6146:46:8" - } - ] - }, - "documentation": "@dev Securely transfer token from sender to account", - "id": 3928, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_secureTokenTransfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3897, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3892, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 3928, - "src": "5812:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", - "typeString": "contract ERC20" - }, - "typeName": { - "contractScope": null, - "id": 3891, - "name": "ERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7017, - "src": "5812:5:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", - "typeString": "contract ERC20" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3894, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3928, - "src": "5825:10:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3893, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5825:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" + "src": "6766:38:1" }, - { - "constant": false, - "id": 3896, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 3928, - "src": "5837:10:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3895, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5837:4:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5811:37:8" - }, - "payable": false, - "returnParameters": { - "id": 3898, - "nodeType": "ParameterList", - "parameters": [], - "src": "5858:0:8" - }, - "scope": 4273, - "src": "5782:417:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 4089, - "nodeType": "Block", - "src": "6304:1526:8", - "statements": [ { "expression": { "argumentTypes": null, @@ -21827,7 +23590,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 3950, + "id": 721, "isConstant": false, "isLValue": false, "isPure": false, @@ -21841,12 +23604,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3941, + "id": 712, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3930, - "src": "6339:12:8", + "referencedDeclaration": 692, + "src": "6839:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -21856,18 +23619,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3942, + "id": 713, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "6353:3:8", + "referencedDeclaration": 10042, + "src": "6853:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3943, + "id": 714, "isConstant": false, "isLValue": false, "isPure": false, @@ -21875,7 +23638,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6353:10:8", + "src": "6853:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -21893,18 +23656,18 @@ "typeString": "address" } ], - "id": 3940, + "id": 711, "name": "getApprovedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4272, - "src": "6322:16:8", + "referencedDeclaration": 1046, + "src": "6822:16:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$3455_storage_ptr_$", + "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": 3944, + "id": 715, "isConstant": false, "isLValue": false, "isPure": false, @@ -21912,43 +23675,43 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6322:42:8", + "src": "6822:42:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken storage pointer" } }, - "id": 3945, + "id": 716, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "approvedOwners", "nodeType": "MemberAccess", - "referencedDeclaration": 3438, - "src": "6322:57:8", + "referencedDeclaration": 165, + "src": "6822:57:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 3948, + "id": 719, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3946, + "id": 717, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "6380:3:8", + "referencedDeclaration": 10042, + "src": "6880:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3947, + "id": 718, "isConstant": false, "isLValue": false, "isPure": false, @@ -21956,7 +23719,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6380:10:8", + "src": "6880:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -21967,7 +23730,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6322:69:8", + "src": "6822:69:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -21978,14 +23741,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3949, + "id": 720, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "6395:4:8", + "src": "6895:4:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -21993,7 +23756,7 @@ }, "value": "true" }, - "src": "6322:77:8", + "src": "6822:77:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -22007,21 +23770,21 @@ "typeString": "bool" } ], - "id": 3939, + "id": 710, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "6314:7:8", + "referencedDeclaration": 10045, + "src": "6814:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3951, + "id": 722, "isConstant": false, "isLValue": false, "isPure": false, @@ -22029,15 +23792,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6314:86:8", + "src": "6814:86:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3952, + "id": 723, "nodeType": "ExpressionStatement", - "src": "6314:86:8" + "src": "6814:86:1" }, { "expression": { @@ -22049,7 +23812,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3969, + "id": 740, "isConstant": false, "isLValue": false, "isPure": false, @@ -22061,12 +23824,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3955, + "id": 726, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3930, - "src": "6435:12:8", + "referencedDeclaration": 692, + "src": "6935:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -22076,18 +23839,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3956, + "id": 727, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "6449:3:8", + "referencedDeclaration": 10042, + "src": "6949:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3957, + "id": 728, "isConstant": false, "isLValue": false, "isPure": false, @@ -22095,7 +23858,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6449:10:8", + "src": "6949:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -22113,18 +23876,18 @@ "typeString": "address" } ], - "id": 3954, + "id": 725, "name": "getApprovedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4272, - "src": "6418:16:8", + "referencedDeclaration": 1046, + "src": "6918:16:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$3455_storage_ptr_$", + "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": 3958, + "id": 729, "isConstant": false, "isLValue": false, "isPure": false, @@ -22132,21 +23895,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6418:42:8", + "src": "6918:42:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken storage pointer" } }, - "id": 3959, + "id": 730, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "tokensForSaleAmount", "nodeType": "MemberAccess", - "referencedDeclaration": 3450, - "src": "6418:62:8", + "referencedDeclaration": 177, + "src": "6918:62:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -22159,12 +23922,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3967, + "id": 738, "name": "amountForSale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3932, - "src": "6551:13:8", + "referencedDeclaration": 694, + "src": "7051:13:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -22185,12 +23948,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3961, + "id": 732, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3930, - "src": "6501:12:8", + "referencedDeclaration": 692, + "src": "7001:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -22200,18 +23963,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3962, + "id": 733, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "6515:3:8", + "referencedDeclaration": 10042, + "src": "7015:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3963, + "id": 734, "isConstant": false, "isLValue": false, "isPure": false, @@ -22219,7 +23982,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6515:10:8", + "src": "7015:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -22237,18 +24000,18 @@ "typeString": "address" } ], - "id": 3960, + "id": 731, "name": "getApprovedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4272, - "src": "6484:16:8", + "referencedDeclaration": 1046, + "src": "6984:16:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$3455_storage_ptr_$", + "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": 3964, + "id": 735, "isConstant": false, "isLValue": false, "isPure": false, @@ -22256,41 +24019,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6484:42:8", + "src": "6984:42:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken storage pointer" } }, - "id": 3965, + "id": 736, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "wTokensIssuedAmount", "nodeType": "MemberAccess", - "referencedDeclaration": 3452, - "src": "6484:62:8", + "referencedDeclaration": 179, + "src": "6984:62:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3966, + "id": 737, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 6853, - "src": "6484:66:8", + "referencedDeclaration": 9601, + "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": 3968, + "id": 739, "isConstant": false, "isLValue": false, "isPure": false, @@ -22298,13 +24061,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6484:81:8", + "src": "6984:81:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6418:147:8", + "src": "6918:147:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -22318,21 +24081,21 @@ "typeString": "bool" } ], - "id": 3953, + "id": 724, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "6410:7:8", + "referencedDeclaration": 10045, + "src": "6910:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3970, + "id": 741, "isConstant": false, "isLValue": false, "isPure": false, @@ -22340,15 +24103,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6410:156:8", + "src": "6910:156:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3971, + "id": 742, "nodeType": "ExpressionStatement", - "src": "6410:156:8" + "src": "6910:156:1" }, { "expression": { @@ -22360,7 +24123,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 3982, + "id": 753, "isConstant": false, "isLValue": false, "isPure": false, @@ -22372,12 +24135,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3974, + "id": 745, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3930, - "src": "6601:12:8", + "referencedDeclaration": 692, + "src": "7101:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -22387,18 +24150,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3975, + "id": 746, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "6615:3:8", + "referencedDeclaration": 10042, + "src": "7115:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3976, + "id": 747, "isConstant": false, "isLValue": false, "isPure": false, @@ -22406,7 +24169,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6615:10:8", + "src": "7115:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -22424,18 +24187,18 @@ "typeString": "address" } ], - "id": 3973, + "id": 744, "name": "getApprovedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4272, - "src": "6584:16:8", + "referencedDeclaration": 1046, + "src": "7084:16:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$3455_storage_ptr_$", + "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": 3977, + "id": 748, "isConstant": false, "isLValue": false, "isPure": false, @@ -22443,23 +24206,23 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6584:42:8", + "src": "7084:42:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken storage pointer" } }, - "id": 3978, + "id": 749, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "crowdsaleAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 3448, - "src": "6584:59:8", + "referencedDeclaration": 175, + "src": "7084:59:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } }, @@ -22471,14 +24234,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 3980, + "id": 751, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6655:1:8", + "src": "7155:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -22494,20 +24257,20 @@ "typeString": "int_const 0" } ], - "id": 3979, + "id": 750, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6647:7:8", + "src": "7147:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 3981, + "id": 752, "isConstant": false, "isLValue": false, "isPure": true, @@ -22515,13 +24278,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6647:10:8", + "src": "7147:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "6584:73:8", + "src": "7084:73:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -22535,21 +24298,21 @@ "typeString": "bool" } ], - "id": 3972, + "id": 743, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "6576:7:8", + "referencedDeclaration": 10045, + "src": "7076:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3983, + "id": 754, "isConstant": false, "isLValue": false, "isPure": false, @@ -22557,43 +24320,43 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6576:82:8", + "src": "7076:82:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3984, + "id": 755, "nodeType": "ExpressionStatement", - "src": "6576:82:8" + "src": "7076:82:1" }, { "assignments": [ - 3986 + 757 ], "declarations": [ { "constant": false, - "id": 3986, + "id": 757, "name": "wtoken", "nodeType": "VariableDeclaration", - "scope": 4090, - "src": "6669:13:8", + "scope": 864, + "src": "7169:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" }, "typeName": { "contractScope": null, - "id": 3985, + "id": 756, "name": "WToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5925, - "src": "6669:6:8", + "referencedDeclaration": 8486, + "src": "7169:6:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, @@ -22601,18 +24364,18 @@ "visibility": "internal" } ], - "id": 3991, + "id": 762, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 3989, + "id": 760, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3930, - "src": "6712:12:8", + "referencedDeclaration": 692, + "src": "7212:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -22628,32 +24391,32 @@ ], "expression": { "argumentTypes": null, - "id": 3987, + "id": 758, "name": "exchanger", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3372, - "src": "6685:9:8", + "referencedDeclaration": 99, + "src": "7185:9:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$6187", + "typeIdentifier": "t_contract$_ITokenExchanger_$8748", "typeString": "contract ITokenExchanger" } }, - "id": 3988, + "id": 759, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getWTokenByToken", "nodeType": "MemberAccess", - "referencedDeclaration": 6214, - "src": "6685:26:8", + "referencedDeclaration": 8775, + "src": "7185:26:1", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_contract$_WToken_$5925_$", + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_contract$_WToken_$8486_$", "typeString": "function (address) view external returns (contract WToken)" } }, - "id": 3990, + "id": 761, "isConstant": false, "isLValue": false, "isPure": false, @@ -22661,42 +24424,42 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6685:40:8", + "src": "7185:40:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, "nodeType": "VariableDeclarationStatement", - "src": "6669:56:8" + "src": "7169:56:1" }, { "assignments": [ - 3993 + 764 ], "declarations": [ { "constant": false, - "id": 3993, + "id": 764, "name": "crowdsale", "nodeType": "VariableDeclaration", - "scope": 4090, - "src": "6736:23:8", + "scope": 864, + "src": "7236:23:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" }, "typeName": { "contractScope": null, - "id": 3992, + "id": 763, "name": "IW12Crowdsale", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4426, - "src": "6736:13:8", + "referencedDeclaration": 1204, + "src": "7236:13:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } }, @@ -22704,7 +24467,7 @@ "visibility": "internal" } ], - "id": 4026, + "id": 800, "initialValue": { "argumentTypes": null, "arguments": [ @@ -22713,12 +24476,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3997, + "id": 768, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3930, - "src": "6807:12:8", + "referencedDeclaration": 692, + "src": "7307:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -22732,20 +24495,20 @@ "typeString": "address" } ], - "id": 3996, + "id": 767, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6799:7:8", + "src": "7299:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 3998, + "id": 769, "isConstant": false, "isLValue": false, "isPure": false, @@ -22753,7 +24516,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6799:21:8", + "src": "7299:21:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -22764,14 +24527,14 @@ "arguments": [ { "argumentTypes": null, - "id": 4000, + "id": 771, "name": "wtoken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3986, - "src": "6842:6:8", + "referencedDeclaration": 757, + "src": "7342:6:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } } @@ -22779,24 +24542,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } ], - "id": 3999, + "id": 770, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6834:7:8", + "src": "7334:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 4001, + "id": 772, "isConstant": false, "isLValue": false, "isPure": false, @@ -22804,7 +24567,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6834:15:8", + "src": "7334:15:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -22812,12 +24575,12 @@ }, { "argumentTypes": null, - "id": 4002, + "id": 773, "name": "price", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3934, - "src": "6863:5:8", + "referencedDeclaration": 696, + "src": "7363:5:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -22825,12 +24588,29 @@ }, { "argumentTypes": null, - "id": 4003, - "name": "serviceWallet", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3392, - "src": "6882:13:8", + "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)" + } + }, + "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" @@ -22843,12 +24623,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4005, + "id": 777, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3930, - "src": "6926:12:8", + "referencedDeclaration": 692, + "src": "7428:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -22858,18 +24638,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4006, + "id": 778, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "6940:3:8", + "referencedDeclaration": 10042, + "src": "7442:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 4007, + "id": 779, "isConstant": false, "isLValue": false, "isPure": false, @@ -22877,7 +24657,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6940:10:8", + "src": "7442:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -22895,18 +24675,18 @@ "typeString": "address" } ], - "id": 4004, + "id": 776, "name": "getApprovedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4272, - "src": "6909:16:8", + "referencedDeclaration": 1046, + "src": "7411:16:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$3455_storage_ptr_$", + "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": 4008, + "id": 780, "isConstant": false, "isLValue": false, "isPure": false, @@ -22914,21 +24694,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6909:42:8", + "src": "7411:42:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken storage pointer" } }, - "id": 4009, + "id": 781, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "ethFeePercent", "nodeType": "MemberAccess", - "referencedDeclaration": 3442, - "src": "6909:56:8", + "referencedDeclaration": 169, + "src": "7411:56:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -22941,12 +24721,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4011, + "id": 783, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3930, - "src": "6996:12:8", + "referencedDeclaration": 692, + "src": "7498:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -22956,18 +24736,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4012, + "id": 784, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "7010:3:8", + "referencedDeclaration": 10042, + "src": "7512:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 4013, + "id": 785, "isConstant": false, "isLValue": false, "isPure": false, @@ -22975,7 +24755,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7010:10:8", + "src": "7512:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -22993,18 +24773,18 @@ "typeString": "address" } ], - "id": 4010, + "id": 782, "name": "getApprovedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4272, - "src": "6979:16:8", + "referencedDeclaration": 1046, + "src": "7481:16:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$3455_storage_ptr_$", + "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": 4014, + "id": 786, "isConstant": false, "isLValue": false, "isPure": false, @@ -23012,21 +24792,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6979:42:8", + "src": "7481:42:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken storage pointer" } }, - "id": 4015, + "id": 787, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "WTokenSaleFeePercent", "nodeType": "MemberAccess", - "referencedDeclaration": 3444, - "src": "6979:63:8", + "referencedDeclaration": 171, + "src": "7481:63:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -23039,12 +24819,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4017, + "id": 789, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3930, - "src": "7073:12:8", + "referencedDeclaration": 692, + "src": "7575:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -23054,18 +24834,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4018, + "id": 790, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "7087:3:8", + "referencedDeclaration": 10042, + "src": "7589:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 4019, + "id": 791, "isConstant": false, "isLValue": false, "isPure": false, @@ -23073,7 +24853,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7087:10:8", + "src": "7589:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -23091,18 +24871,18 @@ "typeString": "address" } ], - "id": 4016, + "id": 788, "name": "getApprovedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4272, - "src": "7056:16:8", + "referencedDeclaration": 1046, + "src": "7558:16:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$3455_storage_ptr_$", + "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": 4020, + "id": 792, "isConstant": false, "isLValue": false, "isPure": false, @@ -23110,21 +24890,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7056:42:8", + "src": "7558:42:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken storage pointer" } }, - "id": 4021, + "id": 793, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "trancheFeePercent", "nodeType": "MemberAccess", - "referencedDeclaration": 3446, - "src": "7056:60:8", + "referencedDeclaration": 173, + "src": "7558:60:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -23132,33 +24912,71 @@ }, { "argumentTypes": null, - "id": 4022, - "name": "exchanger", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3372, - "src": "7130:9:8", + "arguments": [ + { + "argumentTypes": null, + "id": 795, + "name": "exchanger", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 99, + "src": "7640:9:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ITokenExchanger_$8748", + "typeString": "contract ITokenExchanger" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ITokenExchanger_$8748", + "typeString": "contract ITokenExchanger" + } + ], + "id": 794, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7632:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 796, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7632:18:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$6187", - "typeString": "contract ITokenExchanger" + "typeIdentifier": "t_address", + "typeString": "address" } }, { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4023, + "id": 797, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "7153:3:8", + "referencedDeclaration": 10042, + "src": "7664:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 4024, + "id": 798, "isConstant": false, "isLValue": false, "isPure": false, @@ -23166,7 +24984,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7153:10:8", + "src": "7664:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -23204,8 +25022,8 @@ "typeString": "uint256" }, { - "typeIdentifier": "t_contract$_ITokenExchanger_$6187", - "typeString": "contract ITokenExchanger" + "typeIdentifier": "t_address", + "typeString": "address" }, { "typeIdentifier": "t_address", @@ -23214,32 +25032,32 @@ ], "expression": { "argumentTypes": null, - "id": 3994, + "id": 765, "name": "factory", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3374, - "src": "6762:7:8", + "referencedDeclaration": 101, + "src": "7262:7:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4453", + "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4451", "typeString": "contract IW12CrowdsaleFactory" } }, - "id": 3995, + "id": 766, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "createCrowdsale", "nodeType": "MemberAccess", - "referencedDeclaration": 4452, - "src": "6762:23:8", + "referencedDeclaration": 4450, + "src": "7262:23: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_$4426_$", + "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_$1204_$", "typeString": "function (address,address,uint256,address,uint256,uint256,uint256,address,address) external returns (contract IW12Crowdsale)" } }, - "id": 4025, + "id": 799, "isConstant": false, "isLValue": false, "isPure": false, @@ -23247,19 +25065,19 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6762:411:8", + "src": "7262:422:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } }, "nodeType": "VariableDeclarationStatement", - "src": "6736:437:8" + "src": "7236:448:1" }, { "expression": { "argumentTypes": null, - "id": 4034, + "id": 808, "isConstant": false, "isLValue": false, "isPure": false, @@ -23271,12 +25089,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4028, + "id": 802, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3930, - "src": "7201:12:8", + "referencedDeclaration": 692, + "src": "7712:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -23286,18 +25104,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4029, + "id": 803, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "7215:3:8", + "referencedDeclaration": 10042, + "src": "7726:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 4030, + "id": 804, "isConstant": false, "isLValue": false, "isPure": false, @@ -23305,7 +25123,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7215:10:8", + "src": "7726:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -23323,18 +25141,18 @@ "typeString": "address" } ], - "id": 4027, + "id": 801, "name": "getApprovedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4272, - "src": "7184:16:8", + "referencedDeclaration": 1046, + "src": "7695:16:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$3455_storage_ptr_$", + "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": 4031, + "id": 805, "isConstant": false, "isLValue": false, "isPure": false, @@ -23342,23 +25160,23 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7184:42:8", + "src": "7695:42:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken storage pointer" } }, - "id": 4032, + "id": 806, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "crowdsaleAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 3448, - "src": "7184:59:8", + "referencedDeclaration": 175, + "src": "7695:59:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } }, @@ -23366,26 +25184,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 4033, + "id": 807, "name": "crowdsale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3993, - "src": "7246:9:8", + "referencedDeclaration": 764, + "src": "7757:9:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } }, - "src": "7184:71:8", + "src": "7695:71:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } }, - "id": 4035, + "id": 809, "nodeType": "ExpressionStatement", - "src": "7184:71:8" + "src": "7695:71:1" }, { "expression": { @@ -23393,14 +25211,14 @@ "arguments": [ { "argumentTypes": null, - "id": 4039, + "id": 813, "name": "crowdsale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3993, - "src": "7290:9:8", + "referencedDeclaration": 764, + "src": "7801:9:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } } @@ -23408,38 +25226,38 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } ], "expression": { "argumentTypes": null, - "id": 4036, + "id": 810, "name": "wtoken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3986, - "src": "7265:6:8", + "referencedDeclaration": 757, + "src": "7776:6:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, - "id": 4038, + "id": 812, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "addTrustedAccount", "nodeType": "MemberAccess", - "referencedDeclaration": 5898, - "src": "7265:24:8", + "referencedDeclaration": 8459, + "src": "7776:24:1", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", "typeString": "function (address) external" } }, - "id": 4040, + "id": 814, "isConstant": false, "isLValue": false, "isPure": false, @@ -23447,15 +25265,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7265:35:8", + "src": "7776:35:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4041, + "id": 815, "nodeType": "ExpressionStatement", - "src": "7265:35:8" + "src": "7776:35:1" }, { "condition": { @@ -23464,7 +25282,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4049, + "id": 823, "isConstant": false, "isLValue": false, "isPure": false, @@ -23476,12 +25294,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4043, + "id": 817, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3930, - "src": "7332:12:8", + "referencedDeclaration": 692, + "src": "7843:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -23491,18 +25309,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4044, + "id": 818, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "7346:3:8", + "referencedDeclaration": 10042, + "src": "7857:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 4045, + "id": 819, "isConstant": false, "isLValue": false, "isPure": false, @@ -23510,7 +25328,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7346:10:8", + "src": "7857:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -23528,18 +25346,18 @@ "typeString": "address" } ], - "id": 4042, + "id": 816, "name": "getApprovedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4272, - "src": "7315:16:8", + "referencedDeclaration": 1046, + "src": "7826:16:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$3455_storage_ptr_$", + "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": 4046, + "id": 820, "isConstant": false, "isLValue": false, "isPure": false, @@ -23547,21 +25365,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7315:42:8", + "src": "7826:42:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken storage pointer" } }, - "id": 4047, + "id": 821, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "WTokenSaleFeePercent", "nodeType": "MemberAccess", - "referencedDeclaration": 3444, - "src": "7315:63:8", + "referencedDeclaration": 171, + "src": "7826:63:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -23572,14 +25390,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 4048, + "id": 822, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7381:1:8", + "src": "7892:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -23587,20 +25405,20 @@ }, "value": "0" }, - "src": "7315:67:8", + "src": "7826:67:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 4076, + "id": 850, "nodeType": "IfStatement", - "src": "7311:376:8", + "src": "7822:376:1", "trueBody": { - "id": 4075, + "id": 849, "nodeType": "Block", - "src": "7384:303:8", + "src": "7895:303:1", "statements": [ { "expression": { @@ -23611,12 +25429,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4054, + "id": 828, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3930, - "src": "7439:12:8", + "referencedDeclaration": 692, + "src": "7950:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -23630,18 +25448,18 @@ "typeString": "address" } ], - "id": 4053, + "id": 827, "name": "ERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7017, - "src": "7433:5:8", + "referencedDeclaration": 9765, + "src": "7944:5:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$7017_$", + "typeIdentifier": "t_type$_t_contract$_ERC20_$9765_$", "typeString": "type(contract ERC20)" } }, - "id": 4055, + "id": 829, "isConstant": false, "isLValue": false, "isPure": false, @@ -23649,9 +25467,9 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7433:19:8", + "src": "7944:19:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" } }, @@ -23660,14 +25478,14 @@ "arguments": [ { "argumentTypes": null, - "id": 4057, + "id": 831, "name": "crowdsale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3993, - "src": "7478:9:8", + "referencedDeclaration": 764, + "src": "7989:9:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } } @@ -23675,24 +25493,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } ], - "id": 4056, + "id": 830, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7470:7:8", + "src": "7981:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 4058, + "id": 832, "isConstant": false, "isLValue": false, "isPure": false, @@ -23700,7 +25518,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7470:18:8", + "src": "7981:18:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -23716,12 +25534,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4067, + "id": 841, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3930, - "src": "7615:12:8", + "referencedDeclaration": 692, + "src": "8126:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -23731,18 +25549,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4068, + "id": 842, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "7629:3:8", + "referencedDeclaration": 10042, + "src": "8140:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 4069, + "id": 843, "isConstant": false, "isLValue": false, "isPure": false, @@ -23750,7 +25568,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7629:10:8", + "src": "8140:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -23768,18 +25586,18 @@ "typeString": "address" } ], - "id": 4066, + "id": 840, "name": "getApprovedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4272, - "src": "7598:16:8", + "referencedDeclaration": 1046, + "src": "8109:16:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$3455_storage_ptr_$", + "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": 4070, + "id": 844, "isConstant": false, "isLValue": false, "isPure": false, @@ -23787,21 +25605,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7598:42:8", + "src": "8109:42:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken storage pointer" } }, - "id": 4071, + "id": 845, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "WTokenSaleFeePercent", "nodeType": "MemberAccess", - "referencedDeclaration": 3444, - "src": "7598:63:8", + "referencedDeclaration": 171, + "src": "8109:63:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -23822,12 +25640,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4060, + "id": 834, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3930, - "src": "7523:12:8", + "referencedDeclaration": 692, + "src": "8034:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -23837,18 +25655,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4061, + "id": 835, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "7537:3:8", + "referencedDeclaration": 10042, + "src": "8048:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 4062, + "id": 836, "isConstant": false, "isLValue": false, "isPure": false, @@ -23856,7 +25674,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7537:10:8", + "src": "8048:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -23874,18 +25692,18 @@ "typeString": "address" } ], - "id": 4059, + "id": 833, "name": "getApprovedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4272, - "src": "7506:16:8", + "referencedDeclaration": 1046, + "src": "8017:16:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$3455_storage_ptr_$", + "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": 4063, + "id": 837, "isConstant": false, "isLValue": false, "isPure": false, @@ -23893,41 +25711,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7506:42:8", + "src": "8017:42:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken storage pointer" } }, - "id": 4064, + "id": 838, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "tokensForSaleAmount", "nodeType": "MemberAccess", - "referencedDeclaration": 3450, - "src": "7506:62:8", + "referencedDeclaration": 177, + "src": "8017:62:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 4065, + "id": 839, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "percent", "nodeType": "MemberAccess", - "referencedDeclaration": 4568, - "src": "7506:91:8", + "referencedDeclaration": 5022, + "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": 4072, + "id": 846, "isConstant": false, "isLValue": false, "isPure": false, @@ -23935,7 +25753,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7506:156:8", + "src": "8017:156:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -23945,7 +25763,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ERC20_$7017", + "typeIdentifier": "t_contract$_ERC20_$9765", "typeString": "contract ERC20" }, { @@ -23959,32 +25777,32 @@ ], "expression": { "argumentTypes": null, - "id": 4050, + "id": 824, "name": "exchanger", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3372, - "src": "7398:9:8", + "referencedDeclaration": 99, + "src": "7909:9:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$6187", + "typeIdentifier": "t_contract$_ITokenExchanger_$8748", "typeString": "contract ITokenExchanger" } }, - "id": 4052, + "id": 826, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "approve", "nodeType": "MemberAccess", - "referencedDeclaration": 6170, - "src": "7398:17:8", + "referencedDeclaration": 8731, + "src": "7909:17:1", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_contract$_ERC20_$7017_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeIdentifier": "t_function_external_nonpayable$_t_contract$_ERC20_$9765_$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (contract ERC20,address,uint256) external returns (bool)" } }, - "id": 4073, + "id": 847, "isConstant": false, "isLValue": false, "isPure": false, @@ -23992,15 +25810,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7398:278:8", + "src": "7909:278:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 4074, + "id": 848, "nodeType": "ExpressionStatement", - "src": "7398:278:8" + "src": "7909:278:1" } ] } @@ -24011,12 +25829,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4078, + "id": 852, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3930, - "src": "7718:12:8", + "referencedDeclaration": 692, + "src": "8229:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -24024,12 +25842,12 @@ }, { "argumentTypes": null, - "id": 4079, + "id": 853, "name": "amountForSale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3932, - "src": "7732:13:8", + "referencedDeclaration": 694, + "src": "8243:13:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -24047,18 +25865,18 @@ "typeString": "uint256" } ], - "id": 4077, + "id": 851, "name": "addTokensToCrowdsale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4217, - "src": "7697:20:8", + "referencedDeclaration": 991, + "src": "8208:20:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 4080, + "id": 854, "isConstant": false, "isLValue": false, "isPure": false, @@ -24066,15 +25884,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7697:49:8", + "src": "8208:49:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4081, + "id": 855, "nodeType": "ExpressionStatement", - "src": "7697:49:8" + "src": "8208:49:1" }, { "eventCall": { @@ -24082,12 +25900,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4083, + "id": 857, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3930, - "src": "7783:12:8", + "referencedDeclaration": 692, + "src": "8294:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -24097,18 +25915,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4084, + "id": 858, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "7797:3:8", + "referencedDeclaration": 10042, + "src": "8308:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 4085, + "id": 859, "isConstant": false, "isLValue": false, "isPure": false, @@ -24116,7 +25934,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7797:10:8", + "src": "8308:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -24124,12 +25942,12 @@ }, { "argumentTypes": null, - "id": 4086, + "id": 860, "name": "amountForSale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3932, - "src": "7809:13:8", + "referencedDeclaration": 694, + "src": "8320:13:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -24151,18 +25969,18 @@ "typeString": "uint256" } ], - "id": 4082, + "id": 856, "name": "CrowdsaleInitialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3420, - "src": "7762:20:8", + "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": 4087, + "id": 861, "isConstant": false, "isLValue": false, "isPure": false, @@ -24170,57 +25988,57 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7762:61:8", + "src": "8273:61:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4088, + "id": 862, "nodeType": "EmitStatement", - "src": "7757:66:8" + "src": "8268:66:1" } ] }, "documentation": null, - "id": 4090, + "id": 864, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 3937, + "id": 699, "modifierName": { "argumentTypes": null, - "id": 3936, + "id": 698, "name": "nonReentrant", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6689, - "src": "6291:12:8", + "referencedDeclaration": 9330, + "src": "6743:12:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "6291:12:8" + "src": "6743:12:1" } ], "name": "initCrowdsale", "nodeType": "FunctionDefinition", "parameters": { - "id": 3935, + "id": 697, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3930, + "id": 692, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 4090, - "src": "6228:20:8", + "scope": 864, + "src": "6680:20:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24228,10 +26046,10 @@ "typeString": "address" }, "typeName": { - "id": 3929, + "id": 691, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6228:7:8", + "src": "6680:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -24242,11 +26060,11 @@ }, { "constant": false, - "id": 3932, + "id": 694, "name": "amountForSale", "nodeType": "VariableDeclaration", - "scope": 4090, - "src": "6250:18:8", + "scope": 864, + "src": "6702:18:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24254,10 +26072,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3931, + "id": 693, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6250:4:8", + "src": "6702:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -24268,11 +26086,11 @@ }, { "constant": false, - "id": 3934, + "id": 696, "name": "price", "nodeType": "VariableDeclaration", - "scope": 4090, - "src": "6270:10:8", + "scope": 864, + "src": "6722:10:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24280,10 +26098,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3933, + "id": 695, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6270:4:8", + "src": "6722:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -24293,26 +26111,26 @@ "visibility": "internal" } ], - "src": "6227:54:8" + "src": "6679:54:1" }, "payable": false, "returnParameters": { - "id": 3938, + "id": 700, "nodeType": "ParameterList", "parameters": [], - "src": "6304:0:8" + "src": "6756:0:1" }, - "scope": 4273, - "src": "6205:1625:8", + "scope": 1058, + "src": "6657:1684:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" }, { "body": { - "id": 4216, + "id": 990, "nodeType": "Block", - "src": "7915:973:8", + "src": "8426:973:1", "statements": [ { "expression": { @@ -24324,19 +26142,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4100, + "id": 874, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 4098, + "id": 872, "name": "amountForSale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4094, - "src": "7933:13:8", + "referencedDeclaration": 868, + "src": "8444:13:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -24347,14 +26165,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 4099, + "id": 873, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7949:1:8", + "src": "8460:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -24362,7 +26180,7 @@ }, "value": "0" }, - "src": "7933:17:8", + "src": "8444:17:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -24376,21 +26194,21 @@ "typeString": "bool" } ], - "id": 4097, + "id": 871, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "7925:7:8", + "referencedDeclaration": 10045, + "src": "8436:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 4101, + "id": 875, "isConstant": false, "isLValue": false, "isPure": false, @@ -24398,15 +26216,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7925:26:8", + "src": "8436:26:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4102, + "id": 876, "nodeType": "ExpressionStatement", - "src": "7925:26:8" + "src": "8436:26:1" }, { "expression": { @@ -24418,19 +26236,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 4108, + "id": 882, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 4104, + "id": 878, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4092, - "src": "7969:12:8", + "referencedDeclaration": 866, + "src": "8480:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -24444,14 +26262,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 4106, + "id": 880, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7993:1:8", + "src": "8504:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -24467,20 +26285,20 @@ "typeString": "int_const 0" } ], - "id": 4105, + "id": 879, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7985:7:8", + "src": "8496:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 4107, + "id": 881, "isConstant": false, "isLValue": false, "isPure": true, @@ -24488,13 +26306,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7985:10:8", + "src": "8496:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "7969:26:8", + "src": "8480:26:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -24508,21 +26326,21 @@ "typeString": "bool" } ], - "id": 4103, + "id": 877, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "7961:7:8", + "referencedDeclaration": 10045, + "src": "8472:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 4109, + "id": 883, "isConstant": false, "isLValue": false, "isPure": false, @@ -24530,15 +26348,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7961:35:8", + "src": "8472:35:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4110, + "id": 884, "nodeType": "ExpressionStatement", - "src": "7961:35:8" + "src": "8472:35:1" }, { "expression": { @@ -24550,7 +26368,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 4119, + "id": 893, "isConstant": false, "isLValue": false, "isPure": false, @@ -24560,12 +26378,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4114, + "id": 888, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4092, - "src": "8041:12:8", + "referencedDeclaration": 866, + "src": "8552:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -24581,32 +26399,32 @@ ], "expression": { "argumentTypes": null, - "id": 4112, + "id": 886, "name": "exchanger", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3372, - "src": "8014:9:8", + "referencedDeclaration": 99, + "src": "8525:9:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$6187", + "typeIdentifier": "t_contract$_ITokenExchanger_$8748", "typeString": "contract ITokenExchanger" } }, - "id": 4113, + "id": 887, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getWTokenByToken", "nodeType": "MemberAccess", - "referencedDeclaration": 6214, - "src": "8014:26:8", + "referencedDeclaration": 8775, + "src": "8525:26:1", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_contract$_WToken_$5925_$", + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_contract$_WToken_$8486_$", "typeString": "function (address) view external returns (contract WToken)" } }, - "id": 4115, + "id": 889, "isConstant": false, "isLValue": false, "isPure": false, @@ -24614,9 +26432,9 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8014:40:8", + "src": "8525:40:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, @@ -24628,14 +26446,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 4117, + "id": 891, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8066:1:8", + "src": "8577:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -24651,20 +26469,20 @@ "typeString": "int_const 0" } ], - "id": 4116, + "id": 890, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8058:7:8", + "src": "8569:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 4118, + "id": 892, "isConstant": false, "isLValue": false, "isPure": true, @@ -24672,13 +26490,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8058:10:8", + "src": "8569:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "8014:54:8", + "src": "8525:54:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -24692,21 +26510,21 @@ "typeString": "bool" } ], - "id": 4111, + "id": 885, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "8006:7:8", + "referencedDeclaration": 10045, + "src": "8517:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 4120, + "id": 894, "isConstant": false, "isLValue": false, "isPure": false, @@ -24714,15 +26532,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8006:63:8", + "src": "8517:63:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4121, + "id": 895, "nodeType": "ExpressionStatement", - "src": "8006:63:8" + "src": "8517:63:1" }, { "expression": { @@ -24734,7 +26552,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 4132, + "id": 906, "isConstant": false, "isLValue": false, "isPure": false, @@ -24746,12 +26564,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4124, + "id": 898, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4092, - "src": "8104:12:8", + "referencedDeclaration": 866, + "src": "8615:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -24761,18 +26579,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4125, + "id": 899, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "8118:3:8", + "referencedDeclaration": 10042, + "src": "8629:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 4126, + "id": 900, "isConstant": false, "isLValue": false, "isPure": false, @@ -24780,7 +26598,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8118:10:8", + "src": "8629:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -24798,18 +26616,18 @@ "typeString": "address" } ], - "id": 4123, + "id": 897, "name": "getApprovedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4272, - "src": "8087:16:8", + "referencedDeclaration": 1046, + "src": "8598:16:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$3455_storage_ptr_$", + "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": 4127, + "id": 901, "isConstant": false, "isLValue": false, "isPure": false, @@ -24817,23 +26635,23 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8087:42:8", + "src": "8598:42:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken storage pointer" } }, - "id": 4128, + "id": 902, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "crowdsaleAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 3448, - "src": "8087:59:8", + "referencedDeclaration": 175, + "src": "8598:59:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } }, @@ -24845,14 +26663,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 4130, + "id": 904, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8158:1:8", + "src": "8669:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -24868,20 +26686,20 @@ "typeString": "int_const 0" } ], - "id": 4129, + "id": 903, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8150:7:8", + "src": "8661:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 4131, + "id": 905, "isConstant": false, "isLValue": false, "isPure": true, @@ -24889,13 +26707,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8150:10:8", + "src": "8661:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "8087:73:8", + "src": "8598:73:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -24909,21 +26727,21 @@ "typeString": "bool" } ], - "id": 4122, + "id": 896, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "8079:7:8", + "referencedDeclaration": 10045, + "src": "8590:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 4133, + "id": 907, "isConstant": false, "isLValue": false, "isPure": false, @@ -24931,15 +26749,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8079:82:8", + "src": "8590:82:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4134, + "id": 908, "nodeType": "ExpressionStatement", - "src": "8079:82:8" + "src": "8590:82:1" }, { "expression": { @@ -24951,7 +26769,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 4146, + "id": 920, "isConstant": false, "isLValue": false, "isPure": false, @@ -24965,12 +26783,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4137, + "id": 911, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4092, - "src": "8196:12:8", + "referencedDeclaration": 866, + "src": "8707:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -24980,18 +26798,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4138, + "id": 912, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "8210:3:8", + "referencedDeclaration": 10042, + "src": "8721:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 4139, + "id": 913, "isConstant": false, "isLValue": false, "isPure": false, @@ -24999,7 +26817,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8210:10:8", + "src": "8721:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -25017,18 +26835,18 @@ "typeString": "address" } ], - "id": 4136, + "id": 910, "name": "getApprovedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4272, - "src": "8179:16:8", + "referencedDeclaration": 1046, + "src": "8690:16:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$3455_storage_ptr_$", + "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": 4140, + "id": 914, "isConstant": false, "isLValue": false, "isPure": false, @@ -25036,43 +26854,43 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8179:42:8", + "src": "8690:42:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken storage pointer" } }, - "id": 4141, + "id": 915, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "approvedOwners", "nodeType": "MemberAccess", - "referencedDeclaration": 3438, - "src": "8179:57:8", + "referencedDeclaration": 165, + "src": "8690:57:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 4144, + "id": 918, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4142, + "id": 916, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "8237:3:8", + "referencedDeclaration": 10042, + "src": "8748:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 4143, + "id": 917, "isConstant": false, "isLValue": false, "isPure": false, @@ -25080,7 +26898,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8237:10:8", + "src": "8748:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -25091,7 +26909,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8179:69:8", + "src": "8690:69:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -25102,14 +26920,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "74727565", - "id": 4145, + "id": 919, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "8252:4:8", + "src": "8763:4:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -25117,7 +26935,7 @@ }, "value": "true" }, - "src": "8179:77:8", + "src": "8690:77:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -25131,21 +26949,21 @@ "typeString": "bool" } ], - "id": 4135, + "id": 909, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "8171:7:8", + "referencedDeclaration": 10045, + "src": "8682:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 4147, + "id": 921, "isConstant": false, "isLValue": false, "isPure": false, @@ -25153,15 +26971,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8171:86:8", + "src": "8682:86:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4148, + "id": 922, "nodeType": "ExpressionStatement", - "src": "8171:86:8" + "src": "8682:86:1" }, { "expression": { @@ -25173,7 +26991,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4165, + "id": 939, "isConstant": false, "isLValue": false, "isPure": false, @@ -25185,12 +27003,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4151, + "id": 925, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4092, - "src": "8292:12:8", + "referencedDeclaration": 866, + "src": "8803:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -25200,18 +27018,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4152, + "id": 926, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "8306:3:8", + "referencedDeclaration": 10042, + "src": "8817:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 4153, + "id": 927, "isConstant": false, "isLValue": false, "isPure": false, @@ -25219,7 +27037,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8306:10:8", + "src": "8817:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -25237,18 +27055,18 @@ "typeString": "address" } ], - "id": 4150, + "id": 924, "name": "getApprovedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4272, - "src": "8275:16:8", + "referencedDeclaration": 1046, + "src": "8786:16:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$3455_storage_ptr_$", + "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": 4154, + "id": 928, "isConstant": false, "isLValue": false, "isPure": false, @@ -25256,21 +27074,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8275:42:8", + "src": "8786:42:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken storage pointer" } }, - "id": 4155, + "id": 929, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "tokensForSaleAmount", "nodeType": "MemberAccess", - "referencedDeclaration": 3450, - "src": "8275:62:8", + "referencedDeclaration": 177, + "src": "8786:62:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -25283,12 +27101,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4163, + "id": 937, "name": "amountForSale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4094, - "src": "8408:13:8", + "referencedDeclaration": 868, + "src": "8919:13:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -25309,12 +27127,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4157, + "id": 931, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4092, - "src": "8358:12:8", + "referencedDeclaration": 866, + "src": "8869:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -25324,18 +27142,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4158, + "id": 932, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "8372:3:8", + "referencedDeclaration": 10042, + "src": "8883:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 4159, + "id": 933, "isConstant": false, "isLValue": false, "isPure": false, @@ -25343,7 +27161,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8372:10:8", + "src": "8883:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -25361,18 +27179,18 @@ "typeString": "address" } ], - "id": 4156, + "id": 930, "name": "getApprovedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4272, - "src": "8341:16:8", + "referencedDeclaration": 1046, + "src": "8852:16:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$3455_storage_ptr_$", + "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": 4160, + "id": 934, "isConstant": false, "isLValue": false, "isPure": false, @@ -25380,41 +27198,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8341:42:8", + "src": "8852:42:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken storage pointer" } }, - "id": 4161, + "id": 935, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "wTokensIssuedAmount", "nodeType": "MemberAccess", - "referencedDeclaration": 3452, - "src": "8341:62:8", + "referencedDeclaration": 179, + "src": "8852:62:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 4162, + "id": 936, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 6853, - "src": "8341:66:8", + "referencedDeclaration": 9601, + "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": 4164, + "id": 938, "isConstant": false, "isLValue": false, "isPure": false, @@ -25422,13 +27240,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8341:81:8", + "src": "8852:81:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "8275:147:8", + "src": "8786:147:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -25442,21 +27260,21 @@ "typeString": "bool" } ], - "id": 4149, + "id": 923, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "8267:7:8", + "referencedDeclaration": 10045, + "src": "8778:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 4166, + "id": 940, "isConstant": false, "isLValue": false, "isPure": false, @@ -25464,43 +27282,43 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8267:156:8", + "src": "8778:156:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4167, + "id": 941, "nodeType": "ExpressionStatement", - "src": "8267:156:8" + "src": "8778:156:1" }, { "assignments": [ - 4169 + 943 ], "declarations": [ { "constant": false, - "id": 4169, + "id": 943, "name": "token", "nodeType": "VariableDeclaration", - "scope": 4217, - "src": "8434:12:8", + "scope": 991, + "src": "8945:12:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" }, "typeName": { "contractScope": null, - "id": 4168, + "id": 942, "name": "WToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5925, - "src": "8434:6:8", + "referencedDeclaration": 8486, + "src": "8945:6:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, @@ -25508,18 +27326,18 @@ "visibility": "internal" } ], - "id": 4174, + "id": 948, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 4172, + "id": 946, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4092, - "src": "8476:12:8", + "referencedDeclaration": 866, + "src": "8987:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -25535,32 +27353,32 @@ ], "expression": { "argumentTypes": null, - "id": 4170, + "id": 944, "name": "exchanger", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3372, - "src": "8449:9:8", + "referencedDeclaration": 99, + "src": "8960:9:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$6187", + "typeIdentifier": "t_contract$_ITokenExchanger_$8748", "typeString": "contract ITokenExchanger" } }, - "id": 4171, + "id": 945, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getWTokenByToken", "nodeType": "MemberAccess", - "referencedDeclaration": 6214, - "src": "8449:26:8", + "referencedDeclaration": 8775, + "src": "8960:26:1", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_contract$_WToken_$5925_$", + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_contract$_WToken_$8486_$", "typeString": "function (address) view external returns (contract WToken)" } }, - "id": 4173, + "id": 947, "isConstant": false, "isLValue": false, "isPure": false, @@ -25568,42 +27386,42 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8449:40:8", + "src": "8960:40:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, "nodeType": "VariableDeclarationStatement", - "src": "8434:55:8" + "src": "8945:55:1" }, { "assignments": [ - 4176 + 950 ], "declarations": [ { "constant": false, - "id": 4176, + "id": 950, "name": "crowdsale", "nodeType": "VariableDeclaration", - "scope": 4217, - "src": "8499:23:8", + "scope": 991, + "src": "9010:23:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" }, "typeName": { "contractScope": null, - "id": 4175, + "id": 949, "name": "IW12Crowdsale", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4426, - "src": "8499:13:8", + "referencedDeclaration": 1204, + "src": "9010:13:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } }, @@ -25611,7 +27429,7 @@ "visibility": "internal" } ], - "id": 4183, + "id": 957, "initialValue": { "argumentTypes": null, "expression": { @@ -25619,12 +27437,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4178, + "id": 952, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4092, - "src": "8542:12:8", + "referencedDeclaration": 866, + "src": "9053:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -25634,18 +27452,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4179, + "id": 953, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "8556:3:8", + "referencedDeclaration": 10042, + "src": "9067:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 4180, + "id": 954, "isConstant": false, "isLValue": false, "isPure": false, @@ -25653,7 +27471,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8556:10:8", + "src": "9067:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -25671,18 +27489,18 @@ "typeString": "address" } ], - "id": 4177, + "id": 951, "name": "getApprovedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4272, - "src": "8525:16:8", + "referencedDeclaration": 1046, + "src": "9036:16:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$3455_storage_ptr_$", + "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": 4181, + "id": 955, "isConstant": false, "isLValue": false, "isPure": false, @@ -25690,33 +27508,33 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8525:42:8", + "src": "9036:42:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken storage pointer" } }, - "id": 4182, + "id": 956, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "crowdsaleAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 3448, - "src": "8525:59:8", + "referencedDeclaration": 175, + "src": "9036:59:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } }, "nodeType": "VariableDeclarationStatement", - "src": "8499:85:8" + "src": "9010:85:1" }, { "expression": { "argumentTypes": null, - "id": 4199, + "id": 973, "isConstant": false, "isLValue": false, "isPure": false, @@ -25728,12 +27546,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4185, + "id": 959, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4092, - "src": "8612:12:8", + "referencedDeclaration": 866, + "src": "9123:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -25743,18 +27561,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4186, + "id": 960, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "8626:3:8", + "referencedDeclaration": 10042, + "src": "9137:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 4187, + "id": 961, "isConstant": false, "isLValue": false, "isPure": false, @@ -25762,7 +27580,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8626:10:8", + "src": "9137:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -25780,18 +27598,18 @@ "typeString": "address" } ], - "id": 4184, + "id": 958, "name": "getApprovedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4272, - "src": "8595:16:8", + "referencedDeclaration": 1046, + "src": "9106:16:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$3455_storage_ptr_$", + "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": 4188, + "id": 962, "isConstant": false, "isLValue": false, "isPure": false, @@ -25799,21 +27617,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8595:42:8", + "src": "9106:42:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken storage pointer" } }, - "id": 4189, + "id": 963, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "wTokensIssuedAmount", "nodeType": "MemberAccess", - "referencedDeclaration": 3452, - "src": "8595:62:8", + "referencedDeclaration": 179, + "src": "9106:62:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -25826,12 +27644,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4197, + "id": 971, "name": "amountForSale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4094, - "src": "8740:13:8", + "referencedDeclaration": 868, + "src": "9251:13:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -25852,12 +27670,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4191, + "id": 965, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4092, - "src": "8677:12:8", + "referencedDeclaration": 866, + "src": "9188:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -25867,18 +27685,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4192, + "id": 966, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "8691:3:8", + "referencedDeclaration": 10042, + "src": "9202:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 4193, + "id": 967, "isConstant": false, "isLValue": false, "isPure": false, @@ -25886,7 +27704,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8691:10:8", + "src": "9202:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -25904,18 +27722,18 @@ "typeString": "address" } ], - "id": 4190, + "id": 964, "name": "getApprovedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4272, - "src": "8660:16:8", + "referencedDeclaration": 1046, + "src": "9171:16:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$3455_storage_ptr_$", + "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": 4194, + "id": 968, "isConstant": false, "isLValue": false, "isPure": false, @@ -25923,41 +27741,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8660:42:8", + "src": "9171:42:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken storage pointer" } }, - "id": 4195, + "id": 969, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "wTokensIssuedAmount", "nodeType": "MemberAccess", - "referencedDeclaration": 3452, - "src": "8660:75:8", + "referencedDeclaration": 179, + "src": "9171:75:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 4196, + "id": 970, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 6853, - "src": "8660:79:8", + "referencedDeclaration": 9601, + "src": "9171:79: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": 4198, + "id": 972, "isConstant": false, "isLValue": false, "isPure": false, @@ -25965,21 +27783,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8660:94:8", + "src": "9171:94:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "8595:159:8", + "src": "9106:159:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 4200, + "id": 974, "nodeType": "ExpressionStatement", - "src": "8595:159:8" + "src": "9106:159:1" }, { "expression": { @@ -25987,25 +27805,25 @@ "arguments": [ { "argumentTypes": null, - "id": 4204, + "id": 978, "name": "crowdsale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4176, - "src": "8776:9:8", + "referencedDeclaration": 950, + "src": "9287:9:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } }, { "argumentTypes": null, - "id": 4205, + "id": 979, "name": "amountForSale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4094, - "src": "8787:13:8", + "referencedDeclaration": 868, + "src": "9298:13:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -26014,14 +27832,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 4206, + "id": 980, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8802:1:8", + "src": "9313:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -26033,7 +27851,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" }, { @@ -26047,32 +27865,32 @@ ], "expression": { "argumentTypes": null, - "id": 4201, + "id": 975, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4169, - "src": "8765:5:8", + "referencedDeclaration": 943, + "src": "9276:5:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, - "id": 4203, + "id": 977, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mint", "nodeType": "MemberAccess", - "referencedDeclaration": 5587, - "src": "8765:10:8", + "referencedDeclaration": 8148, + "src": "9276:10:1", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint32_$returns$_t_bool_$", "typeString": "function (address,uint256,uint32) external returns (bool)" } }, - "id": 4207, + "id": 981, "isConstant": false, "isLValue": false, "isPure": false, @@ -26080,15 +27898,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8765:39:8", + "src": "9276:39:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 4208, + "id": 982, "nodeType": "ExpressionStatement", - "src": "8765:39:8" + "src": "9276:39:1" }, { "eventCall": { @@ -26096,12 +27914,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4210, + "id": 984, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4092, - "src": "8841:12:8", + "referencedDeclaration": 866, + "src": "9352:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -26111,18 +27929,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 4211, + "id": 985, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "8855:3:8", + "referencedDeclaration": 10042, + "src": "9366:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 4212, + "id": 986, "isConstant": false, "isLValue": false, "isPure": false, @@ -26130,7 +27948,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8855:10:8", + "src": "9366:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -26138,12 +27956,12 @@ }, { "argumentTypes": null, - "id": 4213, + "id": 987, "name": "amountForSale", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4094, - "src": "8867:13:8", + "referencedDeclaration": 868, + "src": "9378:13:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -26165,18 +27983,18 @@ "typeString": "uint256" } ], - "id": 4209, + "id": 983, "name": "CrowdsaleTokenMinted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3428, - "src": "8820:20:8", + "referencedDeclaration": 155, + "src": "9331:20:1", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 4214, + "id": 988, "isConstant": false, "isLValue": false, "isPure": false, @@ -26184,20 +28002,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8820:61:8", + "src": "9331:61:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4215, + "id": 989, "nodeType": "EmitStatement", - "src": "8815:66:8" + "src": "9326:66:1" } ] }, "documentation": null, - "id": 4217, + "id": 991, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -26205,16 +28023,16 @@ "name": "addTokensToCrowdsale", "nodeType": "FunctionDefinition", "parameters": { - "id": 4095, + "id": 869, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4092, + "id": 866, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 4217, - "src": "7866:20:8", + "scope": 991, + "src": "8377:20:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26222,10 +28040,10 @@ "typeString": "address" }, "typeName": { - "id": 4091, + "id": 865, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7866:7:8", + "src": "8377:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -26236,11 +28054,11 @@ }, { "constant": false, - "id": 4094, + "id": 868, "name": "amountForSale", "nodeType": "VariableDeclaration", - "scope": 4217, - "src": "7888:18:8", + "scope": 991, + "src": "8399:18:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26248,10 +28066,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4093, + "id": 867, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "7888:4:8", + "src": "8399:4:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -26261,26 +28079,26 @@ "visibility": "internal" } ], - "src": "7865:42:8" + "src": "8376:42:1" }, "payable": false, "returnParameters": { - "id": 4096, + "id": 870, "nodeType": "ParameterList", "parameters": [], - "src": "7915:0:8" + "src": "8426:0:1" }, - "scope": 4273, - "src": "7836:1052:8", + "scope": 1058, + "src": "8347:1052:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 4232, + "id": 1006, "nodeType": "Block", - "src": "8997:85:8", + "src": "9508:85:1", "statements": [ { "expression": { @@ -26290,12 +28108,12 @@ "arguments": [ { "argumentTypes": null, - "id": 4227, + "id": 1001, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4219, - "src": "9031:12:8", + "referencedDeclaration": 993, + "src": "9542:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -26303,12 +28121,12 @@ }, { "argumentTypes": null, - "id": 4228, + "id": 1002, "name": "ownerAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4221, - "src": "9045:12:8", + "referencedDeclaration": 995, + "src": "9556:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -26326,18 +28144,18 @@ "typeString": "address" } ], - "id": 4226, + "id": 1000, "name": "getApprovedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4272, - "src": "9014:16:8", + "referencedDeclaration": 1046, + "src": "9525:16:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_struct$_ListedToken_$3455_storage_ptr_$", + "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": 4229, + "id": 1003, "isConstant": false, "isLValue": false, "isPure": false, @@ -26345,35 +28163,35 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9014:44:8", + "src": "9525:44:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken storage pointer" } }, - "id": 4230, + "id": 1004, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "crowdsaleAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 3448, - "src": "9014:61:8", + "referencedDeclaration": 175, + "src": "9525:61:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12Crowdsale_$4426", + "typeIdentifier": "t_contract$_IW12Crowdsale_$1204", "typeString": "contract IW12Crowdsale" } }, - "functionReturnParameters": 4225, - "id": 4231, + "functionReturnParameters": 999, + "id": 1005, "nodeType": "Return", - "src": "9007:68:8" + "src": "9518:68:1" } ] }, "documentation": null, - "id": 4233, + "id": 1007, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -26381,16 +28199,16 @@ "name": "getTokenCrowdsale", "nodeType": "FunctionDefinition", "parameters": { - "id": 4222, + "id": 996, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4219, + "id": 993, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 4233, - "src": "8921:20:8", + "scope": 1007, + "src": "9432:20:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26398,10 +28216,10 @@ "typeString": "address" }, "typeName": { - "id": 4218, + "id": 992, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8921:7:8", + "src": "9432:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -26412,11 +28230,11 @@ }, { "constant": false, - "id": 4221, + "id": 995, "name": "ownerAddress", "nodeType": "VariableDeclaration", - "scope": 4233, - "src": "8943:20:8", + "scope": 1007, + "src": "9454:20:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26424,10 +28242,10 @@ "typeString": "address" }, "typeName": { - "id": 4220, + "id": 994, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8943:7:8", + "src": "9454:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -26437,20 +28255,20 @@ "visibility": "internal" } ], - "src": "8920:44:8" + "src": "9431:44:1" }, "payable": false, "returnParameters": { - "id": 4225, + "id": 999, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4224, + "id": 998, "name": "", "nodeType": "VariableDeclaration", - "scope": 4233, - "src": "8988:7:8", + "scope": 1007, + "src": "9499:7:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26458,10 +28276,10 @@ "typeString": "address" }, "typeName": { - "id": 4223, + "id": 997, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8988:7:8", + "src": "9499:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -26471,45 +28289,45 @@ "visibility": "internal" } ], - "src": "8987:9:8" + "src": "9498:9:1" }, - "scope": 4273, - "src": "8894:188:8", + "scope": 1058, + "src": "9405:188:1", "stateMutability": "view", "superFunction": null, "visibility": "external" }, { "body": { - "id": 4245, + "id": 1019, "nodeType": "Block", - "src": "9159:49:8", + "src": "9670:49:1", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 4241, + "id": 1015, "name": "approvedOwnersList", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3388, - "src": "9176:18:8", + "referencedDeclaration": 117, + "src": "9687:18:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$", "typeString": "mapping(address => address[] storage ref)" } }, - "id": 4243, + "id": 1017, "indexExpression": { "argumentTypes": null, - "id": 4242, + "id": 1016, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4235, - "src": "9195:5:8", + "referencedDeclaration": 1009, + "src": "9706:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -26520,21 +28338,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9176:25:8", + "src": "9687:25:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "functionReturnParameters": 4240, - "id": 4244, + "functionReturnParameters": 1014, + "id": 1018, "nodeType": "Return", - "src": "9169:32:8" + "src": "9680:32:1" } ] }, "documentation": null, - "id": 4246, + "id": 1020, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -26542,16 +28360,16 @@ "name": "getTokenOwners", "nodeType": "FunctionDefinition", "parameters": { - "id": 4236, + "id": 1010, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4235, + "id": 1009, "name": "token", "nodeType": "VariableDeclaration", - "scope": 4246, - "src": "9112:13:8", + "scope": 1020, + "src": "9623:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26559,10 +28377,10 @@ "typeString": "address" }, "typeName": { - "id": 4234, + "id": 1008, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9112:7:8", + "src": "9623:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -26572,20 +28390,20 @@ "visibility": "internal" } ], - "src": "9111:15:8" + "src": "9622:15:1" }, "payable": false, "returnParameters": { - "id": 4240, + "id": 1014, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4239, + "id": 1013, "name": "", "nodeType": "VariableDeclaration", - "scope": 4246, - "src": "9148:9:8", + "scope": 1020, + "src": "9659:9:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26594,19 +28412,19 @@ }, "typeName": { "baseType": { - "id": 4237, + "id": 1011, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9148:7:8", + "src": "9659:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 4238, + "id": 1012, "length": null, "nodeType": "ArrayTypeName", - "src": "9148:9:8", + "src": "9659:9:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -26616,43 +28434,43 @@ "visibility": "internal" } ], - "src": "9147:11:8" + "src": "9658:11:1" }, - "scope": 4273, - "src": "9088:120:8", + "scope": 1058, + "src": "9599:120:1", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 4253, + "id": 1027, "nodeType": "Block", - "src": "9278:33:8", + "src": "9789:33:1", "statements": [ { "expression": { "argumentTypes": null, - "id": 4251, + "id": 1025, "name": "exchanger", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3372, - "src": "9295:9:8", + "referencedDeclaration": 99, + "src": "9806:9:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$6187", + "typeIdentifier": "t_contract$_ITokenExchanger_$8748", "typeString": "contract ITokenExchanger" } }, - "functionReturnParameters": 4250, - "id": 4252, + "functionReturnParameters": 1024, + "id": 1026, "nodeType": "Return", - "src": "9288:16:8" + "src": "9799:16:1" } ] }, "documentation": null, - "id": 4254, + "id": 1028, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -26660,38 +28478,38 @@ "name": "getExchanger", "nodeType": "FunctionDefinition", "parameters": { - "id": 4247, + "id": 1021, "nodeType": "ParameterList", "parameters": [], - "src": "9235:2:8" + "src": "9746:2:1" }, "payable": false, "returnParameters": { - "id": 4250, + "id": 1024, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4249, + "id": 1023, "name": "", "nodeType": "VariableDeclaration", - "scope": 4254, - "src": "9261:15:8", + "scope": 1028, + "src": "9772:15:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$6187", + "typeIdentifier": "t_contract$_ITokenExchanger_$8748", "typeString": "contract ITokenExchanger" }, "typeName": { "contractScope": null, - "id": 4248, + "id": 1022, "name": "ITokenExchanger", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6187, - "src": "9261:15:8", + "referencedDeclaration": 8748, + "src": "9772:15:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$6187", + "typeIdentifier": "t_contract$_ITokenExchanger_$8748", "typeString": "contract ITokenExchanger" } }, @@ -26699,63 +28517,63 @@ "visibility": "internal" } ], - "src": "9260:17:8" + "src": "9771:17:1" }, - "scope": 4273, - "src": "9214:97:8", + "scope": 1058, + "src": "9725:97:1", "stateMutability": "view", "superFunction": null, "visibility": "external" }, { "body": { - "id": 4271, + "id": 1045, "nodeType": "Block", - "src": "9438:87:8", + "src": "9949:87:1", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 4263, + "id": 1037, "name": "approvedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3383, - "src": "9455:14:8", + "referencedDeclaration": 112, + "src": "9966:14:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_ListedToken_$3455_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_ListedToken_$182_storage_$dyn_storage", "typeString": "struct W12Lister.ListedToken storage ref[] storage ref" } }, - "id": 4269, + "id": 1043, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 4264, + "id": 1038, "name": "approvedTokensIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3380, - "src": "9470:19:8", + "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": 4266, + "id": 1040, "indexExpression": { "argumentTypes": null, - "id": 4265, + "id": 1039, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4256, - "src": "9490:12:8", + "referencedDeclaration": 1030, + "src": "10001:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -26766,21 +28584,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9470:33:8", + "src": "9981:33:1", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint16_$", "typeString": "mapping(address => uint16)" } }, - "id": 4268, + "id": 1042, "indexExpression": { "argumentTypes": null, - "id": 4267, + "id": 1041, "name": "ownerAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4258, - "src": "9504:12:8", + "referencedDeclaration": 1032, + "src": "10015:12:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -26791,7 +28609,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9470:47:8", + "src": "9981:47:1", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" @@ -26802,21 +28620,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9455:63:8", + "src": "9966:63:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage", + "typeIdentifier": "t_struct$_ListedToken_$182_storage", "typeString": "struct W12Lister.ListedToken storage ref" } }, - "functionReturnParameters": 4262, - "id": 4270, + "functionReturnParameters": 1036, + "id": 1044, "nodeType": "Return", - "src": "9448:70:8" + "src": "9959:70:1" } ] }, "documentation": null, - "id": 4272, + "id": 1046, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -26824,16 +28642,16 @@ "name": "getApprovedToken", "nodeType": "FunctionDefinition", "parameters": { - "id": 4259, + "id": 1033, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4256, + "id": 1030, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 4272, - "src": "9343:20:8", + "scope": 1046, + "src": "9854:20:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26841,10 +28659,10 @@ "typeString": "address" }, "typeName": { - "id": 4255, + "id": 1029, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9343:7:8", + "src": "9854:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -26855,11 +28673,11 @@ }, { "constant": false, - "id": 4258, + "id": 1032, "name": "ownerAddress", "nodeType": "VariableDeclaration", - "scope": 4272, - "src": "9365:20:8", + "scope": 1046, + "src": "9876:20:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26867,10 +28685,10 @@ "typeString": "address" }, "typeName": { - "id": 4257, + "id": 1031, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9365:7:8", + "src": "9876:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -26880,35 +28698,35 @@ "visibility": "internal" } ], - "src": "9342:44:8" + "src": "9853:44:1" }, "payable": false, "returnParameters": { - "id": 4262, + "id": 1036, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4261, + "id": 1035, "name": "result", "nodeType": "VariableDeclaration", - "scope": 4272, - "src": "9410:26:8", + "scope": 1046, + "src": "9921:26:1", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken" }, "typeName": { "contractScope": null, - "id": 4260, + "id": 1034, "name": "ListedToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3455, - "src": "9410:11:8", + "referencedDeclaration": 182, + "src": "9921:11:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_ListedToken_$3455_storage_ptr", + "typeIdentifier": "t_struct$_ListedToken_$182_storage_ptr", "typeString": "struct W12Lister.ListedToken" } }, @@ -26916,26 +28734,166 @@ "visibility": "internal" } ], - "src": "9409:28:8" + "src": "9920:28:1" }, - "scope": 4273, - "src": "9317:208:8", + "scope": 1058, + "src": "9828:208:1", "stateMutability": "view", "superFunction": null, "visibility": "internal" + }, + { + "body": { + "id": 1056, + "nodeType": "Block", + "src": "10096:60:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1053, + "name": "SERVICE_WALLET_ID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 94, + "src": "10131:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "expression": { + "argumentTypes": null, + "id": 1051, + "name": "wallets", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 103, + "src": "10113:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWallets_$9239", + "typeString": "contract IWallets" + } + }, + "id": 1052, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getWallet", + "nodeType": "MemberAccess", + "referencedDeclaration": 9238, + "src": "10113:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint8_$returns$_t_address_$", + "typeString": "function (uint8) view external returns (address)" + } + }, + "id": 1054, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10113:36:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "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": [ + { + "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": 4274, - "src": "471:9056:8" + "scope": 1059, + "src": "576:9582:1" } ], - "src": "0:9528:8" + "src": "0:10159:1" }, "compiler": { "name": "solc", "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, - "networks": {}, + "networks": { + "4": { + "events": {}, + "links": {}, + "address": "0x8adb10b4877052d03d8ac37c6a69ba5c316cee99", + "transactionHash": "0xb330575a6cd8890193ab290c7148ca912f739d818ab8d180f9042639766661b1" + } + }, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-02T11:52:56.781Z" + "updatedAt": "2018-10-22T08:01:07.109Z" } \ No newline at end of file diff --git a/build/contracts/W12ListerStub.json b/build/contracts/W12ListerStub.json index 4730c890..31221aa9 100644 --- a/build/contracts/W12ListerStub.json +++ b/build/contracts/W12ListerStub.json @@ -23,6 +23,38 @@ "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", + "type": "address" + } + ], + "name": "removeAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, { "constant": true, "inputs": [ @@ -82,6 +114,29 @@ "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" + }, { "constant": false, "inputs": [ @@ -225,6 +280,20 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "constant": false, + "inputs": [ + { + "name": "_operator", + "type": "address" + } + ], + "name": "addAdmin", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, { "constant": false, "inputs": [], @@ -337,37 +406,46 @@ "type": "function" }, { - "constant": false, - "inputs": [ + "constant": true, + "inputs": [], + "name": "wallets", + "outputs": [ { - "name": "_newOwner", + "name": "", "type": "address" } ], - "name": "transferOwnership", - "outputs": [], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { - "inputs": [ - { - "name": "version", - "type": "uint256" - }, + "constant": true, + "inputs": [], + "name": "ROLE_ADMIN", + "outputs": [ { - "name": "_factory", - "type": "address" - }, + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ { - "name": "_exchanger", + "name": "_newOwner", "type": "address" } ], + "name": "transferOwnership", + "outputs": [], "payable": false, "stateMutability": "nonpayable", - "type": "constructor" + "type": "function" }, { "anonymous": false, @@ -495,26 +573,60 @@ ], "name": "OwnershipTransferred", "type": "event" + }, + { + "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" } ], - "bytecode": "0x608060405260016002553480156200001657600080fd5b5060405160608062003711833981016040908152815160208301519190920151600083905560018054600160a060020a03191633908117909155839083838215156200006157600080fd5b600160a060020a03821615156200007757600080fd5b600160a060020a03811615156200008d57600080fd5b60038054600160a060020a03808416600160a060020a0319928316179092556008805486841662010000026201000060b060020a031990911617905560048054928516929091169190911790556006805490620000ee9060018301620000fc565b505050505050505062000230565b8154818355818111156200012b57600c0281600c0283600052602060002091820191016200012b919062000130565b505050565b620001c591905b80821115620001c15760006200014e8282620001c8565b6200015e600183016000620001c8565b5060028101805460ff19169055600060048201819055600582018190556006820181905560078201819055600882018054600160a060020a031990811690915560098301829055600a830191909155600b820180549091169055600c0162000137565b5090565b90565b50805460018160011615610100020316600290046000825580601f10620001f0575062000210565b601f01602090049060005260206000209081019062000210919062000213565b50565b620001c591905b80821115620001c157600081556001016200021a565b6134d180620002406000396000f300608060405260043610620000e95763ffffffff60e060020a60003504166309363c998114620000ee5780631dafede0146200011a57806334cf82bf14620002825780633f3466a714620002d95780634b1acf39146200031f5780634d12fca4146200033757806354fd4d50146200034f5780635641f3c3146200037957806368dce9321462000391578063715018a614620003b8578063849072b914620003d05780638da5cb5b14620004465780639cf96e2e146200045e578063a41ffd38146200048d578063c45a015514620004b4578063cca89d7314620004cc578063f2fde38b14620004f6575b600080fd5b348015620000fb57600080fd5b5062000118600160a060020a03600435166024356044356200051a565b005b3480156200012757600080fd5b50620001356004356200093d565b6040518080602001806020018c60ff1660ff1681526020018b81526020018a815260200189815260200188815260200187600160a060020a0316600160a060020a0316815260200186815260200185815260200184600160a060020a0316600160a060020a0316815260200183810383528e818151815260200191508051906020019080838360005b83811015620001d8578181015183820152602001620001be565b50505050905090810190601f168015620002065780820380516001836020036101000a031916815260200191505b5083810382528d5181528d516020918201918f019080838360005b838110156200023b57818101518382015260200162000221565b50505050905090810190601f168015620002695780820380516001836020036101000a031916815260200191505b509d505050505050505050505050505060405180910390f35b3480156200028f57600080fd5b5062000118600160a060020a0360048035821691602480359091169160443580830192908201359160643591820191013560ff6084351660a43560c43560e4356101043562000adf565b348015620002e657600080fd5b5062000303600160a060020a036004358116906024351662000fc3565b60408051600160a060020a039092168252519081900360200190f35b3480156200032c57600080fd5b506200030362000fe7565b3480156200034457600080fd5b506200030362000ff7565b3480156200035c57600080fd5b506200036762001006565b60408051918252519081900360200190f35b3480156200038657600080fd5b50620003036200100c565b3480156200039e57600080fd5b5062000118600160a060020a036004351660243562001021565b348015620003c557600080fd5b5062000118620015d6565b348015620003dd57600080fd5b50620003f4600160a060020a03600435166200162d565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156200043257818101518382015260200162000418565b505050509050019250505060405180910390f35b3480156200045357600080fd5b5062000303620016a5565b3480156200046b57600080fd5b5062000476620016b4565b6040805161ffff9092168252519081900360200190f35b3480156200049a57600080fd5b5062000118600160a060020a0360043516602435620016be565b348015620004c157600080fd5b5062000303620019ac565b348015620004d957600080fd5b5062000476600160a060020a0360043581169060243516620019bb565b3480156200050357600080fd5b5062000118600160a060020a0360043516620019dc565b60008060016002541415156200052f57600080fd5b600280556200053f8533620019ea565b336000908152600391909101602052604090205460ff1615156001146200056557600080fd5b6200058784620005768733620019ea565b600a01549063ffffffff62001a3c16565b620005938633620019ea565b600901541015620005a357600080fd5b6000620005b18633620019ea565b60080154600160a060020a031614620005c957600080fd5b6003546040805160e260020a630547cdcd028152600160a060020a0388811660048301529151919092169163151f37349160248083019260209291908290030181600087803b1580156200061c57600080fd5b505af115801562000631573d6000803e3d6000fd5b505050506040513d60208110156200064857600080fd5b5051600454600854919350600160a060020a039081169163aa1322f791889186918891620100009004166200067e8433620019ea565b600501546200068e8c33620019ea565b600601546200069e8d33620019ea565b600701546003546040805160e060020a63ffffffff8c16028152600160a060020a03998a166004820152978916602489015260448801969096529387166064870152608486019290925260a485015260c48401529290921660e48201523361010482015290516101248083019260209291908290030181600087803b1580156200072757600080fd5b505af11580156200073c573d6000803e3d6000fd5b505050506040513d60208110156200075357600080fd5b5051905080620007648633620019ea565b600801805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03928316179055604080517fd88b8676000000000000000000000000000000000000000000000000000000008152838316600482015290519184169163d88b86769160248082019260009290919082900301818387803b158015620007eb57600080fd5b505af115801562000800573d6000803e3d6000fd5b505050506000620008128633620019ea565b600601541115620008e557600354600160a060020a031663e1f21c67868362000861620008408333620019ea565b60060154620008508b33620019ea565b600901549063ffffffff62001a4a16565b6040805160e060020a63ffffffff8716028152600160a060020a0394851660048201529290931660248301526044820152905160648083019260209291908290030181600087803b158015620008b657600080fd5b505af1158015620008cb573d6000803e3d6000fd5b505050506040513d6020811015620008e257600080fd5b50505b620008f18585620016be565b6040805185815290513391600160a060020a038816917f824239e216016c403265447935e88cc521189d5e9a52754e5c2a16f7436281dc9181900360200190a350506001600255505050565b60068054829081106200094c57fe5b6000918252602091829020600c919091020180546040805160026001841615610100026000190190931692909204601f810185900485028301850190915280825291935091839190830182828015620009e95780601f10620009bd57610100808354040283529160200191620009e9565b820191906000526020600020905b815481529060010190602001808311620009cb57829003601f168201915b505050505090806001018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801562000a8b5780601f1062000a5f5761010080835404028352916020019162000a8b565b820191906000526020600020905b81548152906001019060200180831162000a6d57829003601f168201915b50505060028401546004850154600586015460068701546007880154600889015460098a0154600a8b0154600b909b0154999a60ff9097169995985093965091949093600160a060020a039283169392168b565b6000600160a060020a038c16151562000af757600080fd5b600160a060020a038b16151562000b0d57600080fd5b62000b188562001a97565b801562000b2f5750606462000b2d8662001ac1565b105b151562000b3b57600080fd5b62000b468462001a97565b801562000b5d5750606462000b5b8562001ac1565b105b151562000b6957600080fd5b62000b748362001a97565b801562000b8b5750606462000b898462001ac1565b105b151562000b9757600080fd5b62000ba28262001a97565b801562000bb95750606462000bb78362001ac1565b105b151562000bc557600080fd5b8a600160a060020a031662000bdb8c8e620019ea565b600b0154600160a060020a0316141562000bf457600080fd5b62000c008b8d620019ea565b600160a060020a038d166000908152600391909101602052604090205460ff161562000c2b57600080fd5b600680549050905080600560008d600160a060020a0316600160a060020a0316815260200190815260200160002060008e600160a060020a0316600160a060020a0316815260200190815260200160002060006101000a81548161ffff021916908361ffff1602179055506006805480919060010162000cac919062001de4565b600860006101000a81548161ffff021916908361ffff160217905550600760008c600160a060020a0316600160a060020a031681526020019081526020016000208c90806001815401808255809150509060018203906000526020600020016000909192909190916101000a815481600160a060020a030219169083600160a060020a0316021790555050600160068261ffff1681548110151562000d4d57fe5b90600052602060002090600c020160030160008e600160a060020a0316600160a060020a0316815260200190815260200160002060006101000a81548160ff021916908315150217905550898960068361ffff1681548110151562000dae57fe5b6000918252602090912062000dca93600c909202019162001e18565b50878760068361ffff1681548110151562000de157fe5b90600052602060002090600c0201600101919062000e0192919062001e18565b508560068261ffff1681548110151562000e1757fe5b90600052602060002090600c020160020160006101000a81548160ff021916908360ff1602179055508460068261ffff1681548110151562000e5557fe5b90600052602060002090600c0201600401819055508360068261ffff1681548110151562000e7f57fe5b90600052602060002090600c0201600501819055508260068261ffff1681548110151562000ea957fe5b90600052602060002090600c0201600601819055508160068261ffff1681548110151562000ed357fe5b90600052602060002090600c0201600701819055508a60068261ffff1681548110151562000efd57fe5b90600052602060002090600c0201600b0160006101000a815481600160a060020a030219169083600160a060020a031602179055508b600160a060020a03168b600160a060020a03167fd3bb7a0fd3c972c824718e5d4fe7501feb58ebd797223783efbfd1d3085d49438c8c8c8c60405180806020018060200183810383528787828181526020019250808284379091018481038352858152602001905085858082843760405192018290039850909650505050505050a3505050505050505050505050565b600062000fd18383620019ea565b60080154600160a060020a031690505b92915050565b600354600160a060020a03165b90565b600354600160a060020a031681565b60005481565b600854620100009004600160a060020a031681565b600080600080600060016002541415156200103b57600080fd5b60028055600086116200104d57600080fd5b600160a060020a03871615156200106357600080fd5b86600160a060020a0316620010798833620019ea565b600b0154600160a060020a0316146200109157600080fd5b6200109d8733620019ea565b336000908152600391909101602052604090205460ff161515620010c057600080fd5b604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290518896508791600160a060020a0388169163dd62ed3e916044808201926020929091908290030181600087803b1580156200112e57600080fd5b505af115801562001143573d6000803e3d6000fd5b505050506040513d60208110156200115a57600080fd5b505110156200116857600080fd5b620011748733620019ea565b93508360020160009054906101000a900460ff1660ff1685600160a060020a031663313ce5676040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015620011ca57600080fd5b505af1158015620011df573d6000803e3d6000fd5b505050506040513d6020811015620011f657600080fd5b505160ff16146200120657600080fd5b60008460040154116200121b57600062001233565b60048401546200123390879063ffffffff62001a4a16565b925062001247868463ffffffff62001af916565b60035490925062001264908690600160a060020a03168462001b0c565b60085462001284908690620100009004600160a060020a03168562001b0c565b60098401546200129b908363ffffffff62001a3c16565b60098501556003546040805160e260020a630547cdcd028152600160a060020a038a8116600483015291516000939092169163151f37349160248082019260209290919082900301818787803b158015620012f557600080fd5b505af11580156200130a573d6000803e3d6000fd5b505050506040513d60208110156200132157600080fd5b5051600160a060020a03161415620014ff5760028401548490600182019060ff166200134c62001e9d565b60ff82166040820152606080825284546002600019610100600184161502019091160490820181905281906020820190608083019087908015620013d45780601f10620013a857610100808354040283529160200191620013d4565b820191906000526020600020905b815481529060010190602001808311620013b657829003601f168201915b50508381038252855460026000196101006001841615020190911604808252602090910190869080156200144c5780601f1062001420576101008083540402835291602001916200144c565b820191906000526020600020905b8154815290600101906020018083116200142e57829003601f168201915b505095505050505050604051809103906000f08015801562001472573d6000803e3d6000fd5b50600354604080517fa0736912000000000000000000000000000000000000000000000000000000008152600160a060020a038b811660048301528085166024830152915193945091169163a07369129160448082019260009290919082900301818387803b158015620014e557600080fd5b505af1158015620014fa573d6000803e3d6000fd5b505050505b6003546040805160e260020a630547cdcd028152600160a060020a038a811660048301819052925133947f2b11dc5f6b2036a3d03d04c1e89724a8650507582665455ed7154b544f3e3c4f9388939091169163151f3734916024808201926020929091908290030181600087803b1580156200157a57600080fd5b505af11580156200158f573d6000803e3d6000fd5b505050506040513d6020811015620015a657600080fd5b505160408051928352600160a060020a0390911660208301528051918290030190a3505060016002555050505050565b600154604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26001805473ffffffffffffffffffffffffffffffffffffffff19169055565b600160a060020a0381166000908152600760209081526040918290208054835181840281018401909452808452606093928301828280156200169957602002820191906000526020600020905b8154600160a060020a031681526001909101906020018083116200167a575b50505050509050919050565b600154600160a060020a031681565b60085461ffff1681565b600080808311620016ce57600080fd5b600160a060020a0384161515620016e457600080fd5b6003546040805160e260020a630547cdcd028152600160a060020a03878116600483015291516000939092169163151f37349160248082019260209290919082900301818787803b1580156200173957600080fd5b505af11580156200174e573d6000803e3d6000fd5b505050506040513d60208110156200176557600080fd5b5051600160a060020a031614156200177c57600080fd5b60006200178a8533620019ea565b60080154600160a060020a03161415620017a357600080fd5b620017af8433620019ea565b336000908152600391909101602052604090205460ff161515600114620017d557600080fd5b620017e683620005768633620019ea565b620017f28533620019ea565b6009015410156200180257600080fd5b6003546040805160e260020a630547cdcd028152600160a060020a0387811660048301529151919092169163151f37349160248083019260209291908290030181600087803b1580156200185557600080fd5b505af11580156200186a573d6000803e3d6000fd5b505050506040513d60208110156200188157600080fd5b50519150620018918433620019ea565b60080154600160a060020a03169050620018b183620005768633620019ea565b620018bd8533620019ea565b600a0155604080517fd0047acf000000000000000000000000000000000000000000000000000000008152600160a060020a0383811660048301526024820186905260006044830181905292519085169263d0047acf92606480820193602093909283900390910190829087803b1580156200193857600080fd5b505af11580156200194d573d6000803e3d6000fd5b505050506040513d60208110156200196457600080fd5b50506040805184815290513391600160a060020a038716917f9a2331701430ef95fa157fc5598820b278d8225e8a51263887abb0e1e2b06d979181900360200190a350505050565b600454600160a060020a031681565b600560209081526000928352604080842090915290825290205461ffff1681565b620019e78162001cf0565b50565b600160a060020a03808316600090815260056020908152604080832093851683529290529081205460068054909161ffff1690811062001a2657fe5b90600052602060002090600c0201905092915050565b8181018281101562000fe157fe5b600062001a578262001a97565b151562001a6357600080fd5b62001a9062001a7162001d6f565b62001a83858563ffffffff62001d8316565b9063ffffffff62001db016565b9392505050565b600062001aa362001dc6565b821015801562000fe1575062001ab862001d6f565b82111592915050565b600062001ace8262001a97565b151562001ada57600080fd5b62000fe162001ae862001dcb565b8390600a0a63ffffffff62001db016565b60008282111562001b0657fe5b50900390565b600062001baa8285600160a060020a03166370a08231866040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801562001b6f57600080fd5b505af115801562001b84573d6000803e3d6000fd5b505050506040513d602081101562001b9b57600080fd5b50519063ffffffff62001a3c16565b604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a038681166024830152604482018690529151929350908616916323b872dd916064808201926020929091908290030181600087803b15801562001c2057600080fd5b505af115801562001c35573d6000803e3d6000fd5b505050506040513d602081101562001c4c57600080fd5b5050604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152915183928716916370a082319160248083019260209291908290030181600087803b15801562001cb457600080fd5b505af115801562001cc9573d6000803e3d6000fd5b505050506040513d602081101562001ce057600080fd5b50511462001cea57fe5b50505050565b600160a060020a038116151562001d0657600080fd5b600154604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600062001d7b62001dd0565b600a0a905090565b600082151562001d965750600062000fe1565b5081810281838281151562001da757fe5b041462000fe157fe5b6000818381151562001dbe57fe5b049392505050565b600090565b600290565b600062001ddc62001dcb565b600201905090565b81548183558181111562001e1357600c0281600c02836000526020600020918201910162001e13919062001eae565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1062001e5b5782800160ff1982351617855562001e8b565b8280016001018555821562001e8b579182015b8281111562001e8b57823582559160200191906001019062001e6e565b5062001e9992915062001f4c565b5090565b6040516114f48062001fb283390190565b62000ff491905b8082111562001e9957600062001ecc828262001f69565b62001edc60018301600062001f69565b5060028101805460ff1916905560006004820181905560058201819055600682018190556007820181905560088201805473ffffffffffffffffffffffffffffffffffffffff1990811690915560098301829055600a830191909155600b820180549091169055600c0162001eb5565b62000ff491905b8082111562001e99576000815560010162001f53565b50805460018160011615610100020316600290046000825580601f1062001f915750620019e7565b601f016020900490600052602060002090810190620019e7919062001f4c560060806040523480156200001157600080fd5b50604051620014f4380380620014f48339810160409081528151602080840151928401519184018051909493909301928491849184916200005891600091860190620000bf565b5081516200006e906001906020850190620000bf565b506002805433610100810261010060a860020a031960ff90951660ff199384161794909416939093179091556000918252600860205260409091208054909116600117905550620001649350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200010257805160ff191683800117855562000132565b8280016001018555821562000132579182015b828111156200013257825182559160200191906001019062000115565b506200014092915062000144565b5090565b6200016191905b808211156200014057600081556001016200014b565b90565b61138080620001746000396000f3006080604052600436106101325763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610137578063095ea7b3146101c157806318160ddd146101f957806323b872dd1461022057806327e235e31461024a578063313ce5671461026b57806342966c68146102965780634afbf5ee146102b057806366188463146102d457806370a08231146102f8578063715018a61461031957806379cc67901461032e5780638da5cb5b1461035257806395d89b41146103835780639d2e477714610398578063a9059cbb146103c5578063ba0e0f5e146103e9578063d0047acf1461040a578063d294cb0f14610437578063d73dd62314610458578063d88b86761461047c578063dd62ed3e1461049d578063f2fde38b146104c4575b600080fd5b34801561014357600080fd5b5061014c6104e5565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561018657818101518382015260200161016e565b50505050905090810190601f1680156101b35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101cd57600080fd5b506101e5600160a060020a0360043516602435610573565b604080519115158252519081900360200190f35b34801561020557600080fd5b5061020e6105d9565b60408051918252519081900360200190f35b34801561022c57600080fd5b506101e5600160a060020a03600435811690602435166044356105df565b34801561025657600080fd5b5061020e600160a060020a036004351661073f565b34801561027757600080fd5b50610280610751565b6040805160ff9092168252519081900360200190f35b3480156102a257600080fd5b506102ae60043561075a565b005b3480156102bc57600080fd5b5061020e600160a060020a0360043516602435610767565b3480156102e057600080fd5b506101e5600160a060020a0360043516602435610784565b34801561030457600080fd5b5061020e600160a060020a0360043516610873565b34801561032557600080fd5b506102ae61088e565b34801561033a57600080fd5b506102ae600160a060020a0360043516602435610906565b34801561035e57600080fd5b5061036761099c565b60408051600160a060020a039092168252519081900360200190f35b34801561038f57600080fd5b5061014c6109b0565b3480156103a457600080fd5b506101e5600160a060020a036004351660243563ffffffff60443516610a0a565b3480156103d157600080fd5b506101e5600160a060020a0360043516602435610ab6565b3480156103f557600080fd5b506102ae600160a060020a0360043516610b89565b34801561041657600080fd5b506101e5600160a060020a036004351660243563ffffffff60443516610bc6565b34801561044357600080fd5b5061020e600160a060020a0360043516610d0c565b34801561046457600080fd5b506101e5600160a060020a0360043516602435610e11565b34801561048857600080fd5b506102ae600160a060020a0360043516610eaa565b3480156104a957600080fd5b5061020e600160a060020a0360043581169060243516610eea565b3480156104d057600080fd5b506102ae600160a060020a0360043516610f15565b6000805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561056b5780601f106105405761010080835404028352916020019161056b565b820191906000526020600020905b81548152906001019060200180831161054e57829003601f168201915b505050505081565b336000818152600360209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60055490565b60006105ea84610f3a565b600160a060020a03831615156105ff57600080fd5b61060884610d0c565b82111561061457600080fd5b600160a060020a038416600090815260036020908152604080832033845290915290205482111561064457600080fd5b600160a060020a03841660009081526004602052604090205461066d908363ffffffff6110a916565b600160a060020a0380861660009081526004602052604080822093909355908516815220546106a2908363ffffffff6110bb16565b600160a060020a0380851660009081526004602090815260408083209490945591871681526003825282812033825290915220546106e6908363ffffffff6110a916565b600160a060020a0380861660008181526003602090815260408083203384528252918290209490945580518681529051928716939192600080516020611335833981519152929181900390910190a35060019392505050565b60046020526000908152604090205481565b60025460ff1681565b61076433826110ce565b50565b600660209081526000928352604080842090915290825290205481565b336000908152600360209081526040808320600160a060020a03861684529091528120548083106107d857336000908152600360209081526040808320600160a060020a038816845290915281205561080d565b6107e8818463ffffffff6110a916565b336000908152600360209081526040808320600160a060020a03891684529091529020555b336000818152600360209081526040808320600160a060020a0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b600160a060020a031660009081526004602052604090205490565b6002546101009004600160a060020a031633146108aa57600080fd5b600254604051610100909104600160a060020a0316907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26002805474ffffffffffffffffffffffffffffffffffffffff0019169055565b600160a060020a038216600090815260036020908152604080832033845290915290205481111561093657600080fd5b600160a060020a038216600090815260036020908152604080832033845290915290205461096a908263ffffffff6110a916565b600160a060020a038316600090815260036020908152604080832033845290915290205561099882826110ce565b5050565b6002546101009004600160a060020a031681565b60018054604080516020600284861615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561056b5780601f106105405761010080835404028352916020019161056b565b3360008181526008602052604081205490919060ff161515610a2b57600080fd5b610a358585610ab6565b50428363ffffffff161115610a5757610a576000868563ffffffff16876111b6565b60408051338152600160a060020a038716602082015280820186905263ffffffff8516606082015290517f5075049792a88eedfe4e60bb3ffeac77b4fa7f03108b81fb0b460161b983e2009181900360800190a1506001949350505050565b6000610ac133610f3a565b600160a060020a0383161515610ad657600080fd5b610adf33610d0c565b821115610aeb57600080fd5b33600090815260046020526040902054610b0b908363ffffffff6110a916565b3360009081526004602052604080822092909255600160a060020a03851681522054610b3d908363ffffffff6110bb16565b600160a060020a0384166000818152600460209081526040918290209390935580518581529051919233926000805160206113358339815191529281900390910190a350600192915050565b6002546101009004600160a060020a03163314610ba557600080fd5b600160a060020a03166000908152600860205260409020805460ff19169055565b3360008181526008602052604081205490919060ff161515610be757600080fd5b600554610bfa818663ffffffff6110bb16565b11610c0457600080fd5b428363ffffffff161115610c2557610c256000868563ffffffff16876111b6565b600160a060020a038516600090815260046020526040902054610c4e908563ffffffff6110bb16565b600160a060020a038616600090815260046020526040902055600554610c7a908563ffffffff6110bb16565b600555604080518581529051600160a060020a038716916000916000805160206113358339815191529181900360200190a36040805160008152600160a060020a038716602082015280820186905263ffffffff8516606082015290517f5075049792a88eedfe4e60bb3ffeac77b4fa7f03108b81fb0b460161b983e2009181900360800190a1506001949350505050565b600160a060020a038116600090815260046020908152604080832054600683528184208480529092528220549091901515610d4657610e0b565b5060005b600160a060020a038316600090815260076020526040902054811015610e0b57600160a060020a0383166000908152600760205260409020805442919083908110610d9157fe5b9060005260206000200154101515610e0357600160a060020a0383166000908152600660209081526040808320600790925282208054610e0093919085908110610dd757fe5b9060005260206000200154815260200190815260200160002054836110a990919063ffffffff16565b91505b600101610d4a565b50919050565b336000908152600360209081526040808320600160a060020a0386168452909152812054610e45908363ffffffff6110bb16565b336000818152600360209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b6002546101009004600160a060020a03163314610ec657600080fd5b600160a060020a03166000908152600860205260409020805460ff19166001179055565b600160a060020a03918216600090815260036020908152604080832093909416825291909152205490565b6002546101009004600160a060020a03163314610f3157600080fd5b610764816112ab565b600160a060020a03811660009081526006602090815260408083208380529091528120541515610f6957610998565b5060005b600160a060020a03821660009081526007602052604090205481101561099857600160a060020a0382166000908152600760205260409020805442919083908110610fb457fe5b906000526020600020015410156110a157600160a060020a038216600090815260066020908152604080832060079092528220805461103f93919085908110610ff957fe5b60009182526020808320909101548352828101939093526040918201812054600160a060020a03871682526006845282822082805290935220549063ffffffff6110a916565b600160a060020a0383166000818152600660209081526040808320838052808352818420959095559282526007905290812080549192918391908590811061108357fe5b90600052602060002001548152602001908152602001600020819055505b600101610f6d565b6000828211156110b557fe5b50900390565b818101828110156110c857fe5b92915050565b6110d782610f3a565b6110e082610d0c565b8111156110ec57600080fd5b600160a060020a038216600090815260046020526040902054611115908263ffffffff6110a916565b600160a060020a038316600090815260046020526040902055600554611141908263ffffffff6110a916565b600555604080518281529051600160a060020a038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a2604080518281529051600091600160a060020a038516916000805160206113358339815191529181900360200190a35050565b600160a060020a03831660009081526006602090815260408083208380529091529020546111ea908263ffffffff6110bb16565b600160a060020a0384166000908152600660209081526040808320838052909152808220929092558381522054151561124957600160a060020a0383166000908152600760209081526040822080546001810182559083529120018290555b600160a060020a038316600090815260066020908152604080832085845290915290205461127d908263ffffffff6110bb16565b600160a060020a03909316600090815260066020908152604080832094835293905291909120919091555050565b600160a060020a03811615156112c057600080fd5b600254604051600160a060020a0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360028054600160a060020a039092166101000274ffffffffffffffffffffffffffffffffffffffff00199092169190911790555600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582032e10203dcbab0ee1413110ee779200c5145d19d538d974c007e2d373697c5e70029a165627a7a723058201fcd9909e81c34a57ad74f047b1fb5787e522283ed33f38e38f52f243257ccd50029", - "deployedBytecode": "0x608060405260043610620000e95763ffffffff60e060020a60003504166309363c998114620000ee5780631dafede0146200011a57806334cf82bf14620002825780633f3466a714620002d95780634b1acf39146200031f5780634d12fca4146200033757806354fd4d50146200034f5780635641f3c3146200037957806368dce9321462000391578063715018a614620003b8578063849072b914620003d05780638da5cb5b14620004465780639cf96e2e146200045e578063a41ffd38146200048d578063c45a015514620004b4578063cca89d7314620004cc578063f2fde38b14620004f6575b600080fd5b348015620000fb57600080fd5b5062000118600160a060020a03600435166024356044356200051a565b005b3480156200012757600080fd5b50620001356004356200093d565b6040518080602001806020018c60ff1660ff1681526020018b81526020018a815260200189815260200188815260200187600160a060020a0316600160a060020a0316815260200186815260200185815260200184600160a060020a0316600160a060020a0316815260200183810383528e818151815260200191508051906020019080838360005b83811015620001d8578181015183820152602001620001be565b50505050905090810190601f168015620002065780820380516001836020036101000a031916815260200191505b5083810382528d5181528d516020918201918f019080838360005b838110156200023b57818101518382015260200162000221565b50505050905090810190601f168015620002695780820380516001836020036101000a031916815260200191505b509d505050505050505050505050505060405180910390f35b3480156200028f57600080fd5b5062000118600160a060020a0360048035821691602480359091169160443580830192908201359160643591820191013560ff6084351660a43560c43560e4356101043562000adf565b348015620002e657600080fd5b5062000303600160a060020a036004358116906024351662000fc3565b60408051600160a060020a039092168252519081900360200190f35b3480156200032c57600080fd5b506200030362000fe7565b3480156200034457600080fd5b506200030362000ff7565b3480156200035c57600080fd5b506200036762001006565b60408051918252519081900360200190f35b3480156200038657600080fd5b50620003036200100c565b3480156200039e57600080fd5b5062000118600160a060020a036004351660243562001021565b348015620003c557600080fd5b5062000118620015d6565b348015620003dd57600080fd5b50620003f4600160a060020a03600435166200162d565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156200043257818101518382015260200162000418565b505050509050019250505060405180910390f35b3480156200045357600080fd5b5062000303620016a5565b3480156200046b57600080fd5b5062000476620016b4565b6040805161ffff9092168252519081900360200190f35b3480156200049a57600080fd5b5062000118600160a060020a0360043516602435620016be565b348015620004c157600080fd5b5062000303620019ac565b348015620004d957600080fd5b5062000476600160a060020a0360043581169060243516620019bb565b3480156200050357600080fd5b5062000118600160a060020a0360043516620019dc565b60008060016002541415156200052f57600080fd5b600280556200053f8533620019ea565b336000908152600391909101602052604090205460ff1615156001146200056557600080fd5b6200058784620005768733620019ea565b600a01549063ffffffff62001a3c16565b620005938633620019ea565b600901541015620005a357600080fd5b6000620005b18633620019ea565b60080154600160a060020a031614620005c957600080fd5b6003546040805160e260020a630547cdcd028152600160a060020a0388811660048301529151919092169163151f37349160248083019260209291908290030181600087803b1580156200061c57600080fd5b505af115801562000631573d6000803e3d6000fd5b505050506040513d60208110156200064857600080fd5b5051600454600854919350600160a060020a039081169163aa1322f791889186918891620100009004166200067e8433620019ea565b600501546200068e8c33620019ea565b600601546200069e8d33620019ea565b600701546003546040805160e060020a63ffffffff8c16028152600160a060020a03998a166004820152978916602489015260448801969096529387166064870152608486019290925260a485015260c48401529290921660e48201523361010482015290516101248083019260209291908290030181600087803b1580156200072757600080fd5b505af11580156200073c573d6000803e3d6000fd5b505050506040513d60208110156200075357600080fd5b5051905080620007648633620019ea565b600801805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03928316179055604080517fd88b8676000000000000000000000000000000000000000000000000000000008152838316600482015290519184169163d88b86769160248082019260009290919082900301818387803b158015620007eb57600080fd5b505af115801562000800573d6000803e3d6000fd5b505050506000620008128633620019ea565b600601541115620008e557600354600160a060020a031663e1f21c67868362000861620008408333620019ea565b60060154620008508b33620019ea565b600901549063ffffffff62001a4a16565b6040805160e060020a63ffffffff8716028152600160a060020a0394851660048201529290931660248301526044820152905160648083019260209291908290030181600087803b158015620008b657600080fd5b505af1158015620008cb573d6000803e3d6000fd5b505050506040513d6020811015620008e257600080fd5b50505b620008f18585620016be565b6040805185815290513391600160a060020a038816917f824239e216016c403265447935e88cc521189d5e9a52754e5c2a16f7436281dc9181900360200190a350506001600255505050565b60068054829081106200094c57fe5b6000918252602091829020600c919091020180546040805160026001841615610100026000190190931692909204601f810185900485028301850190915280825291935091839190830182828015620009e95780601f10620009bd57610100808354040283529160200191620009e9565b820191906000526020600020905b815481529060010190602001808311620009cb57829003601f168201915b505050505090806001018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801562000a8b5780601f1062000a5f5761010080835404028352916020019162000a8b565b820191906000526020600020905b81548152906001019060200180831162000a6d57829003601f168201915b50505060028401546004850154600586015460068701546007880154600889015460098a0154600a8b0154600b909b0154999a60ff9097169995985093965091949093600160a060020a039283169392168b565b6000600160a060020a038c16151562000af757600080fd5b600160a060020a038b16151562000b0d57600080fd5b62000b188562001a97565b801562000b2f5750606462000b2d8662001ac1565b105b151562000b3b57600080fd5b62000b468462001a97565b801562000b5d5750606462000b5b8562001ac1565b105b151562000b6957600080fd5b62000b748362001a97565b801562000b8b5750606462000b898462001ac1565b105b151562000b9757600080fd5b62000ba28262001a97565b801562000bb95750606462000bb78362001ac1565b105b151562000bc557600080fd5b8a600160a060020a031662000bdb8c8e620019ea565b600b0154600160a060020a0316141562000bf457600080fd5b62000c008b8d620019ea565b600160a060020a038d166000908152600391909101602052604090205460ff161562000c2b57600080fd5b600680549050905080600560008d600160a060020a0316600160a060020a0316815260200190815260200160002060008e600160a060020a0316600160a060020a0316815260200190815260200160002060006101000a81548161ffff021916908361ffff1602179055506006805480919060010162000cac919062001de4565b600860006101000a81548161ffff021916908361ffff160217905550600760008c600160a060020a0316600160a060020a031681526020019081526020016000208c90806001815401808255809150509060018203906000526020600020016000909192909190916101000a815481600160a060020a030219169083600160a060020a0316021790555050600160068261ffff1681548110151562000d4d57fe5b90600052602060002090600c020160030160008e600160a060020a0316600160a060020a0316815260200190815260200160002060006101000a81548160ff021916908315150217905550898960068361ffff1681548110151562000dae57fe5b6000918252602090912062000dca93600c909202019162001e18565b50878760068361ffff1681548110151562000de157fe5b90600052602060002090600c0201600101919062000e0192919062001e18565b508560068261ffff1681548110151562000e1757fe5b90600052602060002090600c020160020160006101000a81548160ff021916908360ff1602179055508460068261ffff1681548110151562000e5557fe5b90600052602060002090600c0201600401819055508360068261ffff1681548110151562000e7f57fe5b90600052602060002090600c0201600501819055508260068261ffff1681548110151562000ea957fe5b90600052602060002090600c0201600601819055508160068261ffff1681548110151562000ed357fe5b90600052602060002090600c0201600701819055508a60068261ffff1681548110151562000efd57fe5b90600052602060002090600c0201600b0160006101000a815481600160a060020a030219169083600160a060020a031602179055508b600160a060020a03168b600160a060020a03167fd3bb7a0fd3c972c824718e5d4fe7501feb58ebd797223783efbfd1d3085d49438c8c8c8c60405180806020018060200183810383528787828181526020019250808284379091018481038352858152602001905085858082843760405192018290039850909650505050505050a3505050505050505050505050565b600062000fd18383620019ea565b60080154600160a060020a031690505b92915050565b600354600160a060020a03165b90565b600354600160a060020a031681565b60005481565b600854620100009004600160a060020a031681565b600080600080600060016002541415156200103b57600080fd5b60028055600086116200104d57600080fd5b600160a060020a03871615156200106357600080fd5b86600160a060020a0316620010798833620019ea565b600b0154600160a060020a0316146200109157600080fd5b6200109d8733620019ea565b336000908152600391909101602052604090205460ff161515620010c057600080fd5b604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290518896508791600160a060020a0388169163dd62ed3e916044808201926020929091908290030181600087803b1580156200112e57600080fd5b505af115801562001143573d6000803e3d6000fd5b505050506040513d60208110156200115a57600080fd5b505110156200116857600080fd5b620011748733620019ea565b93508360020160009054906101000a900460ff1660ff1685600160a060020a031663313ce5676040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015620011ca57600080fd5b505af1158015620011df573d6000803e3d6000fd5b505050506040513d6020811015620011f657600080fd5b505160ff16146200120657600080fd5b60008460040154116200121b57600062001233565b60048401546200123390879063ffffffff62001a4a16565b925062001247868463ffffffff62001af916565b60035490925062001264908690600160a060020a03168462001b0c565b60085462001284908690620100009004600160a060020a03168562001b0c565b60098401546200129b908363ffffffff62001a3c16565b60098501556003546040805160e260020a630547cdcd028152600160a060020a038a8116600483015291516000939092169163151f37349160248082019260209290919082900301818787803b158015620012f557600080fd5b505af11580156200130a573d6000803e3d6000fd5b505050506040513d60208110156200132157600080fd5b5051600160a060020a03161415620014ff5760028401548490600182019060ff166200134c62001e9d565b60ff82166040820152606080825284546002600019610100600184161502019091160490820181905281906020820190608083019087908015620013d45780601f10620013a857610100808354040283529160200191620013d4565b820191906000526020600020905b815481529060010190602001808311620013b657829003601f168201915b50508381038252855460026000196101006001841615020190911604808252602090910190869080156200144c5780601f1062001420576101008083540402835291602001916200144c565b820191906000526020600020905b8154815290600101906020018083116200142e57829003601f168201915b505095505050505050604051809103906000f08015801562001472573d6000803e3d6000fd5b50600354604080517fa0736912000000000000000000000000000000000000000000000000000000008152600160a060020a038b811660048301528085166024830152915193945091169163a07369129160448082019260009290919082900301818387803b158015620014e557600080fd5b505af1158015620014fa573d6000803e3d6000fd5b505050505b6003546040805160e260020a630547cdcd028152600160a060020a038a811660048301819052925133947f2b11dc5f6b2036a3d03d04c1e89724a8650507582665455ed7154b544f3e3c4f9388939091169163151f3734916024808201926020929091908290030181600087803b1580156200157a57600080fd5b505af11580156200158f573d6000803e3d6000fd5b505050506040513d6020811015620015a657600080fd5b505160408051928352600160a060020a0390911660208301528051918290030190a3505060016002555050505050565b600154604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26001805473ffffffffffffffffffffffffffffffffffffffff19169055565b600160a060020a0381166000908152600760209081526040918290208054835181840281018401909452808452606093928301828280156200169957602002820191906000526020600020905b8154600160a060020a031681526001909101906020018083116200167a575b50505050509050919050565b600154600160a060020a031681565b60085461ffff1681565b600080808311620016ce57600080fd5b600160a060020a0384161515620016e457600080fd5b6003546040805160e260020a630547cdcd028152600160a060020a03878116600483015291516000939092169163151f37349160248082019260209290919082900301818787803b1580156200173957600080fd5b505af11580156200174e573d6000803e3d6000fd5b505050506040513d60208110156200176557600080fd5b5051600160a060020a031614156200177c57600080fd5b60006200178a8533620019ea565b60080154600160a060020a03161415620017a357600080fd5b620017af8433620019ea565b336000908152600391909101602052604090205460ff161515600114620017d557600080fd5b620017e683620005768633620019ea565b620017f28533620019ea565b6009015410156200180257600080fd5b6003546040805160e260020a630547cdcd028152600160a060020a0387811660048301529151919092169163151f37349160248083019260209291908290030181600087803b1580156200185557600080fd5b505af11580156200186a573d6000803e3d6000fd5b505050506040513d60208110156200188157600080fd5b50519150620018918433620019ea565b60080154600160a060020a03169050620018b183620005768633620019ea565b620018bd8533620019ea565b600a0155604080517fd0047acf000000000000000000000000000000000000000000000000000000008152600160a060020a0383811660048301526024820186905260006044830181905292519085169263d0047acf92606480820193602093909283900390910190829087803b1580156200193857600080fd5b505af11580156200194d573d6000803e3d6000fd5b505050506040513d60208110156200196457600080fd5b50506040805184815290513391600160a060020a038716917f9a2331701430ef95fa157fc5598820b278d8225e8a51263887abb0e1e2b06d979181900360200190a350505050565b600454600160a060020a031681565b600560209081526000928352604080842090915290825290205461ffff1681565b620019e78162001cf0565b50565b600160a060020a03808316600090815260056020908152604080832093851683529290529081205460068054909161ffff1690811062001a2657fe5b90600052602060002090600c0201905092915050565b8181018281101562000fe157fe5b600062001a578262001a97565b151562001a6357600080fd5b62001a9062001a7162001d6f565b62001a83858563ffffffff62001d8316565b9063ffffffff62001db016565b9392505050565b600062001aa362001dc6565b821015801562000fe1575062001ab862001d6f565b82111592915050565b600062001ace8262001a97565b151562001ada57600080fd5b62000fe162001ae862001dcb565b8390600a0a63ffffffff62001db016565b60008282111562001b0657fe5b50900390565b600062001baa8285600160a060020a03166370a08231866040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801562001b6f57600080fd5b505af115801562001b84573d6000803e3d6000fd5b505050506040513d602081101562001b9b57600080fd5b50519063ffffffff62001a3c16565b604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a038681166024830152604482018690529151929350908616916323b872dd916064808201926020929091908290030181600087803b15801562001c2057600080fd5b505af115801562001c35573d6000803e3d6000fd5b505050506040513d602081101562001c4c57600080fd5b5050604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152915183928716916370a082319160248083019260209291908290030181600087803b15801562001cb457600080fd5b505af115801562001cc9573d6000803e3d6000fd5b505050506040513d602081101562001ce057600080fd5b50511462001cea57fe5b50505050565b600160a060020a038116151562001d0657600080fd5b600154604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600062001d7b62001dd0565b600a0a905090565b600082151562001d965750600062000fe1565b5081810281838281151562001da757fe5b041462000fe157fe5b6000818381151562001dbe57fe5b049392505050565b600090565b600290565b600062001ddc62001dcb565b600201905090565b81548183558181111562001e1357600c0281600c02836000526020600020918201910162001e13919062001eae565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1062001e5b5782800160ff1982351617855562001e8b565b8280016001018555821562001e8b579182015b8281111562001e8b57823582559160200191906001019062001e6e565b5062001e9992915062001f4c565b5090565b6040516114f48062001fb283390190565b62000ff491905b8082111562001e9957600062001ecc828262001f69565b62001edc60018301600062001f69565b5060028101805460ff1916905560006004820181905560058201819055600682018190556007820181905560088201805473ffffffffffffffffffffffffffffffffffffffff1990811690915560098301829055600a830191909155600b820180549091169055600c0162001eb5565b62000ff491905b8082111562001e99576000815560010162001f53565b50805460018160011615610100020316600290046000825580601f1062001f915750620019e7565b601f016020900490600052602060002090810190620019e7919062001f4c560060806040523480156200001157600080fd5b50604051620014f4380380620014f48339810160409081528151602080840151928401519184018051909493909301928491849184916200005891600091860190620000bf565b5081516200006e906001906020850190620000bf565b506002805433610100810261010060a860020a031960ff90951660ff199384161794909416939093179091556000918252600860205260409091208054909116600117905550620001649350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200010257805160ff191683800117855562000132565b8280016001018555821562000132579182015b828111156200013257825182559160200191906001019062000115565b506200014092915062000144565b5090565b6200016191905b808211156200014057600081556001016200014b565b90565b61138080620001746000396000f3006080604052600436106101325763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610137578063095ea7b3146101c157806318160ddd146101f957806323b872dd1461022057806327e235e31461024a578063313ce5671461026b57806342966c68146102965780634afbf5ee146102b057806366188463146102d457806370a08231146102f8578063715018a61461031957806379cc67901461032e5780638da5cb5b1461035257806395d89b41146103835780639d2e477714610398578063a9059cbb146103c5578063ba0e0f5e146103e9578063d0047acf1461040a578063d294cb0f14610437578063d73dd62314610458578063d88b86761461047c578063dd62ed3e1461049d578063f2fde38b146104c4575b600080fd5b34801561014357600080fd5b5061014c6104e5565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561018657818101518382015260200161016e565b50505050905090810190601f1680156101b35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101cd57600080fd5b506101e5600160a060020a0360043516602435610573565b604080519115158252519081900360200190f35b34801561020557600080fd5b5061020e6105d9565b60408051918252519081900360200190f35b34801561022c57600080fd5b506101e5600160a060020a03600435811690602435166044356105df565b34801561025657600080fd5b5061020e600160a060020a036004351661073f565b34801561027757600080fd5b50610280610751565b6040805160ff9092168252519081900360200190f35b3480156102a257600080fd5b506102ae60043561075a565b005b3480156102bc57600080fd5b5061020e600160a060020a0360043516602435610767565b3480156102e057600080fd5b506101e5600160a060020a0360043516602435610784565b34801561030457600080fd5b5061020e600160a060020a0360043516610873565b34801561032557600080fd5b506102ae61088e565b34801561033a57600080fd5b506102ae600160a060020a0360043516602435610906565b34801561035e57600080fd5b5061036761099c565b60408051600160a060020a039092168252519081900360200190f35b34801561038f57600080fd5b5061014c6109b0565b3480156103a457600080fd5b506101e5600160a060020a036004351660243563ffffffff60443516610a0a565b3480156103d157600080fd5b506101e5600160a060020a0360043516602435610ab6565b3480156103f557600080fd5b506102ae600160a060020a0360043516610b89565b34801561041657600080fd5b506101e5600160a060020a036004351660243563ffffffff60443516610bc6565b34801561044357600080fd5b5061020e600160a060020a0360043516610d0c565b34801561046457600080fd5b506101e5600160a060020a0360043516602435610e11565b34801561048857600080fd5b506102ae600160a060020a0360043516610eaa565b3480156104a957600080fd5b5061020e600160a060020a0360043581169060243516610eea565b3480156104d057600080fd5b506102ae600160a060020a0360043516610f15565b6000805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561056b5780601f106105405761010080835404028352916020019161056b565b820191906000526020600020905b81548152906001019060200180831161054e57829003601f168201915b505050505081565b336000818152600360209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60055490565b60006105ea84610f3a565b600160a060020a03831615156105ff57600080fd5b61060884610d0c565b82111561061457600080fd5b600160a060020a038416600090815260036020908152604080832033845290915290205482111561064457600080fd5b600160a060020a03841660009081526004602052604090205461066d908363ffffffff6110a916565b600160a060020a0380861660009081526004602052604080822093909355908516815220546106a2908363ffffffff6110bb16565b600160a060020a0380851660009081526004602090815260408083209490945591871681526003825282812033825290915220546106e6908363ffffffff6110a916565b600160a060020a0380861660008181526003602090815260408083203384528252918290209490945580518681529051928716939192600080516020611335833981519152929181900390910190a35060019392505050565b60046020526000908152604090205481565b60025460ff1681565b61076433826110ce565b50565b600660209081526000928352604080842090915290825290205481565b336000908152600360209081526040808320600160a060020a03861684529091528120548083106107d857336000908152600360209081526040808320600160a060020a038816845290915281205561080d565b6107e8818463ffffffff6110a916565b336000908152600360209081526040808320600160a060020a03891684529091529020555b336000818152600360209081526040808320600160a060020a0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b600160a060020a031660009081526004602052604090205490565b6002546101009004600160a060020a031633146108aa57600080fd5b600254604051610100909104600160a060020a0316907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26002805474ffffffffffffffffffffffffffffffffffffffff0019169055565b600160a060020a038216600090815260036020908152604080832033845290915290205481111561093657600080fd5b600160a060020a038216600090815260036020908152604080832033845290915290205461096a908263ffffffff6110a916565b600160a060020a038316600090815260036020908152604080832033845290915290205561099882826110ce565b5050565b6002546101009004600160a060020a031681565b60018054604080516020600284861615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561056b5780601f106105405761010080835404028352916020019161056b565b3360008181526008602052604081205490919060ff161515610a2b57600080fd5b610a358585610ab6565b50428363ffffffff161115610a5757610a576000868563ffffffff16876111b6565b60408051338152600160a060020a038716602082015280820186905263ffffffff8516606082015290517f5075049792a88eedfe4e60bb3ffeac77b4fa7f03108b81fb0b460161b983e2009181900360800190a1506001949350505050565b6000610ac133610f3a565b600160a060020a0383161515610ad657600080fd5b610adf33610d0c565b821115610aeb57600080fd5b33600090815260046020526040902054610b0b908363ffffffff6110a916565b3360009081526004602052604080822092909255600160a060020a03851681522054610b3d908363ffffffff6110bb16565b600160a060020a0384166000818152600460209081526040918290209390935580518581529051919233926000805160206113358339815191529281900390910190a350600192915050565b6002546101009004600160a060020a03163314610ba557600080fd5b600160a060020a03166000908152600860205260409020805460ff19169055565b3360008181526008602052604081205490919060ff161515610be757600080fd5b600554610bfa818663ffffffff6110bb16565b11610c0457600080fd5b428363ffffffff161115610c2557610c256000868563ffffffff16876111b6565b600160a060020a038516600090815260046020526040902054610c4e908563ffffffff6110bb16565b600160a060020a038616600090815260046020526040902055600554610c7a908563ffffffff6110bb16565b600555604080518581529051600160a060020a038716916000916000805160206113358339815191529181900360200190a36040805160008152600160a060020a038716602082015280820186905263ffffffff8516606082015290517f5075049792a88eedfe4e60bb3ffeac77b4fa7f03108b81fb0b460161b983e2009181900360800190a1506001949350505050565b600160a060020a038116600090815260046020908152604080832054600683528184208480529092528220549091901515610d4657610e0b565b5060005b600160a060020a038316600090815260076020526040902054811015610e0b57600160a060020a0383166000908152600760205260409020805442919083908110610d9157fe5b9060005260206000200154101515610e0357600160a060020a0383166000908152600660209081526040808320600790925282208054610e0093919085908110610dd757fe5b9060005260206000200154815260200190815260200160002054836110a990919063ffffffff16565b91505b600101610d4a565b50919050565b336000908152600360209081526040808320600160a060020a0386168452909152812054610e45908363ffffffff6110bb16565b336000818152600360209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b6002546101009004600160a060020a03163314610ec657600080fd5b600160a060020a03166000908152600860205260409020805460ff19166001179055565b600160a060020a03918216600090815260036020908152604080832093909416825291909152205490565b6002546101009004600160a060020a03163314610f3157600080fd5b610764816112ab565b600160a060020a03811660009081526006602090815260408083208380529091528120541515610f6957610998565b5060005b600160a060020a03821660009081526007602052604090205481101561099857600160a060020a0382166000908152600760205260409020805442919083908110610fb457fe5b906000526020600020015410156110a157600160a060020a038216600090815260066020908152604080832060079092528220805461103f93919085908110610ff957fe5b60009182526020808320909101548352828101939093526040918201812054600160a060020a03871682526006845282822082805290935220549063ffffffff6110a916565b600160a060020a0383166000818152600660209081526040808320838052808352818420959095559282526007905290812080549192918391908590811061108357fe5b90600052602060002001548152602001908152602001600020819055505b600101610f6d565b6000828211156110b557fe5b50900390565b818101828110156110c857fe5b92915050565b6110d782610f3a565b6110e082610d0c565b8111156110ec57600080fd5b600160a060020a038216600090815260046020526040902054611115908263ffffffff6110a916565b600160a060020a038316600090815260046020526040902055600554611141908263ffffffff6110a916565b600555604080518281529051600160a060020a038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a2604080518281529051600091600160a060020a038516916000805160206113358339815191529181900360200190a35050565b600160a060020a03831660009081526006602090815260408083208380529091529020546111ea908263ffffffff6110bb16565b600160a060020a0384166000908152600660209081526040808320838052909152808220929092558381522054151561124957600160a060020a0383166000908152600760209081526040822080546001810182559083529120018290555b600160a060020a038316600090815260066020908152604080832085845290915290205461127d908263ffffffff6110bb16565b600160a060020a03909316600090815260066020908152604080832094835293905291909120919091555050565b600160a060020a03811615156112c057600080fd5b600254604051600160a060020a0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360028054600160a060020a039092166101000274ffffffffffffffffffffffffffffffffffffffff00199092169190911790555600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582032e10203dcbab0ee1413110ee779200c5145d19d538d974c007e2d373697c5e70029a165627a7a723058201fcd9909e81c34a57ad74f047b1fb5787e522283ed33f38e38f52f243257ccd50029", - "sourceMap": "101:336:9:-;;;487:1:28;657:51;;257:178:9;8:9:-1;5:2;;;30:1;27;20:12;5:2;257:178:9;;;;;;;;;;;;;;;;;;;;;;;;;123:7:26;:18;;;567:5:31;:18;;-1:-1:-1;;;;;;567:18:31;391:10:9;567:18:31;;;;;;257:178:9;;;;2116:28:8;;;2108:37;;;;;;-1:-1:-1;;;;;2163:22:8;;;;2155:31;;;;;;-1:-1:-1;;;;;2204:24:8;;;;2196:33;;;;;;2240:9;:22;;-1:-1:-1;;;;;2240:22:8;;;-1:-1:-1;;;;;;2240:22:8;;;;;;;2272:13;:30;;;;;;;-1:-1:-1;;;;;;2272:30:8;;;;;;2312:7;:18;;;;;;;;;;;;;;;2340:14;:23;;;;;2240:22;2340:23;;;:::i;:::-;;1923:490;;;;257:178:9;;;101:336;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;101:336:9;;;;;-1:-1:-1;;101:336:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;101:336:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;", - "deployedSourceMap": "101:336:9:-;;;;;;;;;-1:-1:-1;;;101:336:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6205:1625:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6205:1625:8;-1:-1:-1;;;;;6205:1625:8;;;;;;;;;;;842:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;842:35:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;842:35:8;-1:-1:-1;;;;;842:35:8;;;;;;;;;;;;;;;;-1:-1:-1;;;;;842:35:8;-1:-1:-1;;;;;842:35:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;842:35:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;842:35:8;;;;;;;;;;;;;;;;;;;;;;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;842:35:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2419:1760;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2419:1760:8;-1:-1:-1;;;;;2419:1760:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8894:188;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8894:188:8;-1:-1:-1;;;;;8894:188:8;;;;;;;;;;;;;;-1:-1:-1;;;;;8894:188:8;;;;;;;;;;;;;;9214:97;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9214:97:8;;;;595:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;595:32:8;;;;53:19:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;53:19:26;;;;;;;;;;;;;;;;;;;;1018:28:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1018:28:8;;;;4333:1368;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4333:1368:8;-1:-1:-1;;;;;4333:1368:8;;;;;;;1001:111:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1001:111:31;;;;9088:120:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9088:120:8;-1:-1:-1;;;;;9088:120:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;9088:120:8;;;;;;;;;;;;;;;;;238:20:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:31;;;;978:34:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;978:34:8;;;;;;;;;;;;;;;;;;;;;;;7836:1052;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7836:1052:8;-1:-1:-1;;;;;7836:1052:8;;;;;;;633:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;633:35:8;;;;761:75;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;761:75:8;-1:-1:-1;;;;;761:75:8;;;;;;;;;;1274:103:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1274:103:31;-1:-1:-1;;;;;1274:103:31;;;;;6205:1625:8;6669:13;6736:23;487:1:28;1128:14;;:39;1120:48;;;;;;;;584:1;1174:40;;6322:42:8;6339:12;6353:10;6322:16;:42::i;:::-;6380:10;6322:69;;;;:57;;;;;:69;;;;;;;;:77;;:69;:77;6314:86;;;;;;6484:81;6551:13;6484:42;6501:12;6515:10;6484:16;:42::i;:::-;:62;;;;:81;:66;:81;:::i;:::-;6418:42;6435:12;6449:10;6418:16;:42::i;:::-;:62;;;:147;;6410:156;;;;;;6655:1;6584:42;6601:12;6615:10;6584:16;:42::i;:::-;:59;;;-1:-1:-1;;;;;6584:59:8;:73;6576:82;;;;;;6685:9;;:40;;;-1:-1:-1;;;;;6685:40:8;;-1:-1:-1;;;;;6685:40:8;;;;;;;;;:9;;;;;:26;;:40;;;;;;;;;;;;;;:9;;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;6685:40:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6685:40:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6685:40:8;6762:7;;6882:13;;6685:40;;-1:-1:-1;;;;;;6762:7:8;;;;:23;;6807:12;;6685:40;;6863:5;;6882:13;;;;6909:42;6807:12;6940:10;6909:16;:42::i;:::-;:56;;;6979:42;6996:12;7010:10;6979:16;:42::i;:::-;:63;;;7056:42;7073:12;7087:10;7056:16;:42::i;:::-;:60;;;7130:9;;6762:411;;;-1:-1:-1;;;6762:411:8;;;;;;-1:-1:-1;;;;;6762:411:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7130:9;;;;6762:411;;;;7153:10;6762:411;;;;;;;;;;;;;;;;;;;;7130:9;6762:411;;;;5:2:-1;;;;30:1;27;20:12;5:2;6762:411:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6762:411:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6762:411:8;;-1:-1:-1;6762:411:8;7184:42;7201:12;7215:10;7184:16;:42::i;:::-;:59;;:71;;-1:-1:-1;;7184:71:8;-1:-1:-1;;;;;7184:71:8;;;;;;7265:35;;;;;;;;;;;;;;;:24;;;;;;:35;;;;;-1:-1:-1;;7265:35:8;;;;;;;;-1:-1:-1;7265:24:8;:35;;;5:2:-1;;;;30:1;27;20:12;5:2;7265:35:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7265:35:8;;;;7381:1;7315:42;7332:12;7346:10;7315:16;:42::i;:::-;:63;;;:67;7311:376;;;7398:9;;-1:-1:-1;;;;;7398:9:8;:17;7439:12;7478:9;7506:156;7598:42;7439:12;7629:10;7598:16;:42::i;:::-;:63;;;7506:42;7523:12;7537:10;7506:16;:42::i;:::-;:62;;;;:156;:91;:156;:::i;:::-;7398:278;;;-1:-1:-1;;;7398:278:8;;;;;;-1:-1:-1;;;;;7398:278:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7398:278:8;;;;5:2:-1;;;;30:1;27;20:12;5:2;7398:278:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7398:278:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;7311:376:8;7697:49;7718:12;7732:13;7697:20;:49::i;:::-;7762:61;;;;;;;;7797:10;;-1:-1:-1;;;;;7762:61:8;;;;;;;;;;;;-1:-1:-1;;487:1:28;1227:14;:38;-1:-1:-1;;;6205:1625:8:o;842:35::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;842:35:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;842:35:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;842:35:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;842:35:8;;-1:-1:-1;842:35:8;;;;-1:-1:-1;;;;;842:35:8;;;;;;;:::o;2419:1760::-;3341:12;-1:-1:-1;;;;;2741:24:8;;;;2733:33;;;;;;-1:-1:-1;;;;;2784:26:8;;;;2776:35;;;;;;2829:22;:10;:20;:22::i;:::-;:56;;;;;2882:3;2855:24;:10;:22;:24::i;:::-;:30;2829:56;2821:65;;;;;;;;2904:25;:13;:23;:25::i;:::-;:62;;;;;2963:3;2933:27;:13;:25;:27::i;:::-;:33;2904:62;2896:71;;;;;;;;2985:32;:20;:30;:32::i;:::-;:76;;;;;3058:3;3021:34;:20;:32;:34::i;:::-;:40;2985:76;2977:85;;;;;;;;3080:29;:17;:27;:29::i;:::-;:70;;;;;3147:3;3113:31;:17;:29;:31::i;:::-;:37;3080:70;3072:79;;;;;;;;3228:12;-1:-1:-1;;;;;3169:71:8;:42;3186:12;3200:10;3169:16;:42::i;:::-;:55;;;-1:-1:-1;;;;;3169:55:8;:71;;3161:80;;;;;;3260:42;3277:12;3291:10;3260:16;:42::i;:::-;-1:-1:-1;;;;;3260:69:8;;;;;;:57;;;;;:69;;;;;;;;3259:70;3251:79;;;;;;3363:14;:21;;;;3341:44;;3444:5;3396:19;:33;3416:12;-1:-1:-1;;;;;3396:33:8;-1:-1:-1;;;;;3396:33:8;;;;;;;;;;;;:45;3430:10;-1:-1:-1;;;;;3396:45:8;-1:-1:-1;;;;;3396:45:8;;;;;;;;;;;;;:53;;;;;;;;;;;;;;;;;;3490:14;:23;;;;;;;;;;;:::i;:::-;3460:20;;:54;;;;;;;;;;;;;;;;;;3525:18;:32;3544:12;-1:-1:-1;;;;;3525:32:8;-1:-1:-1;;;;;3525:32:8;;;;;;;;;;;;3563:10;3525:49;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;3525:49:8;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3525:49:8;;;;;-1:-1:-1;;;;;3525:49:8;;;;;;;3636:4;3585:14;3600:5;3585:21;;;;;;;;;;;;;;;;;;;;;;:36;;:48;3622:10;-1:-1:-1;;;;;3585:48:8;-1:-1:-1;;;;;3585:48:8;;;;;;;;;;;;;:55;;;;;;;;;;;;;;;;;;3679:4;;3650:14;3665:5;3650:21;;;;;;;;;;;;;;;;;;;;:33;;:21;;;;;;:33;:::i;:::-;;3724:6;;3693:14;3708:5;3693:21;;;;;;;;;;;;;;;;;;;;;;:28;;:37;;;;;;;:::i;:::-;;3773:8;3740:14;3755:5;3740:21;;;;;;;;;;;;;;;;;;;;;;:30;;;:41;;;;;;;;;;;;;;;;;;3826:10;3791:14;3806:5;3791:21;;;;;;;;;;;;;;;;;;;;;;:32;;:45;;;;3884:13;3846:14;3861:5;3846:21;;;;;;;;;;;;;;;;;;;;;;:35;;:51;;;;3952:20;3907:14;3922:5;3907:21;;;;;;;;;;;;;;;;;;;;;;:42;;:65;;;;4024:17;3982:14;3997:5;3982:21;;;;;;;;;;;;;;;;;;;;;;:39;;:59;;;;4088:12;4051:14;4066:5;4051:21;;;;;;;;;;;;;;;;;;;;;;:34;;;:49;;;;;-1:-1:-1;;;;;4051:49:8;;;;;-1:-1:-1;;;;;4051:49:8;;;;;;4147:10;-1:-1:-1;;;;;4116:56:8;4133:12;-1:-1:-1;;;;;4116:56:8;;4159:4;;4165:6;;4116:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4116:56:8;;;;;;;;;;;;;;-1:-1:-1;4116:56:8;;-1:-1:-1;;;;;;;4116:56:8;2419:1760;;;;;;;;;;;;:::o;8894:188::-;8988:7;9014:44;9031:12;9045;9014:16;:44::i;:::-;:61;;;-1:-1:-1;;;;;9014:61:8;;-1:-1:-1;8894:188:8;;;;;:::o;9214:97::-;9295:9;;-1:-1:-1;;;;;9295:9:8;9214:97;;:::o;595:32::-;;;-1:-1:-1;;;;;595:32:8;;:::o;53:19:26:-;;;;:::o;1018:28:8:-;;;;;;-1:-1:-1;;;;;1018:28:8;;:::o;4333:1368::-;4673:19;4805:31;4952:8;5068:21;5414:13;487:1:28;1128:14;;:39;1120:48;;;;;;;;584:1;1174:40;;4437:1:8;4428:10;;4420:19;;;;;;-1:-1:-1;;;;;4457:26:8;;;;4449:35;;;;;;4561:12;-1:-1:-1;;;;;4502:71:8;:42;4519:12;4533:10;4502:16;:42::i;:::-;:55;;;-1:-1:-1;;;;;4502:55:8;:71;4494:80;;;;;;4592:42;4609:12;4623:10;4592:16;:42::i;:::-;4650:10;4592:69;;;;:57;;;;;:69;;;;;;;;4584:78;;;;;;;;4741:42;;;;;;4757:10;4741:42;;;;4777:4;4741:42;;;;;;4709:12;;-1:-1:-1;4787:6:8;;-1:-1:-1;;;;;4741:15:8;;;;;:42;;;;;;;;;;;;;;;-1:-1:-1;4741:15:8;:42;;;5:2:-1;;;;30:1;27;20:12;5:2;4741:42:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4741:42:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4741:42:8;:52;;4733:61;;;;;;4839:42;4856:12;4870:10;4839:16;:42::i;:::-;4805:76;;4920:11;:20;;;;;;;;;;;;4900:40;;:5;-1:-1:-1;;;;;4900:14:8;;:16;;;;;-1:-1:-1;;;4900:16:8;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4900:16:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4900:16:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4900:16:8;:40;;;4892:49;;;;;;4988:1;4963:11;:22;;;:26;:95;;5057:1;4963:95;;;5019:22;;;;5004:38;;:6;;:38;:14;:38;:::i;:::-;4952:106;-1:-1:-1;5092:15:8;:6;4952:106;5092:15;:10;:15;:::i;:::-;5146:9;;5068:39;;-1:-1:-1;5118:56:8;;5139:5;;-1:-1:-1;;;;;5146:9:8;5068:39;5118:20;:56::i;:::-;5212:13;;5184:47;;5205:5;;5212:13;;;-1:-1:-1;;;;;5212:13:8;5227:3;5184:20;:47::i;:::-;5276:31;;;;:53;;5312:16;5276:53;:35;:53;:::i;:::-;5242:31;;;:87;5344:9;;:40;;;-1:-1:-1;;;;;5344:40:8;;-1:-1:-1;;;;;5344:40:8;;;;;;;;;5396:1;;5344:9;;;;:26;;:40;;;;;;;;;;;;;;;5396:1;5344:9;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;5344:40:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5344:40:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5344:40:8;-1:-1:-1;;;;;5344:54:8;;5340:242;;;5479:20;;;;5441:11;;5459:18;;;;5479:20;;5430:70;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;5430:70:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5430:70:8;;;;;;;;-1:-1:-1;;5430:70:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;5515:9:8;;:56;;;;;;-1:-1:-1;;;;;5515:56:8;;;;;;;;;;;;;;;;5414:86;;-1:-1:-1;5515:9:8;;;:27;;:56;;;;;:9;;:56;;;;;;;;:9;;:56;;;5:2:-1;;;;30:1;27;20:12;5:2;5515:56:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5515:56:8;;;;5340:242;5653:9;;:40;;;-1:-1:-1;;;;;5653:40:8;;-1:-1:-1;;;;;5597:97:8;;;5653:40;;;;;;;;5623:10;;5597:97;;5635:16;;5653:9;;;;:26;;:40;;;;;;;;;;;;;;;-1:-1:-1;5653:9:8;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;5653:40:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5653:40:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5653:40:8;5597:97;;;;;;-1:-1:-1;;;;;5597:97:8;;;5653:40;5597:97;;;;;;;;;;;;-1:-1:-1;;487:1:28;1227:14;:38;-1:-1:-1;;;;;4333:1368:8:o;1001:111:31:-;1077:5;;1058:25;;-1:-1:-1;;;;;1077:5:31;;;;1058:25;;1077:5;;1058:25;1089:5;:18;;-1:-1:-1;;1089:18:31;;;1001:111::o;9088:120:8:-;-1:-1:-1;;;;;9176:25:8;;;;;;:18;:25;;;;;;;;;9169:32;;;;;;;;;;;;;;;;;9148:9;;9169:32;;;9176:25;9169:32;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9169:32:8;;;;;;;;;;;;;;;;;;;;;;;9088:120;;;:::o;238:20:31:-;;;-1:-1:-1;;;;;238:20:31;;:::o;978:34:8:-;;;;;;:::o;7836:1052::-;8434:12;;7933:17;;;7925:26;;;;;;-1:-1:-1;;;;;7969:26:8;;;;7961:35;;;;;;8014:9;;:40;;;-1:-1:-1;;;;;8014:40:8;;-1:-1:-1;;;;;8014:40:8;;;;;;;;;8066:1;;8014:9;;;;:26;;:40;;;;;;;;;;;;;;;8066:1;8014:9;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;8014:40:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8014:40:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8014:40:8;-1:-1:-1;;;;;8014:54:8;;;8006:63;;;;;;8158:1;8087:42;8104:12;8118:10;8087:16;:42::i;:::-;:59;;;-1:-1:-1;;;;;8087:59:8;:73;;8079:82;;;;;;8179:42;8196:12;8210:10;8179:16;:42::i;:::-;8237:10;8179:69;;;;:57;;;;;:69;;;;;;;;:77;;:69;:77;8171:86;;;;;;8341:81;8408:13;8341:42;8358:12;8372:10;8341:16;:42::i;:81::-;8275:42;8292:12;8306:10;8275:16;:42::i;:::-;:62;;;:147;;8267:156;;;;;;8449:9;;:40;;;-1:-1:-1;;;;;8449:40:8;;-1:-1:-1;;;;;8449:40:8;;;;;;;;;:9;;;;;:26;;:40;;;;;;;;;;;;;;:9;;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;8449:40:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8449:40:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8449:40:8;;-1:-1:-1;8525:42:8;8542:12;8556:10;8525:16;:42::i;:::-;:59;;;-1:-1:-1;;;;;8525:59:8;;-1:-1:-1;8660:94:8;8740:13;8660:42;8677:12;8691:10;8660:16;:42::i;:94::-;8595:42;8612:12;8626:10;8595:16;:42::i;:::-;:62;;:159;8765:39;;;;;;-1:-1:-1;;;;;8765:39:8;;;;;;;;;;;;;8802:1;8765:39;;;;;;;;:10;;;;;;:39;;;;;;;;;;;;;;;;;;:10;:39;;;5:2:-1;;;;30:1;27;20:12;5:2;8765:39:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8765:39:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;8820:61:8;;;;;;;;8855:10;;-1:-1:-1;;;;;8820:61:8;;;;;;;;8765:39;8820:61;;;7836:1052;;;;:::o;633:35::-;;;-1:-1:-1;;;;;633:35:8;;:::o;761:75::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1274:103:31:-;1343:29;1362:9;1343:18;:29::i;:::-;1274:103;:::o;9317:208:8:-;-1:-1:-1;;;;;9470:33:8;;;9410:26;9470:33;;;:19;:33;;;;;;;;:47;;;;;;;;;;;;9455:14;:63;;:14;;9470:47;;;9455:63;;;;;;;;;;;;;;;;9448:70;;9317:208;;;;:::o;1238:128:30:-;1319:7;;;1339;;;;1332:15;;;406:142:14;464:4;488:13;498:2;488:9;:13::i;:::-;480:22;;;;;;;;520:21;535:5;:3;:5::i;:::-;520:10;:2;527;520:10;:6;:10;:::i;:::-;:14;:21;:14;:21;:::i;:::-;513:28;406:142;-1:-1:-1;;;406:142:14:o;554:107::-;605:4;634:5;:3;:5::i;:::-;628:2;:11;;:26;;;;;649:5;:3;:5::i;:::-;643:2;:11;;621:33;554:107;-1:-1:-1;;554:107:14:o;806:139::-;859:4;883:13;893:2;883:9;:13::i;:::-;875:22;;;;;;;;915:23;928:9;:7;:9::i;:::-;915:2;;922;:15;915:23;:6;:23;:::i;1060:116:30:-;1120:7;1142:8;;;;1135:16;;;;-1:-1:-1;1164:7:30;;;1060:116::o;5782:417:8:-;5970:20;5993:30;6017:5;5993;-1:-1:-1;;;;;5993:15:8;;6009:2;5993:19;;;;;-1:-1:-1;;;5993:19:8;;;;;;;-1:-1:-1;;;;;5993:19:8;-1:-1:-1;;;;;5993:19:8;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5993:19:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5993:19:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5993:19:8;;:30;:23;:30;:::i;:::-;6034:41;;;;;;6053:10;6034:41;;;;-1:-1:-1;;;;;6034:41:8;;;;;;;;;;;;;;;5970:53;;-1:-1:-1;6034:18:8;;;;;;:41;;;;;;;;;;;;;;;-1:-1:-1;6034:18:8;:41;;;5:2:-1;;;;30:1;27;20:12;5:2;6034:41:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6034:41:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;6153:19:8;;;;;;-1:-1:-1;;;;;6153:19:8;;;;;;;;;6176:15;;6153;;;;;:19;;;;;6034:41;;6153:19;;;;;;;-1:-1:-1;6153:15:8;:19;;;5:2:-1;;;;30:1;27;20:12;5:2;6153:19:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6153:19:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6153:19:8;:38;6146:46;;;;5782:417;;;;:::o;1512:171:31:-;-1:-1:-1;;;;;1582:23:31;;;;1574:32;;;;;;1638:5;;1617:38;;-1:-1:-1;;;;;1617:38:31;;;;1638:5;;1617:38;;1638:5;;1617:38;1661:5;:17;;-1:-1:-1;;1661:17:31;-1:-1:-1;;;;;1661:17:31;;;;;;;;;;1512:171::o;335:65:14:-;371:4;392:5;:3;:5::i;:::-;386:2;:11;379:18;;335:65;:::o;203:380:30:-;263:9;489:7;;485:36;;;-1:-1:-1;513:1:30;506:8;;485:36;-1:-1:-1;531:7:30;;;536:2;531;:7;551:6;;;;;;;;:12;544:20;;;665:283;725:7;941:2;936;:7;;;;;;;;;665:283;-1:-1:-1;;;665:283:30:o;275:55:14:-;311:4;275:55;:::o;139:59::-;194:1;139:59;:::o;203:67::-;239:4;258:9;:7;:9::i;:::-;254:1;:13;247:20;;203:67;:::o;101:336:9:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;101:336:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;101:336:9;;;-1:-1:-1;101:336:9;:::i;:::-;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;101:336:9;;;;;-1:-1:-1;;101:336:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;101:336:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i", - "source": "pragma solidity ^0.4.24;\n\nimport \"./W12Lister.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 constructor(\n uint version,\n IW12CrowdsaleFactory _factory,\n ITokenExchanger _exchanger\n ) W12Lister(version, msg.sender, _factory, _exchanger) public { }\n}\n", + "bytecode": "0x", + "deployedBytecode": "0x", + "sourceMap": "", + "deployedSourceMap": "", + "source": "pragma solidity ^0.4.24;\n\nimport \"./W12Lister.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", "sourcePath": "/home/circleci/code/contracts/W12ListerStub.sol", "ast": { "absolutePath": "/home/circleci/code/contracts/W12ListerStub.sol", "exportedSymbols": { "W12ListerStub": [ - 4301 + 1075 ] }, - "id": 4302, + "id": 1076, "nodeType": "SourceUnit", "nodes": [ { - "id": 4275, + "id": 1060, "literals": [ "solidity", "^", @@ -522,27 +634,27 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:9" + "src": "0:24:2" }, { "absolutePath": "/home/circleci/code/contracts/W12Lister.sol", "file": "./W12Lister.sol", - "id": 4276, + "id": 1061, "nodeType": "ImportDirective", - "scope": 4302, - "sourceUnit": 4274, - "src": "26:25:9", + "scope": 1076, + "sourceUnit": 1059, + "src": "26:25:2", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/token/exchanger/ITokenExchanger.sol", "file": "./token/exchanger/ITokenExchanger.sol", - "id": 4277, + "id": 1062, "nodeType": "ImportDirective", - "scope": 4302, - "sourceUnit": 6188, - "src": "52:47:9", + "scope": 1076, + "sourceUnit": 8749, + "src": "52:47:2", "symbolAliases": [], "unitAlias": "" }, @@ -552,292 +664,141 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 4278, + "id": 1063, "name": "W12Lister", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4273, - "src": "127:9:9", + "referencedDeclaration": 1058, + "src": "127:9:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_W12Lister_$4273", + "typeIdentifier": "t_contract$_W12Lister_$1058", "typeString": "contract W12Lister" } }, - "id": 4279, + "id": 1064, "nodeType": "InheritanceSpecifier", - "src": "127:9:9" + "src": "127:9:2" } ], "contractDependencies": [ - 4273, - 6509, - 6690, - 6940 + 1058, + 9070, + 9331, + 9438, + 9688 ], "contractKind": "contract", "documentation": null, - "fullyImplemented": true, - "id": 4301, + "fullyImplemented": false, + "id": 1075, "linearizedBaseContracts": [ - 4301, - 4273, - 6690, - 6940, - 6509 + 1075, + 1058, + 9331, + 9688, + 9438, + 9070 ], "name": "W12ListerStub", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 4282, + "id": 1067, "nodeType": "Block", - "src": "233:18:9", + "src": "233:18:2", "statements": [ { - "id": 4281, + "id": 1066, "nodeType": "PlaceholderStatement", - "src": "243:1:9" + "src": "243:1:2" } ] }, "documentation": "@dev Allows for any account besides the owner.", - "id": 4283, + "id": 1068, "name": "onlyOwner", "nodeType": "ModifierDefinition", "parameters": { - "id": 4280, + "id": 1065, "nodeType": "ParameterList", "parameters": [], - "src": "230:2:9" + "src": "230:2:2" }, - "src": "212:39:9", + "src": "212:39:2", "visibility": "internal" }, { "body": { - "id": 4299, + "id": 1073, "nodeType": "Block", - "src": "432:3:9", - "statements": [] + "src": "289:18:2", + "statements": [ + { + "id": 1072, + "nodeType": "PlaceholderStatement", + "src": "299:1:2" + } + ] }, "documentation": null, - "id": 4300, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 4292, - "name": "version", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4285, - "src": "382:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4293, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "391:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4294, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "391:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4295, - "name": "_factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4287, - "src": "403:8:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4453", - "typeString": "contract IW12CrowdsaleFactory" - } - }, - { - "argumentTypes": null, - "id": 4296, - "name": "_exchanger", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4289, - "src": "413:10:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$6187", - "typeString": "contract ITokenExchanger" - } - } - ], - "id": 4297, - "modifierName": { - "argumentTypes": null, - "id": 4291, - "name": "W12Lister", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4273, - "src": "372:9:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_W12Lister_$4273_$", - "typeString": "type(contract W12Lister)" - } - }, - "nodeType": "ModifierInvocation", - "src": "372:52:9" - } - ], - "name": "", - "nodeType": "FunctionDefinition", + "id": 1074, + "name": "onlyRole", + "nodeType": "ModifierDefinition", "parameters": { - "id": 4290, + "id": 1071, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4285, - "name": "version", + "id": 1070, + "name": "_role", "nodeType": "VariableDeclaration", - "scope": 4300, - "src": "278:12:9", + "scope": 1074, + "src": "275:12:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" }, "typeName": { - "id": 4284, - "name": "uint", + "id": 1069, + "name": "string", "nodeType": "ElementaryTypeName", - "src": "278:4:9", + "src": "275:6:2", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4287, - "name": "_factory", - "nodeType": "VariableDeclaration", - "scope": 4300, - "src": "300:29:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4453", - "typeString": "contract IW12CrowdsaleFactory" - }, - "typeName": { - "contractScope": null, - "id": 4286, - "name": "IW12CrowdsaleFactory", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4453, - "src": "300:20:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4453", - "typeString": "contract IW12CrowdsaleFactory" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4289, - "name": "_exchanger", - "nodeType": "VariableDeclaration", - "scope": 4300, - "src": "339:26:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$6187", - "typeString": "contract ITokenExchanger" - }, - "typeName": { - "contractScope": null, - "id": 4288, - "name": "ITokenExchanger", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6187, - "src": "339:15:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$6187", - "typeString": "contract ITokenExchanger" + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" } }, "value": null, "visibility": "internal" } ], - "src": "268:103:9" - }, - "payable": false, - "returnParameters": { - "id": 4298, - "nodeType": "ParameterList", - "parameters": [], - "src": "432:0:9" + "src": "274:14:2" }, - "scope": 4301, - "src": "257:178:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" + "src": "257:50:2", + "visibility": "internal" } ], - "scope": 4302, - "src": "101:336:9" + "scope": 1076, + "src": "101:208:2" } ], - "src": "0:438:9" + "src": "0:310:2" }, "legacyAST": { "absolutePath": "/home/circleci/code/contracts/W12ListerStub.sol", "exportedSymbols": { "W12ListerStub": [ - 4301 + 1075 ] }, - "id": 4302, + "id": 1076, "nodeType": "SourceUnit", "nodes": [ { - "id": 4275, + "id": 1060, "literals": [ "solidity", "^", @@ -845,27 +806,27 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:9" + "src": "0:24:2" }, { "absolutePath": "/home/circleci/code/contracts/W12Lister.sol", "file": "./W12Lister.sol", - "id": 4276, + "id": 1061, "nodeType": "ImportDirective", - "scope": 4302, - "sourceUnit": 4274, - "src": "26:25:9", + "scope": 1076, + "sourceUnit": 1059, + "src": "26:25:2", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/home/circleci/code/contracts/token/exchanger/ITokenExchanger.sol", "file": "./token/exchanger/ITokenExchanger.sol", - "id": 4277, + "id": 1062, "nodeType": "ImportDirective", - "scope": 4302, - "sourceUnit": 6188, - "src": "52:47:9", + "scope": 1076, + "sourceUnit": 8749, + "src": "52:47:2", "symbolAliases": [], "unitAlias": "" }, @@ -875,279 +836,128 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 4278, + "id": 1063, "name": "W12Lister", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4273, - "src": "127:9:9", + "referencedDeclaration": 1058, + "src": "127:9:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_W12Lister_$4273", + "typeIdentifier": "t_contract$_W12Lister_$1058", "typeString": "contract W12Lister" } }, - "id": 4279, + "id": 1064, "nodeType": "InheritanceSpecifier", - "src": "127:9:9" + "src": "127:9:2" } ], "contractDependencies": [ - 4273, - 6509, - 6690, - 6940 + 1058, + 9070, + 9331, + 9438, + 9688 ], "contractKind": "contract", "documentation": null, - "fullyImplemented": true, - "id": 4301, + "fullyImplemented": false, + "id": 1075, "linearizedBaseContracts": [ - 4301, - 4273, - 6690, - 6940, - 6509 + 1075, + 1058, + 9331, + 9688, + 9438, + 9070 ], "name": "W12ListerStub", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 4282, + "id": 1067, "nodeType": "Block", - "src": "233:18:9", + "src": "233:18:2", "statements": [ { - "id": 4281, + "id": 1066, "nodeType": "PlaceholderStatement", - "src": "243:1:9" + "src": "243:1:2" } ] }, "documentation": "@dev Allows for any account besides the owner.", - "id": 4283, + "id": 1068, "name": "onlyOwner", "nodeType": "ModifierDefinition", "parameters": { - "id": 4280, + "id": 1065, "nodeType": "ParameterList", "parameters": [], - "src": "230:2:9" + "src": "230:2:2" }, - "src": "212:39:9", + "src": "212:39:2", "visibility": "internal" }, { "body": { - "id": 4299, + "id": 1073, "nodeType": "Block", - "src": "432:3:9", - "statements": [] + "src": "289:18:2", + "statements": [ + { + "id": 1072, + "nodeType": "PlaceholderStatement", + "src": "299:1:2" + } + ] }, "documentation": null, - "id": 4300, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 4292, - "name": "version", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4285, - "src": "382:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4293, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "391:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4294, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "391:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4295, - "name": "_factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4287, - "src": "403:8:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4453", - "typeString": "contract IW12CrowdsaleFactory" - } - }, - { - "argumentTypes": null, - "id": 4296, - "name": "_exchanger", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4289, - "src": "413:10:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$6187", - "typeString": "contract ITokenExchanger" - } - } - ], - "id": 4297, - "modifierName": { - "argumentTypes": null, - "id": 4291, - "name": "W12Lister", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4273, - "src": "372:9:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_W12Lister_$4273_$", - "typeString": "type(contract W12Lister)" - } - }, - "nodeType": "ModifierInvocation", - "src": "372:52:9" - } - ], - "name": "", - "nodeType": "FunctionDefinition", + "id": 1074, + "name": "onlyRole", + "nodeType": "ModifierDefinition", "parameters": { - "id": 4290, + "id": 1071, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4285, - "name": "version", + "id": 1070, + "name": "_role", "nodeType": "VariableDeclaration", - "scope": 4300, - "src": "278:12:9", + "scope": 1074, + "src": "275:12:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" }, "typeName": { - "id": 4284, - "name": "uint", + "id": 1069, + "name": "string", "nodeType": "ElementaryTypeName", - "src": "278:4:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4287, - "name": "_factory", - "nodeType": "VariableDeclaration", - "scope": 4300, - "src": "300:29:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4453", - "typeString": "contract IW12CrowdsaleFactory" - }, - "typeName": { - "contractScope": null, - "id": 4286, - "name": "IW12CrowdsaleFactory", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4453, - "src": "300:20:9", + "src": "275:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_IW12CrowdsaleFactory_$4453", - "typeString": "contract IW12CrowdsaleFactory" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4289, - "name": "_exchanger", - "nodeType": "VariableDeclaration", - "scope": 4300, - "src": "339:26:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$6187", - "typeString": "contract ITokenExchanger" - }, - "typeName": { - "contractScope": null, - "id": 4288, - "name": "ITokenExchanger", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6187, - "src": "339:15:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ITokenExchanger_$6187", - "typeString": "contract ITokenExchanger" + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" } }, "value": null, "visibility": "internal" } ], - "src": "268:103:9" - }, - "payable": false, - "returnParameters": { - "id": 4298, - "nodeType": "ParameterList", - "parameters": [], - "src": "432:0:9" + "src": "274:14:2" }, - "scope": 4301, - "src": "257:178:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" + "src": "257:50:2", + "visibility": "internal" } ], - "scope": 4302, - "src": "101:336:9" + "scope": 1076, + "src": "101:208:2" } ], - "src": "0:438:9" + "src": "0:310:2" }, "compiler": { "name": "solc", @@ -1162,5 +972,5 @@ } }, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-02T12:05:06.474Z" + "updatedAt": "2018-10-22T08:01:07.092Z" } \ No newline at end of file diff --git a/build/contracts/WToken.json b/build/contracts/WToken.json index 9a4c9e0a..d3a2862f 100644 --- a/build/contracts/WToken.json +++ b/build/contracts/WToken.json @@ -567,24 +567,24 @@ "type": "function" } ], - "bytecode": "0x60806040523480156200001157600080fd5b50604051620014f4380380620014f48339810160409081528151602080840151928401519184018051909493909301928491849184916200005891600091860190620000bf565b5081516200006e906001906020850190620000bf565b506002805433610100810261010060a860020a031960ff90951660ff199384161794909416939093179091556000918252600860205260409091208054909116600117905550620001649350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200010257805160ff191683800117855562000132565b8280016001018555821562000132579182015b828111156200013257825182559160200191906001019062000115565b506200014092915062000144565b5090565b6200016191905b808211156200014057600081556001016200014b565b90565b61138080620001746000396000f3006080604052600436106101325763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610137578063095ea7b3146101c157806318160ddd146101f957806323b872dd1461022057806327e235e31461024a578063313ce5671461026b57806342966c68146102965780634afbf5ee146102b057806366188463146102d457806370a08231146102f8578063715018a61461031957806379cc67901461032e5780638da5cb5b1461035257806395d89b41146103835780639d2e477714610398578063a9059cbb146103c5578063ba0e0f5e146103e9578063d0047acf1461040a578063d294cb0f14610437578063d73dd62314610458578063d88b86761461047c578063dd62ed3e1461049d578063f2fde38b146104c4575b600080fd5b34801561014357600080fd5b5061014c6104e5565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561018657818101518382015260200161016e565b50505050905090810190601f1680156101b35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101cd57600080fd5b506101e5600160a060020a0360043516602435610573565b604080519115158252519081900360200190f35b34801561020557600080fd5b5061020e6105d9565b60408051918252519081900360200190f35b34801561022c57600080fd5b506101e5600160a060020a03600435811690602435166044356105df565b34801561025657600080fd5b5061020e600160a060020a036004351661073f565b34801561027757600080fd5b50610280610751565b6040805160ff9092168252519081900360200190f35b3480156102a257600080fd5b506102ae60043561075a565b005b3480156102bc57600080fd5b5061020e600160a060020a0360043516602435610767565b3480156102e057600080fd5b506101e5600160a060020a0360043516602435610784565b34801561030457600080fd5b5061020e600160a060020a0360043516610873565b34801561032557600080fd5b506102ae61088e565b34801561033a57600080fd5b506102ae600160a060020a0360043516602435610906565b34801561035e57600080fd5b5061036761099c565b60408051600160a060020a039092168252519081900360200190f35b34801561038f57600080fd5b5061014c6109b0565b3480156103a457600080fd5b506101e5600160a060020a036004351660243563ffffffff60443516610a0a565b3480156103d157600080fd5b506101e5600160a060020a0360043516602435610ab6565b3480156103f557600080fd5b506102ae600160a060020a0360043516610b89565b34801561041657600080fd5b506101e5600160a060020a036004351660243563ffffffff60443516610bc6565b34801561044357600080fd5b5061020e600160a060020a0360043516610d0c565b34801561046457600080fd5b506101e5600160a060020a0360043516602435610e11565b34801561048857600080fd5b506102ae600160a060020a0360043516610eaa565b3480156104a957600080fd5b5061020e600160a060020a0360043581169060243516610eea565b3480156104d057600080fd5b506102ae600160a060020a0360043516610f15565b6000805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561056b5780601f106105405761010080835404028352916020019161056b565b820191906000526020600020905b81548152906001019060200180831161054e57829003601f168201915b505050505081565b336000818152600360209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60055490565b60006105ea84610f3a565b600160a060020a03831615156105ff57600080fd5b61060884610d0c565b82111561061457600080fd5b600160a060020a038416600090815260036020908152604080832033845290915290205482111561064457600080fd5b600160a060020a03841660009081526004602052604090205461066d908363ffffffff6110a916565b600160a060020a0380861660009081526004602052604080822093909355908516815220546106a2908363ffffffff6110bb16565b600160a060020a0380851660009081526004602090815260408083209490945591871681526003825282812033825290915220546106e6908363ffffffff6110a916565b600160a060020a0380861660008181526003602090815260408083203384528252918290209490945580518681529051928716939192600080516020611335833981519152929181900390910190a35060019392505050565b60046020526000908152604090205481565b60025460ff1681565b61076433826110ce565b50565b600660209081526000928352604080842090915290825290205481565b336000908152600360209081526040808320600160a060020a03861684529091528120548083106107d857336000908152600360209081526040808320600160a060020a038816845290915281205561080d565b6107e8818463ffffffff6110a916565b336000908152600360209081526040808320600160a060020a03891684529091529020555b336000818152600360209081526040808320600160a060020a0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b600160a060020a031660009081526004602052604090205490565b6002546101009004600160a060020a031633146108aa57600080fd5b600254604051610100909104600160a060020a0316907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26002805474ffffffffffffffffffffffffffffffffffffffff0019169055565b600160a060020a038216600090815260036020908152604080832033845290915290205481111561093657600080fd5b600160a060020a038216600090815260036020908152604080832033845290915290205461096a908263ffffffff6110a916565b600160a060020a038316600090815260036020908152604080832033845290915290205561099882826110ce565b5050565b6002546101009004600160a060020a031681565b60018054604080516020600284861615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561056b5780601f106105405761010080835404028352916020019161056b565b3360008181526008602052604081205490919060ff161515610a2b57600080fd5b610a358585610ab6565b50428363ffffffff161115610a5757610a576000868563ffffffff16876111b6565b60408051338152600160a060020a038716602082015280820186905263ffffffff8516606082015290517f5075049792a88eedfe4e60bb3ffeac77b4fa7f03108b81fb0b460161b983e2009181900360800190a1506001949350505050565b6000610ac133610f3a565b600160a060020a0383161515610ad657600080fd5b610adf33610d0c565b821115610aeb57600080fd5b33600090815260046020526040902054610b0b908363ffffffff6110a916565b3360009081526004602052604080822092909255600160a060020a03851681522054610b3d908363ffffffff6110bb16565b600160a060020a0384166000818152600460209081526040918290209390935580518581529051919233926000805160206113358339815191529281900390910190a350600192915050565b6002546101009004600160a060020a03163314610ba557600080fd5b600160a060020a03166000908152600860205260409020805460ff19169055565b3360008181526008602052604081205490919060ff161515610be757600080fd5b600554610bfa818663ffffffff6110bb16565b11610c0457600080fd5b428363ffffffff161115610c2557610c256000868563ffffffff16876111b6565b600160a060020a038516600090815260046020526040902054610c4e908563ffffffff6110bb16565b600160a060020a038616600090815260046020526040902055600554610c7a908563ffffffff6110bb16565b600555604080518581529051600160a060020a038716916000916000805160206113358339815191529181900360200190a36040805160008152600160a060020a038716602082015280820186905263ffffffff8516606082015290517f5075049792a88eedfe4e60bb3ffeac77b4fa7f03108b81fb0b460161b983e2009181900360800190a1506001949350505050565b600160a060020a038116600090815260046020908152604080832054600683528184208480529092528220549091901515610d4657610e0b565b5060005b600160a060020a038316600090815260076020526040902054811015610e0b57600160a060020a0383166000908152600760205260409020805442919083908110610d9157fe5b9060005260206000200154101515610e0357600160a060020a0383166000908152600660209081526040808320600790925282208054610e0093919085908110610dd757fe5b9060005260206000200154815260200190815260200160002054836110a990919063ffffffff16565b91505b600101610d4a565b50919050565b336000908152600360209081526040808320600160a060020a0386168452909152812054610e45908363ffffffff6110bb16565b336000818152600360209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b6002546101009004600160a060020a03163314610ec657600080fd5b600160a060020a03166000908152600860205260409020805460ff19166001179055565b600160a060020a03918216600090815260036020908152604080832093909416825291909152205490565b6002546101009004600160a060020a03163314610f3157600080fd5b610764816112ab565b600160a060020a03811660009081526006602090815260408083208380529091528120541515610f6957610998565b5060005b600160a060020a03821660009081526007602052604090205481101561099857600160a060020a0382166000908152600760205260409020805442919083908110610fb457fe5b906000526020600020015410156110a157600160a060020a038216600090815260066020908152604080832060079092528220805461103f93919085908110610ff957fe5b60009182526020808320909101548352828101939093526040918201812054600160a060020a03871682526006845282822082805290935220549063ffffffff6110a916565b600160a060020a0383166000818152600660209081526040808320838052808352818420959095559282526007905290812080549192918391908590811061108357fe5b90600052602060002001548152602001908152602001600020819055505b600101610f6d565b6000828211156110b557fe5b50900390565b818101828110156110c857fe5b92915050565b6110d782610f3a565b6110e082610d0c565b8111156110ec57600080fd5b600160a060020a038216600090815260046020526040902054611115908263ffffffff6110a916565b600160a060020a038316600090815260046020526040902055600554611141908263ffffffff6110a916565b600555604080518281529051600160a060020a038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a2604080518281529051600091600160a060020a038516916000805160206113358339815191529181900360200190a35050565b600160a060020a03831660009081526006602090815260408083208380529091529020546111ea908263ffffffff6110bb16565b600160a060020a0384166000908152600660209081526040808320838052909152808220929092558381522054151561124957600160a060020a0383166000908152600760209081526040822080546001810182559083529120018290555b600160a060020a038316600090815260066020908152604080832085845290915290205461127d908263ffffffff6110bb16565b600160a060020a03909316600090815260066020908152604080832094835293905291909120919091555050565b600160a060020a03811615156112c057600080fd5b600254604051600160a060020a0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360028054600160a060020a039092166101000274ffffffffffffffffffffffffffffffffffffffff00199092169190911790555600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582032e10203dcbab0ee1413110ee779200c5145d19d538d974c007e2d373697c5e70029", - "deployedBytecode": "0x6080604052600436106101325763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610137578063095ea7b3146101c157806318160ddd146101f957806323b872dd1461022057806327e235e31461024a578063313ce5671461026b57806342966c68146102965780634afbf5ee146102b057806366188463146102d457806370a08231146102f8578063715018a61461031957806379cc67901461032e5780638da5cb5b1461035257806395d89b41146103835780639d2e477714610398578063a9059cbb146103c5578063ba0e0f5e146103e9578063d0047acf1461040a578063d294cb0f14610437578063d73dd62314610458578063d88b86761461047c578063dd62ed3e1461049d578063f2fde38b146104c4575b600080fd5b34801561014357600080fd5b5061014c6104e5565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561018657818101518382015260200161016e565b50505050905090810190601f1680156101b35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101cd57600080fd5b506101e5600160a060020a0360043516602435610573565b604080519115158252519081900360200190f35b34801561020557600080fd5b5061020e6105d9565b60408051918252519081900360200190f35b34801561022c57600080fd5b506101e5600160a060020a03600435811690602435166044356105df565b34801561025657600080fd5b5061020e600160a060020a036004351661073f565b34801561027757600080fd5b50610280610751565b6040805160ff9092168252519081900360200190f35b3480156102a257600080fd5b506102ae60043561075a565b005b3480156102bc57600080fd5b5061020e600160a060020a0360043516602435610767565b3480156102e057600080fd5b506101e5600160a060020a0360043516602435610784565b34801561030457600080fd5b5061020e600160a060020a0360043516610873565b34801561032557600080fd5b506102ae61088e565b34801561033a57600080fd5b506102ae600160a060020a0360043516602435610906565b34801561035e57600080fd5b5061036761099c565b60408051600160a060020a039092168252519081900360200190f35b34801561038f57600080fd5b5061014c6109b0565b3480156103a457600080fd5b506101e5600160a060020a036004351660243563ffffffff60443516610a0a565b3480156103d157600080fd5b506101e5600160a060020a0360043516602435610ab6565b3480156103f557600080fd5b506102ae600160a060020a0360043516610b89565b34801561041657600080fd5b506101e5600160a060020a036004351660243563ffffffff60443516610bc6565b34801561044357600080fd5b5061020e600160a060020a0360043516610d0c565b34801561046457600080fd5b506101e5600160a060020a0360043516602435610e11565b34801561048857600080fd5b506102ae600160a060020a0360043516610eaa565b3480156104a957600080fd5b5061020e600160a060020a0360043581169060243516610eea565b3480156104d057600080fd5b506102ae600160a060020a0360043516610f15565b6000805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561056b5780601f106105405761010080835404028352916020019161056b565b820191906000526020600020905b81548152906001019060200180831161054e57829003601f168201915b505050505081565b336000818152600360209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60055490565b60006105ea84610f3a565b600160a060020a03831615156105ff57600080fd5b61060884610d0c565b82111561061457600080fd5b600160a060020a038416600090815260036020908152604080832033845290915290205482111561064457600080fd5b600160a060020a03841660009081526004602052604090205461066d908363ffffffff6110a916565b600160a060020a0380861660009081526004602052604080822093909355908516815220546106a2908363ffffffff6110bb16565b600160a060020a0380851660009081526004602090815260408083209490945591871681526003825282812033825290915220546106e6908363ffffffff6110a916565b600160a060020a0380861660008181526003602090815260408083203384528252918290209490945580518681529051928716939192600080516020611335833981519152929181900390910190a35060019392505050565b60046020526000908152604090205481565b60025460ff1681565b61076433826110ce565b50565b600660209081526000928352604080842090915290825290205481565b336000908152600360209081526040808320600160a060020a03861684529091528120548083106107d857336000908152600360209081526040808320600160a060020a038816845290915281205561080d565b6107e8818463ffffffff6110a916565b336000908152600360209081526040808320600160a060020a03891684529091529020555b336000818152600360209081526040808320600160a060020a0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b600160a060020a031660009081526004602052604090205490565b6002546101009004600160a060020a031633146108aa57600080fd5b600254604051610100909104600160a060020a0316907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26002805474ffffffffffffffffffffffffffffffffffffffff0019169055565b600160a060020a038216600090815260036020908152604080832033845290915290205481111561093657600080fd5b600160a060020a038216600090815260036020908152604080832033845290915290205461096a908263ffffffff6110a916565b600160a060020a038316600090815260036020908152604080832033845290915290205561099882826110ce565b5050565b6002546101009004600160a060020a031681565b60018054604080516020600284861615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561056b5780601f106105405761010080835404028352916020019161056b565b3360008181526008602052604081205490919060ff161515610a2b57600080fd5b610a358585610ab6565b50428363ffffffff161115610a5757610a576000868563ffffffff16876111b6565b60408051338152600160a060020a038716602082015280820186905263ffffffff8516606082015290517f5075049792a88eedfe4e60bb3ffeac77b4fa7f03108b81fb0b460161b983e2009181900360800190a1506001949350505050565b6000610ac133610f3a565b600160a060020a0383161515610ad657600080fd5b610adf33610d0c565b821115610aeb57600080fd5b33600090815260046020526040902054610b0b908363ffffffff6110a916565b3360009081526004602052604080822092909255600160a060020a03851681522054610b3d908363ffffffff6110bb16565b600160a060020a0384166000818152600460209081526040918290209390935580518581529051919233926000805160206113358339815191529281900390910190a350600192915050565b6002546101009004600160a060020a03163314610ba557600080fd5b600160a060020a03166000908152600860205260409020805460ff19169055565b3360008181526008602052604081205490919060ff161515610be757600080fd5b600554610bfa818663ffffffff6110bb16565b11610c0457600080fd5b428363ffffffff161115610c2557610c256000868563ffffffff16876111b6565b600160a060020a038516600090815260046020526040902054610c4e908563ffffffff6110bb16565b600160a060020a038616600090815260046020526040902055600554610c7a908563ffffffff6110bb16565b600555604080518581529051600160a060020a038716916000916000805160206113358339815191529181900360200190a36040805160008152600160a060020a038716602082015280820186905263ffffffff8516606082015290517f5075049792a88eedfe4e60bb3ffeac77b4fa7f03108b81fb0b460161b983e2009181900360800190a1506001949350505050565b600160a060020a038116600090815260046020908152604080832054600683528184208480529092528220549091901515610d4657610e0b565b5060005b600160a060020a038316600090815260076020526040902054811015610e0b57600160a060020a0383166000908152600760205260409020805442919083908110610d9157fe5b9060005260206000200154101515610e0357600160a060020a0383166000908152600660209081526040808320600790925282208054610e0093919085908110610dd757fe5b9060005260206000200154815260200190815260200160002054836110a990919063ffffffff16565b91505b600101610d4a565b50919050565b336000908152600360209081526040808320600160a060020a0386168452909152812054610e45908363ffffffff6110bb16565b336000818152600360209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b6002546101009004600160a060020a03163314610ec657600080fd5b600160a060020a03166000908152600860205260409020805460ff19166001179055565b600160a060020a03918216600090815260036020908152604080832093909416825291909152205490565b6002546101009004600160a060020a03163314610f3157600080fd5b610764816112ab565b600160a060020a03811660009081526006602090815260408083208380529091528120541515610f6957610998565b5060005b600160a060020a03821660009081526007602052604090205481101561099857600160a060020a0382166000908152600760205260409020805442919083908110610fb457fe5b906000526020600020015410156110a157600160a060020a038216600090815260066020908152604080832060079092528220805461103f93919085908110610ff957fe5b60009182526020808320909101548352828101939093526040918201812054600160a060020a03871682526006845282822082805290935220549063ffffffff6110a916565b600160a060020a0383166000818152600660209081526040808320838052808352818420959095559282526007905290812080549192918391908590811061108357fe5b90600052602060002001548152602001908152602001600020819055505b600101610f6d565b6000828211156110b557fe5b50900390565b818101828110156110c857fe5b92915050565b6110d782610f3a565b6110e082610d0c565b8111156110ec57600080fd5b600160a060020a038216600090815260046020526040902054611115908263ffffffff6110a916565b600160a060020a038316600090815260046020526040902055600554611141908263ffffffff6110a916565b600555604080518281529051600160a060020a038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a2604080518281529051600091600160a060020a038516916000805160206113358339815191529181900360200190a35050565b600160a060020a03831660009081526006602090815260408083208380529091529020546111ea908263ffffffff6110bb16565b600160a060020a0384166000908152600660209081526040808320838052909152808220929092558381522054151561124957600160a060020a0383166000908152600760209081526040822080546001810182559083529120018290555b600160a060020a038316600090815260066020908152604080832085845290915290205461127d908263ffffffff6110bb16565b600160a060020a03909316600090815260066020908152604080832094835293905291909120919091555050565b600160a060020a03811615156112c057600080fd5b600254604051600160a060020a0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360028054600160a060020a039092166101000274ffffffffffffffffffffffffffffffffffffffff00199092169190911790555600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582032e10203dcbab0ee1413110ee779200c5145d19d538d974c007e2d373697c5e70029", - "sourceMap": "224:9422:19:-;;;938:158;8:9:-1;5:2;;;30:1;27;20:12;5:2;938:158:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;463:12:32;;938:158:19;;;;;;;;;;;;;463:12:32;;:4;;:12;;;;:::i;:::-;-1:-1:-1;481:16:32;;;;:6;;:16;;;;;:::i;:::-;-1:-1:-1;503:8:32;:20;;575:10:31;503:20:32;567:18:31;;-1:-1:-1;;;;;;503:20:32;;;;-1:-1:-1;;503:20:32;;;;567:18:31;;;;;;;;;;;503:8:32;1055:27:19;;;:15;:27;;;;;;:34;;;;;503:20:32;1055:34:19;;;-1:-1:-1;224:9422:19;;-1:-1:-1;;;;224:9422:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;224:9422:19;;;-1:-1:-1;224:9422:19;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", - "deployedSourceMap": "224:9422:19:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;319:18:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;319:18: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;319:18:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3790:203:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3790:203:19;;;-1:-1:-1;;;;;3790:203:19;;;;;;;;;;;;;;;;;;;;;;;843:89;;8:9:-1;5:2;;;30:1;27;20:12;5:2;843:89:19;;;;;;;;;;;;;;;;;;;;2636:518;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2636:518:19;-1:-1:-1;;;;;2636:518:19;;;;;;;;;;;;378:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;378:43:19;;;-1:-1:-1;;;;;378:43:19;;;365:21:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;365:21:32;;;;;;;;;;;;;;;;;;;;;;;7170:79:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7170:79:19;;;;;;;463:73;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;463:73:19;;;-1:-1:-1;;;;;463:73:19;;;;;5675:443;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5675:443:19;;;-1:-1:-1;;;;;5675:443:19;;;;;2239:113;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2239:113:19;;;-1:-1:-1;;;;;2239:113:19;;;1001:111:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1001:111:31;;;;7503:392:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7503:392:19;;;-1:-1:-1;;;;;7503:392:19;;;;;238:20:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:31;;;;;;;;-1:-1:-1;;;;;238:20:31;;;;;;;;;;;;;;341::32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;341:20:32;;;;1661:364:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1661:364:19;;;-1:-1:-1;;;;;1661:364:19;;;;;;;;;1262:393;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1262:393:19;;;-1:-1:-1;;;;;1262:393:19;;;;;9428:113;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9428:113:19;;;-1:-1:-1;;;;;9428:113:19;;;6124:532;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6124:532:19;;;-1:-1:-1;;;;;6124:532:19;;;;;;;;;8884:423;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8884:423:19;;;-1:-1:-1;;;;;8884:423:19;;;4923:277;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4923:277:19;;;-1:-1:-1;;;;;4923:277:19;;;;;9313:109;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9313:109:19;;;-1:-1:-1;;;;;9313:109:19;;;4321:132;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4321:132:19;-1:-1:-1;;;;;4321:132:19;;;;;;;;;;1274:103:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1274:103:31;;;-1:-1:-1;;;;;1274:103:31;;;319:18:32;;;;;;;;;;;;;;;-1:-1:-1;;319:18:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3790:203:19:-;3881:10;3857:4;3873:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;3873:29:19;;;;;;;;;;;:38;;;3926;;;;;;;3857:4;;3873:29;;3881:10;;3926:38;;;;;;;;-1:-1:-1;3982:4:19;3790:203;;;;:::o;843:89::-;913:12;;843:89;:::o;2636:518::-;2718:4;2734:22;2750:5;2734:15;:22::i;:::-;-1:-1:-1;;;;;2775:17:19;;;;2767:26;;;;;;2821:21;2836:5;2821:14;:21::i;:::-;2811:31;;;2803:40;;;;;;-1:-1:-1;;;;;2871:14:19;;;;;;:7;:14;;;;;;;;2886:10;2871:26;;;;;;;;2861:36;;;2853:45;;;;;;-1:-1:-1;;;;;2927:15:19;;;;;;:8;:15;;;;;;:27;;2947:6;2927:19;:27::i;:::-;-1:-1:-1;;;;;2909:15:19;;;;;;;:8;:15;;;;;;:45;;;;2980:13;;;;;;;:25;;2998:6;2980:17;:25::i;:::-;-1:-1:-1;;;;;2964:13:19;;;;;;;:8;:13;;;;;;;;:41;;;;3044:14;;;;;:7;:14;;;;;3059:10;3044:26;;;;;;;:38;;3075:6;3044:30;:38::i;:::-;-1:-1:-1;;;;;3015:14:19;;;;;;;:7;:14;;;;;;;;3030:10;3015:26;;;;;;;:67;;;;3098:28;;;;;;;-1:-1:-1;;3098:28:19;;;;3015:14;;;;3098:28;;;3015:14;-1:-1:-1;3015:14:19;-1:-1:-1;;;;;3098:28:19;;;;;;;;;;-1:-1:-1;3143:4:19;2636:518;;;;;:::o;378:43::-;;;;;;;;;;;;;:::o;365:21:32:-;;;;;;:::o;7170:79:19:-;7217:25;7223:10;7235:6;7217:5;:25::i;:::-;7170:79;:::o;463:73::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;5675:443::-;5798:10;5758:4;5790:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;5790:29:19;;;;;;;;;;5833:28;;;5829:185;;5885:10;5909:1;5877:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;5877:29:19;;;;;;;;;:33;5829:185;;;5973:30;:8;5986:16;5973:30;:12;:30;:::i;:::-;5949:10;5941:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;5941:29:19;;;;;;;;;:62;5829:185;6037:10;6059:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;6028:61:19;;6059:29;;;;;;;;;;;6028:61;;;;;;;;;6037:10;6028:61;;;;;;;;;;;-1:-1:-1;6107:4:19;;5675:443;-1:-1:-1;;;5675:443:19:o;2239:113::-;-1:-1:-1;;;;;2329:16:19;2295:15;2329:16;;;:8;:16;;;;;;;2239:113::o;1001:111:31:-;719:5;;;;;-1:-1:-1;;;;;719:5:31;705:10;:19;697:28;;;;;;1077:5;;1058:25;;1077:5;;;;-1:-1:-1;;;;;1077:5:31;;1058:25;;;;;1089:5;:18;;-1:-1:-1;;1089:18:31;;;1001:111::o;7503:392:19:-;-1:-1:-1;;;;;7587:14:19;;;;;;:7;:14;;;;;;;;7602:10;7587:26;;;;;;;;7577:36;;;7569:45;;;;;;-1:-1:-1;;;;;7820:14:19;;;;;;:7;:14;;;;;;;;7835:10;7820:26;;;;;;;;:38;;7851:6;7820:30;:38::i;:::-;-1:-1:-1;;;;;7791:14:19;;;;;;:7;:14;;;;;;;;7806:10;7791:26;;;;;;;:67;7868:20;7791:14;7881:6;7868:5;:20::i;:::-;7503:392;;:::o;238:20:31:-;;;;;;-1:-1:-1;;;;;238:20:31;;:::o;341::32:-;;;;;;;;;;;;;;;-1:-1:-1;;341:20:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1661:364:19;1757:10;1778:4;9602:23;;;:15;:23;;;;;;1778:4;;1757:10;9602:23;;9594:32;;;;;;;;1794:21;1803:3;1808:6;1794:8;:21::i;:::-;;1845:3;1830:12;:18;;;1826:101;;;1864:52;1886:1;1890:3;1895:12;1864:52;;1909:6;1864:13;:52::i;:::-;1942:54;;;1958:10;1942:54;;-1:-1:-1;;;;;1942:54:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2014:4:19;;1661:364;-1:-1:-1;;;;1661:364:19:o;1262:393::-;1325:4;1341:27;1357:10;1341:15;:27::i;:::-;-1:-1:-1;;;;;1386:17:19;;;;1378:26;;;;;;1432;1447:10;1432:14;:26::i;:::-;1422:36;;;1414:45;;;;;;1502:10;1493:20;;;;:8;:20;;;;;;:32;;1518:6;1493:32;:24;:32;:::i;:::-;1479:10;1470:20;;;;:8;:20;;;;;;:55;;;;-1:-1:-1;;;;;1552:13:19;;;;;;:25;;1570:6;1552:17;:25::i;:::-;-1:-1:-1;;;;;1536:13:19;;;;;;:8;:13;;;;;;;;:41;;;;1593:33;;;;;;;-1:-1:-1;;1536:13:19;;1602:10;;1593:33;;1536:13;;-1:-1:-1;1536:13:19;-1:-1:-1;;;;;1593:33:19;;;;;;;;;-1:-1:-1;1644:4:19;1262:393;;;;:::o;9428:113::-;719:5:31;;;;;-1:-1:-1;;;;;719:5:31;705:10;:19;697:28;;;;;;-1:-1:-1;;;;;9503:23:19;9529:5;9503:23;;;:15;:23;;;;;:31;;-1:-1:-1;;9503:31:19;;;9428:113::o;6124:532::-;6207:10;6228:4;9602:23;;;:15;:23;;;;;;6228:4;;6207:10;9602:23;;9594:32;;;;;;;;6280:12;;6252:25;6280:12;6269:7;6252:25;:16;:25;:::i;:::-;:40;6244:49;;;;;;6323:3;6308:12;:18;;;6304:102;;;6342:53;6364:1;6368:3;6373:12;6342:53;;6387:7;6342:13;:53::i;:::-;-1:-1:-1;;;;;6432:13:19;;;;;;:8;:13;;;;;;:26;;6450:7;6432:17;:26::i;:::-;-1:-1:-1;;;;;6416:13:19;;;;;;:8;:13;;;;;:42;6483:12;;:25;;6500:7;6483:16;:25::i;:::-;6468:12;:40;6523:34;;;;;;;;6540:1;-1:-1:-1;;;;;;;6523:34:19;;;6540:1;;6523:34;6540:1;;-1:-1:-1;;6540:1:19;-1:-1:-1;;;;;6523:34:19;;;;;;;;6572:55;;;6596:1;6572:55;;-1:-1:-1;;;;;6572:55:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6645:4:19;;6124:532;-1:-1:-1;;;;6124:532:19:o;8884:423::-;-1:-1:-1;;;;;8984:18:19;;8947:15;8984:18;;;:8;:18;;;;;;;;;9017:16;:26;;;;;:29;;;;;;;;;8984:18;;8947:15;9017:34;9013:47;;;9053:7;;9013:47;-1:-1:-1;9087:1:19;9070:231;-1:-1:-1;;;;;9094:22:19;;;;;;:12;:22;;;;;:29;9090:33;;9070:231;;;-1:-1:-1;;;;;9148:22:19;;;;;;:12;:22;;;;;:25;;9177:3;;9148:22;9171:1;;9148:25;;;;;;;;;;;;;;:32;;9144:147;;;-1:-1:-1;;;;;9222:26:19;;;;;;:16;:26;;;;;;;;9249:12;:22;;;;;:25;;9210:66;;9222:26;9249:22;9272:1;;9249:25;;;;;;;;;;;;;;9222:53;;;;;;;;;;;;9210:7;:11;;:66;;;;:::i;:::-;9200:76;;9144:147;9125:3;;9070:231;;;8884:423;;;;:::o;4923:277::-;5057:10;5001:4;5049:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;5049:29:19;;;;;;;;;;:46;;5083:11;5049:33;:46::i;:::-;5025:10;5017:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;5017:29:19;;;;;;;;;;;;:78;;;5110:61;;;;;;5017:29;;5110:61;;;;;;;;;;;-1:-1:-1;5189:4:19;4923:277;;;;:::o;9313:109::-;719:5:31;;;;;-1:-1:-1;;;;;719:5:31;705:10;:19;697:28;;;;;;-1:-1:-1;;;;;9385:23:19;;;;;:15;:23;;;;;:30;;-1:-1:-1;;9385:30:19;-1:-1:-1;9385:30:19;;;9313:109::o;4321:132::-;-1:-1:-1;;;;;4421:15:19;;;4395:7;4421:15;;;:7;:15;;;;;;;;:25;;;;;;;;;;;;;4321:132::o;1274:103:31:-;719:5;;;;;-1:-1:-1;;;;;719:5:31;705:10;:19;697:28;;;;;;1343:29;1362:9;1343:18;:29::i;8413:465:19:-;-1:-1:-1;;;;;8476:23:19;;8531:9;8476:23;;;:16;:23;;;;;;;;:26;;;;;;;;;:31;8472:44;;;8509:7;;8472:44;-1:-1:-1;8543:1:19;8526:346;-1:-1:-1;;;;;8550:19:19;;;;;;:12;:19;;;;;:26;8546:30;;8526:346;;;-1:-1:-1;;;;;8601:19:19;;;;;;:12;:19;;;;;:22;;8626:3;;8601:19;8621:1;;8601:22;;;;;;;;;;;;;;:28;8597:265;;;-1:-1:-1;;;;;8730:23:19;;;;;;:16;:23;;;;;;;;8754:12;:19;;;;;:22;;8678:100;;8730:23;8754:19;8774:1;;8754:22;;;;;;;;;;;;;;;;;;;8730:47;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8678:23:19;;;;:16;:23;;;;;:26;;;;;;;;;:51;:100::i;:::-;-1:-1:-1;;;;;8649:23:19;;;;;;:16;:23;;;;;;;;:26;;;;;;;;;:129;;;;8796:23;;;8820:12;:19;;;;;:22;;8649:23;;;;;8820:19;8840:1;;8820:22;;;;;;;;;;;;;;8796:47;;;;;;;;;;;:51;;;;8597:265;8578:3;;8526:346;;1060:116:30;1120:7;1142:8;;;;1135:16;;;;-1:-1:-1;1164:7:30;;;1060:116::o;1238:128::-;1319:7;;;1339;;;;1332:15;;;;1238:128;;;;:::o;7901:506:19:-;7965:21;7981:4;7965:15;:21::i;:::-;8015:20;8030:4;8015:14;:20::i;:::-;8005:30;;;7997:39;;;;;;-1:-1:-1;;;;;8243:14:19;;;;;;:8;:14;;;;;;:26;;8262:6;8243:18;:26::i;:::-;-1:-1:-1;;;;;8226:14:19;;;;;;:8;:14;;;;;:43;8294:12;;:24;;8311:6;8294:16;:24::i;:::-;8279:12;:39;8333:18;;;;;;;;-1:-1:-1;;;;;8333:18:19;;;;;;;;;;;;;8366:34;;;;;;;;8389:1;;-1:-1:-1;;;;;8366:34:19;;;-1:-1:-1;;;;;;;;;;;8366:34:19;;;;;;;;7901:506;;:::o;6662:381::-;-1:-1:-1;;;;;6798:21:19;;;;;;:16;:21;;;;;;;;:24;;;;;;;;;:37;;6827:7;6798:28;:37::i;:::-;-1:-1:-1;;;;;6771:21:19;;;;;;:16;:21;;;;;;;;:24;;;;;;;;;:64;;;;6849:35;;;;;:40;6846:93;;;-1:-1:-1;;;;;6903:17:19;;;;;;:12;:17;;;;;;;27:10:-1;;-1:-1;23:18;;45:23;;6903:36:19;;;;;;;;;6846:93;-1:-1:-1;;;;;6988:21:19;;;;;;:16;:21;;;;;;;;:35;;;;;;;;;:48;;7028:7;6988:39;:48::i;:::-;-1:-1:-1;;;;;6950:21:19;;;;;;;;:16;:21;;;;;;;;:35;;;;;;;;;;:86;;;;-1:-1:-1;;6662:381:19:o;1512:171:31:-;-1:-1:-1;;;;;1582:23:31;;;;1574:32;;;;;;1638:5;;1617:38;;-1:-1:-1;;;;;1617:38:31;;;;1638:5;;;;;1617:38;;;;;1661:5;:17;;-1:-1:-1;;;;;1661:17:31;;;;;;-1:-1:-1;;1661:17:31;;;;;;;;;1512:171::o", - "source": "pragma solidity ^0.4.24;\n\nimport \"openzeppelin-solidity/contracts/token/ERC20/DetailedERC20.sol\";\nimport \"openzeppelin-solidity/contracts/ownership/Ownable.sol\";\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\n\n\ncontract WToken is DetailedERC20, 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": "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", "sourcePath": "/home/circleci/code/contracts/token/WToken.sol", "ast": { "absolutePath": "/home/circleci/code/contracts/token/WToken.sol", "exportedSymbols": { "WToken": [ - 5925 + 8486 ] }, - "id": 5926, + "id": 8487, "nodeType": "SourceUnit", "nodes": [ { - "id": 5071, + "id": 7632, "literals": [ "solidity", "^", @@ -592,38 +592,38 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:19" + "src": "0:24:30" }, { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/DetailedERC20.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/DetailedERC20.sol", - "id": 5072, + "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", + "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", + "id": 7633, "nodeType": "ImportDirective", - "scope": 5926, - "sourceUnit": 6975, - "src": "26:71:19", + "scope": 8487, + "sourceUnit": 9689, + "src": "26:63:30", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 5073, + "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", + "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", + "id": 7634, "nodeType": "ImportDirective", - "scope": 5926, - "sourceUnit": 6941, - "src": "98:63:19", + "scope": 8487, + "sourceUnit": 9603, + "src": "90:59:30", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 5074, + "absolutePath": "/home/circleci/code/contracts/token/IWToken.sol", + "file": "./IWToken.sol", + "id": 7635, "nodeType": "ImportDirective", - "scope": 5926, - "sourceUnit": 6855, - "src": "162:59:19", + "scope": 8487, + "sourceUnit": 7631, + "src": "150:23:30", "symbolAliases": [], "unitAlias": "" }, @@ -633,80 +633,82 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 5075, - "name": "DetailedERC20", + "id": 7636, + "name": "IWToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6974, - "src": "243:13:19", + "referencedDeclaration": 7630, + "src": "195:7:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_DetailedERC20_$6974", - "typeString": "contract DetailedERC20" + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" } }, - "id": 5076, + "id": 7637, "nodeType": "InheritanceSpecifier", - "src": "243:13:19" + "src": "195:7:30" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 5077, + "id": 7638, "name": "Ownable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6940, - "src": "258:7:19", + "referencedDeclaration": 9688, + "src": "204:7:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$6940", + "typeIdentifier": "t_contract$_Ownable_$9688", "typeString": "contract Ownable" } }, - "id": 5078, + "id": 7639, "nodeType": "InheritanceSpecifier", - "src": "258:7:19" + "src": "204:7:30" } ], "contractDependencies": [ - 6940, - 6974, - 7017, - 7049 + 7630, + 9688, + 9722, + 9765, + 9797 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 5925, + "id": 8486, "linearizedBaseContracts": [ - 5925, - 6940, - 6974, - 7017, - 7049 + 8486, + 9688, + 7630, + 9722, + 9765, + 9797 ], "name": "WToken", "nodeType": "ContractDefinition", "nodes": [ { - "id": 5081, + "id": 7642, "libraryName": { "contractScope": null, - "id": 5079, + "id": 7640, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6854, - "src": "278:8:19", + "referencedDeclaration": 9602, + "src": "224:8:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$6854", + "typeIdentifier": "t_contract$_SafeMath_$9602", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "272:27:19", + "src": "218:27:30", "typeName": { - "id": 5080, + "id": 7641, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "291:7:19", + "src": "237:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -715,11 +717,11 @@ }, { "constant": false, - "id": 5087, + "id": 7648, "name": "allowed", "nodeType": "VariableDeclaration", - "scope": 5925, - "src": "305:66:19", + "scope": 8486, + "src": "251:66:30", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -727,46 +729,46 @@ "typeString": "mapping(address => mapping(address => uint256))" }, "typeName": { - "id": 5086, + "id": 7647, "keyType": { - "id": 5082, + "id": 7643, "name": "address", "nodeType": "ElementaryTypeName", - "src": "314:7:19", + "src": "260:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "305:49:19", + "src": "251:49:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" }, "valueType": { - "id": 5085, + "id": 7646, "keyType": { - "id": 5083, + "id": 7644, "name": "address", "nodeType": "ElementaryTypeName", - "src": "334:7:19", + "src": "280:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "325:28:19", + "src": "271:28:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 5084, + "id": 7645, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "345:7:19", + "src": "291:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -779,11 +781,11 @@ }, { "constant": false, - "id": 5091, + "id": 7652, "name": "balances", "nodeType": "VariableDeclaration", - "scope": 5925, - "src": "378:43:19", + "scope": 8486, + "src": "324:43:30", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -791,28 +793,28 @@ "typeString": "mapping(address => uint256)" }, "typeName": { - "id": 5090, + "id": 7651, "keyType": { - "id": 5088, + "id": 7649, "name": "address", "nodeType": "ElementaryTypeName", - "src": "386:7:19", + "src": "332:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "378:27:19", + "src": "324:27:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 5089, + "id": 7650, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "397:7:19", + "src": "343:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -824,11 +826,11 @@ }, { "constant": false, - "id": 5093, + "id": 7654, "name": "_totalSupply", "nodeType": "VariableDeclaration", - "scope": 5925, - "src": "428:28:19", + "scope": 8486, + "src": "374:28:30", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -836,10 +838,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5092, + "id": 7653, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "428:7:19", + "src": "374:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -850,11 +852,11 @@ }, { "constant": false, - "id": 5099, + "id": 7660, "name": "vestingBalanceOf", "nodeType": "VariableDeclaration", - "scope": 5925, - "src": "463:73:19", + "scope": 8486, + "src": "409:73:30", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -862,46 +864,46 @@ "typeString": "mapping(address => mapping(uint256 => uint256))" }, "typeName": { - "id": 5098, + "id": 7659, "keyType": { - "id": 5094, + "id": 7655, "name": "address", "nodeType": "ElementaryTypeName", - "src": "472:7:19", + "src": "418:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "463:49:19", + "src": "409:49:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", "typeString": "mapping(address => mapping(uint256 => uint256))" }, "valueType": { - "id": 5097, + "id": 7658, "keyType": { - "id": 5095, + "id": 7656, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "492:7:19", + "src": "438:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Mapping", - "src": "483:28:19", + "src": "429:28:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", "typeString": "mapping(uint256 => uint256)" }, "valueType": { - "id": 5096, + "id": 7657, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "503:7:19", + "src": "449:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -914,11 +916,11 @@ }, { "constant": false, - "id": 5104, + "id": 7665, "name": "vestingTimes", "nodeType": "VariableDeclaration", - "scope": 5925, - "src": "543:40:19", + "scope": 8486, + "src": "489:40:30", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -926,38 +928,38 @@ "typeString": "mapping(address => uint256[])" }, "typeName": { - "id": 5103, + "id": 7664, "keyType": { - "id": 5100, + "id": 7661, "name": "address", "nodeType": "ElementaryTypeName", - "src": "552:7:19", + "src": "498:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "543:27:19", + "src": "489:27:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(address => uint256[])" }, "valueType": { "baseType": { - "id": 5101, + "id": 7662, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "563:4:19", + "src": "509:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5102, + "id": 7663, "length": null, "nodeType": "ArrayTypeName", - "src": "563:6:19", + "src": "509:6:30", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -969,11 +971,11 @@ }, { "constant": false, - "id": 5108, + "id": 7669, "name": "trustedAccounts", "nodeType": "VariableDeclaration", - "scope": 5925, - "src": "590:41:19", + "scope": 8486, + "src": "536:41:30", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -981,28 +983,28 @@ "typeString": "mapping(address => bool)" }, "typeName": { - "id": 5107, + "id": 7668, "keyType": { - "id": 5105, + "id": 7666, "name": "address", "nodeType": "ElementaryTypeName", - "src": "599:7:19", + "src": "545:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "590:25:19", + "src": "536:25:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { - "id": 5106, + "id": 7667, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "610:4:19", + "src": "556:4:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1015,21 +1017,21 @@ { "anonymous": false, "documentation": null, - "id": 5118, + "id": 7679, "name": "VestingTransfer", "nodeType": "EventDefinition", "parameters": { - "id": 5117, + "id": 7678, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5110, + "id": 7671, "indexed": false, "name": "from", "nodeType": "VariableDeclaration", - "scope": 5118, - "src": "660:12:19", + "scope": 7679, + "src": "606:12:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1037,10 +1039,10 @@ "typeString": "address" }, "typeName": { - "id": 5109, + "id": 7670, "name": "address", "nodeType": "ElementaryTypeName", - "src": "660:7:19", + "src": "606:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1051,12 +1053,12 @@ }, { "constant": false, - "id": 5112, + "id": 7673, "indexed": false, "name": "to", "nodeType": "VariableDeclaration", - "scope": 5118, - "src": "674:10:19", + "scope": 7679, + "src": "620:10:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1064,10 +1066,10 @@ "typeString": "address" }, "typeName": { - "id": 5111, + "id": 7672, "name": "address", "nodeType": "ElementaryTypeName", - "src": "674:7:19", + "src": "620:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1078,12 +1080,12 @@ }, { "constant": false, - "id": 5114, + "id": 7675, "indexed": false, "name": "value", "nodeType": "VariableDeclaration", - "scope": 5118, - "src": "686:13:19", + "scope": 7679, + "src": "632:13:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1091,10 +1093,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5113, + "id": 7674, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "686:7:19", + "src": "632:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1105,12 +1107,12 @@ }, { "constant": false, - "id": 5116, + "id": 7677, "indexed": false, "name": "agingTime", "nodeType": "VariableDeclaration", - "scope": 5118, - "src": "701:17:19", + "scope": 7679, + "src": "647:17:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1118,10 +1120,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5115, + "id": 7676, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "701:7:19", + "src": "647:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1131,28 +1133,28 @@ "visibility": "internal" } ], - "src": "659:60:19" + "src": "605:60:30" }, - "src": "638:82:19" + "src": "584:82:30" }, { "anonymous": false, "documentation": null, - "id": 5124, + "id": 7685, "name": "Burn", "nodeType": "EventDefinition", "parameters": { - "id": 5123, + "id": 7684, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5120, + "id": 7681, "indexed": true, "name": "burner", "nodeType": "VariableDeclaration", - "scope": 5124, - "src": "736:22:19", + "scope": 7685, + "src": "682:22:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1160,10 +1162,10 @@ "typeString": "address" }, "typeName": { - "id": 5119, + "id": 7680, "name": "address", "nodeType": "ElementaryTypeName", - "src": "736:7:19", + "src": "682:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1174,12 +1176,12 @@ }, { "constant": false, - "id": 5122, + "id": 7683, "indexed": false, "name": "value", "nodeType": "VariableDeclaration", - "scope": 5124, - "src": "760:13:19", + "scope": 7685, + "src": "706:13:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1187,10 +1189,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5121, + "id": 7682, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "760:7:19", + "src": "706:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1200,39 +1202,39 @@ "visibility": "internal" } ], - "src": "735:39:19" + "src": "681:39:30" }, - "src": "725:50:19" + "src": "671:50:30" }, { "body": { - "id": 5131, + "id": 7692, "nodeType": "Block", - "src": "896:36:19", + "src": "842:36:30", "statements": [ { "expression": { "argumentTypes": null, - "id": 5129, + "id": 7690, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5093, - "src": "913:12:19", + "referencedDeclaration": 7654, + "src": "859:12:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 5128, - "id": 5130, + "functionReturnParameters": 7689, + "id": 7691, "nodeType": "Return", - "src": "906:19:19" + "src": "852:19:30" } ] }, "documentation": "@dev total number of tokens in existence", - "id": 5132, + "id": 7693, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1240,23 +1242,23 @@ "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { - "id": 5125, + "id": 7686, "nodeType": "ParameterList", "parameters": [], - "src": "863:2:19" + "src": "809:2:30" }, "payable": false, "returnParameters": { - "id": 5128, + "id": 7689, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5127, + "id": 7688, "name": "", "nodeType": "VariableDeclaration", - "scope": 5132, - "src": "887:7:19", + "scope": 7693, + "src": "833:7:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1264,10 +1266,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5126, + "id": 7687, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "887:7:19", + "src": "833:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1277,24 +1279,24 @@ "visibility": "internal" } ], - "src": "886:9:19" + "src": "832:9:30" }, - "scope": 5925, - "src": "843:89:19", + "scope": 8486, + "src": "789:89:30", "stateMutability": "view", - "superFunction": 7024, + "superFunction": 9772, "visibility": "public" }, { "body": { - "id": 5153, + "id": 7714, "nodeType": "Block", - "src": "1045:51:19", + "src": "991:51:30", "statements": [ { "expression": { "argumentTypes": null, - "id": 5151, + "id": 7712, "isConstant": false, "isLValue": false, "isPure": false, @@ -1303,34 +1305,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5146, + "id": 7707, "name": "trustedAccounts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5108, - "src": "1055:15:19", + "referencedDeclaration": 7669, + "src": "1001:15:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 5149, + "id": 7710, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5147, + "id": 7708, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "1071:3:19", + "referencedDeclaration": 10042, + "src": "1017:3:30", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 5148, + "id": 7709, "isConstant": false, "isLValue": false, "isPure": false, @@ -1338,7 +1340,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1071:10:19", + "src": "1017:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1349,7 +1351,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1055:27:19", + "src": "1001:27:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1360,14 +1362,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 5150, + "id": 7711, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1085:4:19", + "src": "1031:4:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -1375,20 +1377,20 @@ }, "value": "true" }, - "src": "1055:34:19", + "src": "1001:34:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 5152, + "id": 7713, "nodeType": "ExpressionStatement", - "src": "1055:34:19" + "src": "1001:34:30" } ] }, "documentation": null, - "id": 5154, + "id": 7715, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -1397,12 +1399,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5141, + "id": 7702, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5134, - "src": "1011:5:19", + "referencedDeclaration": 7695, + "src": "957:5:30", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -1410,12 +1412,12 @@ }, { "argumentTypes": null, - "id": 5142, + "id": 7703, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5136, - "src": "1018:7:19", + "referencedDeclaration": 7697, + "src": "964:7:30", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -1423,49 +1425,49 @@ }, { "argumentTypes": null, - "id": 5143, + "id": 7704, "name": "_decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5138, - "src": "1027:9:19", + "referencedDeclaration": 7699, + "src": "973:9:30", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } } ], - "id": 5144, + "id": 7705, "modifierName": { "argumentTypes": null, - "id": 5140, + "id": 7701, "name": "DetailedERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6974, - "src": "997:13:19", + "referencedDeclaration": 9722, + "src": "943:13:30", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DetailedERC20_$6974_$", + "typeIdentifier": "t_type$_t_contract$_DetailedERC20_$9722_$", "typeString": "type(contract DetailedERC20)" } }, "nodeType": "ModifierInvocation", - "src": "997:40:19" + "src": "943:40:30" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 5139, + "id": 7700, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5134, + "id": 7695, "name": "_name", "nodeType": "VariableDeclaration", - "scope": 5154, - "src": "950:12:19", + "scope": 7715, + "src": "896:12:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1473,10 +1475,10 @@ "typeString": "string" }, "typeName": { - "id": 5133, + "id": 7694, "name": "string", "nodeType": "ElementaryTypeName", - "src": "950:6:19", + "src": "896:6:30", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -1487,11 +1489,11 @@ }, { "constant": false, - "id": 5136, + "id": 7697, "name": "_symbol", "nodeType": "VariableDeclaration", - "scope": 5154, - "src": "964:14:19", + "scope": 7715, + "src": "910:14:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1499,10 +1501,10 @@ "typeString": "string" }, "typeName": { - "id": 5135, + "id": 7696, "name": "string", "nodeType": "ElementaryTypeName", - "src": "964:6:19", + "src": "910:6:30", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -1513,11 +1515,11 @@ }, { "constant": false, - "id": 5138, + "id": 7699, "name": "_decimals", "nodeType": "VariableDeclaration", - "scope": 5154, - "src": "980:15:19", + "scope": 7715, + "src": "926:15:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1525,10 +1527,10 @@ "typeString": "uint8" }, "typeName": { - "id": 5137, + "id": 7698, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "980:5:19", + "src": "926:5:30", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1538,26 +1540,26 @@ "visibility": "internal" } ], - "src": "949:47:19" + "src": "895:47:30" }, "payable": false, "returnParameters": { - "id": 5145, + "id": 7706, "nodeType": "ParameterList", "parameters": [], - "src": "1045:0:19" + "src": "991:0:30" }, - "scope": 5925, - "src": "938:158:19", + "scope": 8486, + "src": "884:158:30", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 5218, + "id": 7779, "nodeType": "Block", - "src": "1331:324:19", + "src": "1277:324:30", "statements": [ { "expression": { @@ -1567,18 +1569,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5164, + "id": 7725, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "1357:3:19", + "referencedDeclaration": 10042, + "src": "1303:3:30", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 5165, + "id": 7726, "isConstant": false, "isLValue": false, "isPure": false, @@ -1586,7 +1588,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1357:10:19", + "src": "1303:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1600,18 +1602,18 @@ "typeString": "address" } ], - "id": 5163, + "id": 7724, "name": "_checkMyVesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5822, - "src": "1341:15:19", + "referencedDeclaration": 8383, + "src": "1287:15:30", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 5166, + "id": 7727, "isConstant": false, "isLValue": false, "isPure": false, @@ -1619,15 +1621,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1341:27:19", + "src": "1287:27:30", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5167, + "id": 7728, "nodeType": "ExpressionStatement", - "src": "1341:27:19" + "src": "1287:27:30" }, { "expression": { @@ -1639,19 +1641,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 5173, + "id": 7734, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5169, + "id": 7730, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5156, - "src": "1386:3:19", + "referencedDeclaration": 7717, + "src": "1332:3:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1665,14 +1667,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 5171, + "id": 7732, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1401:1:19", + "src": "1347:1:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1688,20 +1690,20 @@ "typeString": "int_const 0" } ], - "id": 5170, + "id": 7731, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1393:7:19", + "src": "1339:7:30", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 5172, + "id": 7733, "isConstant": false, "isLValue": false, "isPure": true, @@ -1709,13 +1711,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1393:10:19", + "src": "1339:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1386:17:19", + "src": "1332:17:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1729,21 +1731,21 @@ "typeString": "bool" } ], - "id": 5168, + "id": 7729, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "1378:7:19", + "referencedDeclaration": 10045, + "src": "1324:7:30", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5174, + "id": 7735, "isConstant": false, "isLValue": false, "isPure": false, @@ -1751,15 +1753,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1378:26:19", + "src": "1324:26:30", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5175, + "id": 7736, "nodeType": "ExpressionStatement", - "src": "1378:26:19" + "src": "1324:26:30" }, { "expression": { @@ -1771,19 +1773,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5182, + "id": 7743, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5177, + "id": 7738, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5158, - "src": "1422:6:19", + "referencedDeclaration": 7719, + "src": "1368:6:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1798,18 +1800,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5179, + "id": 7740, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "1447:3:19", + "referencedDeclaration": 10042, + "src": "1393:3:30", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 5180, + "id": 7741, "isConstant": false, "isLValue": false, "isPure": false, @@ -1817,7 +1819,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1447:10:19", + "src": "1393:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1831,18 +1833,20 @@ "typeString": "address" } ], - "id": 5178, + "id": 7739, "name": "accountBalance", "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5884, - "src": "1432:14:19", + "overloadedDeclarations": [ + 8445 + ], + "referencedDeclaration": 8445, + "src": "1378:14:30", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view returns (uint256)" } }, - "id": 5181, + "id": 7742, "isConstant": false, "isLValue": false, "isPure": false, @@ -1850,13 +1854,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1432:26:19", + "src": "1378:26:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1422:36:19", + "src": "1368:36:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1870,21 +1874,21 @@ "typeString": "bool" } ], - "id": 5176, + "id": 7737, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "1414:7:19", + "referencedDeclaration": 10045, + "src": "1360:7:30", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5183, + "id": 7744, "isConstant": false, "isLValue": false, "isPure": false, @@ -1892,20 +1896,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1414:45:19", + "src": "1360:45:30", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5184, + "id": 7745, "nodeType": "ExpressionStatement", - "src": "1414:45:19" + "src": "1360:45:30" }, { "expression": { "argumentTypes": null, - "id": 5196, + "id": 7757, "isConstant": false, "isLValue": false, "isPure": false, @@ -1914,34 +1918,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5185, + "id": 7746, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5091, - "src": "1470:8:19", + "referencedDeclaration": 7652, + "src": "1416:8:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 5188, + "id": 7749, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5186, + "id": 7747, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "1479:3:19", + "referencedDeclaration": 10042, + "src": "1425:3:30", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 5187, + "id": 7748, "isConstant": false, "isLValue": false, "isPure": false, @@ -1949,7 +1953,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1479:10:19", + "src": "1425:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1960,7 +1964,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1470:20:19", + "src": "1416:20:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1973,12 +1977,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5194, + "id": 7755, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5158, - "src": "1518:6:19", + "referencedDeclaration": 7719, + "src": "1464:6:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1996,34 +2000,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5189, + "id": 7750, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5091, - "src": "1493:8:19", + "referencedDeclaration": 7652, + "src": "1439:8:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 5192, + "id": 7753, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5190, + "id": 7751, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "1502:3:19", + "referencedDeclaration": 10042, + "src": "1448:3:30", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 5191, + "id": 7752, "isConstant": false, "isLValue": false, "isPure": false, @@ -2031,7 +2035,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1502:10:19", + "src": "1448:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2042,27 +2046,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1493:20:19", + "src": "1439:20:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5193, + "id": 7754, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 6829, - "src": "1493:24:19", + "referencedDeclaration": 9577, + "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": 5195, + "id": 7756, "isConstant": false, "isLValue": false, "isPure": false, @@ -2070,26 +2074,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1493:32:19", + "src": "1439:32:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1470:55:19", + "src": "1416:55:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5197, + "id": 7758, "nodeType": "ExpressionStatement", - "src": "1470:55:19" + "src": "1416:55:30" }, { "expression": { "argumentTypes": null, - "id": 5207, + "id": 7768, "isConstant": false, "isLValue": false, "isPure": false, @@ -2098,26 +2102,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5198, + "id": 7759, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5091, - "src": "1536:8:19", + "referencedDeclaration": 7652, + "src": "1482:8:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 5200, + "id": 7761, "indexExpression": { "argumentTypes": null, - "id": 5199, + "id": 7760, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5156, - "src": "1545:3:19", + "referencedDeclaration": 7717, + "src": "1491:3:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2128,7 +2132,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1536:13:19", + "src": "1482:13:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2141,12 +2145,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5205, + "id": 7766, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5158, - "src": "1570:6:19", + "referencedDeclaration": 7719, + "src": "1516:6:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2164,26 +2168,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5201, + "id": 7762, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5091, - "src": "1552:8:19", + "referencedDeclaration": 7652, + "src": "1498:8:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 5203, + "id": 7764, "indexExpression": { "argumentTypes": null, - "id": 5202, + "id": 7763, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5156, - "src": "1561:3:19", + "referencedDeclaration": 7717, + "src": "1507:3:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2194,27 +2198,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1552:13:19", + "src": "1498:13:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5204, + "id": 7765, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 6853, - "src": "1552:17:19", + "referencedDeclaration": 9601, + "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": 5206, + "id": 7767, "isConstant": false, "isLValue": false, "isPure": false, @@ -2222,21 +2226,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1552:25:19", + "src": "1498:25:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1536:41:19", + "src": "1482:41:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5208, + "id": 7769, "nodeType": "ExpressionStatement", - "src": "1536:41:19" + "src": "1482:41:30" }, { "eventCall": { @@ -2246,18 +2250,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5210, + "id": 7771, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "1602:3:19", + "referencedDeclaration": 10042, + "src": "1548:3:30", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 5211, + "id": 7772, "isConstant": false, "isLValue": false, "isPure": false, @@ -2265,7 +2269,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1602:10:19", + "src": "1548:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2273,12 +2277,12 @@ }, { "argumentTypes": null, - "id": 5212, + "id": 7773, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5156, - "src": "1614:3:19", + "referencedDeclaration": 7717, + "src": "1560:3:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2286,12 +2290,12 @@ }, { "argumentTypes": null, - "id": 5213, + "id": 7774, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5158, - "src": "1619:6:19", + "referencedDeclaration": 7719, + "src": "1565:6:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2313,18 +2317,18 @@ "typeString": "uint256" } ], - "id": 5209, + "id": 7770, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7048, - "src": "1593:8:19", + "referencedDeclaration": 9796, + "src": "1539:8:30", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 5214, + "id": 7775, "isConstant": false, "isLValue": false, "isPure": false, @@ -2332,28 +2336,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1593:33:19", + "src": "1539:33:30", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5215, + "id": 7776, "nodeType": "EmitStatement", - "src": "1588:38:19" + "src": "1534:38:30" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 5216, + "id": 7777, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1644:4:19", + "src": "1590:4:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2361,15 +2365,15 @@ }, "value": "true" }, - "functionReturnParameters": 5162, - "id": 5217, + "functionReturnParameters": 7723, + "id": 7778, "nodeType": "Return", - "src": "1637:11:19" + "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": 5219, + "id": 7780, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -2377,16 +2381,16 @@ "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 5159, + "id": 7720, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5156, + "id": 7717, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 5219, - "src": "1280:11:19", + "scope": 7780, + "src": "1226:11:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2394,10 +2398,10 @@ "typeString": "address" }, "typeName": { - "id": 5155, + "id": 7716, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1280:7:19", + "src": "1226:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2408,11 +2412,11 @@ }, { "constant": false, - "id": 5158, + "id": 7719, "name": "_value", "nodeType": "VariableDeclaration", - "scope": 5219, - "src": "1293:14:19", + "scope": 7780, + "src": "1239:14:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2420,10 +2424,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5157, + "id": 7718, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1293:7:19", + "src": "1239:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2433,20 +2437,20 @@ "visibility": "internal" } ], - "src": "1279:29:19" + "src": "1225:29:30" }, "payable": false, "returnParameters": { - "id": 5162, + "id": 7723, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5161, + "id": 7722, "name": "", "nodeType": "VariableDeclaration", - "scope": 5219, - "src": "1325:4:19", + "scope": 7780, + "src": "1271:4:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2454,10 +2458,10 @@ "typeString": "bool" }, "typeName": { - "id": 5160, + "id": 7721, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1325:4:19", + "src": "1271:4:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2467,19 +2471,19 @@ "visibility": "internal" } ], - "src": "1324:6:19" + "src": "1270:6:30" }, - "scope": 5925, - "src": "1262:393:19", + "scope": 8486, + "src": "1208:393:30", "stateMutability": "nonpayable", - "superFunction": 7040, + "superFunction": 9788, "visibility": "public" }, { "body": { - "id": 5263, + "id": 7824, "nodeType": "Block", - "src": "1784:241:19", + "src": "1730:241:30", "statements": [ { "expression": { @@ -2487,12 +2491,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5235, + "id": 7796, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5221, - "src": "1803:3:19", + "referencedDeclaration": 7782, + "src": "1749:3:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2500,12 +2504,12 @@ }, { "argumentTypes": null, - "id": 5236, + "id": 7797, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5223, - "src": "1808:6:19", + "referencedDeclaration": 7784, + "src": "1754:6:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2523,20 +2527,20 @@ "typeString": "uint256" } ], - "id": 5234, + "id": 7795, "name": "transfer", "nodeType": "Identifier", "overloadedDeclarations": [ - 5219 + 7780 ], - "referencedDeclaration": 5219, - "src": "1794:8:19", + "referencedDeclaration": 7780, + "src": "1740:8:30", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) returns (bool)" } }, - "id": 5237, + "id": 7798, "isConstant": false, "isLValue": false, "isPure": false, @@ -2544,15 +2548,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1794:21:19", + "src": "1740:21:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 5238, + "id": 7799, "nodeType": "ExpressionStatement", - "src": "1794:21:19" + "src": "1740:21:30" }, { "condition": { @@ -2561,19 +2565,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5241, + "id": 7802, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5239, + "id": 7800, "name": "_vestingTime", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5225, - "src": "1830:12:19", + "referencedDeclaration": 7786, + "src": "1776:12:30", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -2583,31 +2587,31 @@ "operator": ">", "rightExpression": { "argumentTypes": null, - "id": 5240, + "id": 7801, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7296, - "src": "1845:3:19", + "referencedDeclaration": 10044, + "src": "1791:3:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1830:18:19", + "src": "1776:18:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 5252, + "id": 7813, "nodeType": "IfStatement", - "src": "1826:101:19", + "src": "1772:101:30", "trueBody": { - "id": 5251, + "id": 7812, "nodeType": "Block", - "src": "1850:77:19", + "src": "1796:77:30", "statements": [ { "expression": { @@ -2619,14 +2623,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 5244, + "id": 7805, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1886:1:19", + "src": "1832:1:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2642,20 +2646,20 @@ "typeString": "int_const 0" } ], - "id": 5243, + "id": 7804, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1878:7:19", + "src": "1824:7:30", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 5245, + "id": 7806, "isConstant": false, "isLValue": false, "isPure": true, @@ -2663,7 +2667,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1878:10:19", + "src": "1824:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2671,12 +2675,12 @@ }, { "argumentTypes": null, - "id": 5246, + "id": 7807, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5221, - "src": "1890:3:19", + "referencedDeclaration": 7782, + "src": "1836:3:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2684,12 +2688,12 @@ }, { "argumentTypes": null, - "id": 5247, + "id": 7808, "name": "_vestingTime", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5225, - "src": "1895:12:19", + "referencedDeclaration": 7786, + "src": "1841:12:30", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -2697,12 +2701,12 @@ }, { "argumentTypes": null, - "id": 5248, + "id": 7809, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5223, - "src": "1909:6:19", + "referencedDeclaration": 7784, + "src": "1855:6:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2728,18 +2732,18 @@ "typeString": "uint256" } ], - "id": 5242, + "id": 7803, "name": "_addToVesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5644, - "src": "1864:13:19", + "referencedDeclaration": 8205, + "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": 5249, + "id": 7810, "isConstant": false, "isLValue": false, "isPure": false, @@ -2747,15 +2751,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1864:52:19", + "src": "1810:52:30", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5250, + "id": 7811, "nodeType": "ExpressionStatement", - "src": "1864:52:19" + "src": "1810:52:30" } ] } @@ -2768,18 +2772,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5254, + "id": 7815, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "1958:3:19", + "referencedDeclaration": 10042, + "src": "1904:3:30", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 5255, + "id": 7816, "isConstant": false, "isLValue": false, "isPure": false, @@ -2787,7 +2791,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1958:10:19", + "src": "1904:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2795,12 +2799,12 @@ }, { "argumentTypes": null, - "id": 5256, + "id": 7817, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5221, - "src": "1970:3:19", + "referencedDeclaration": 7782, + "src": "1916:3:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2808,12 +2812,12 @@ }, { "argumentTypes": null, - "id": 5257, + "id": 7818, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5223, - "src": "1975:6:19", + "referencedDeclaration": 7784, + "src": "1921:6:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2821,12 +2825,12 @@ }, { "argumentTypes": null, - "id": 5258, + "id": 7819, "name": "_vestingTime", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5225, - "src": "1983:12:19", + "referencedDeclaration": 7786, + "src": "1929:12:30", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -2852,18 +2856,18 @@ "typeString": "uint32" } ], - "id": 5253, + "id": 7814, "name": "VestingTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5118, - "src": "1942:15:19", + "referencedDeclaration": 7679, + "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": 5259, + "id": 7820, "isConstant": false, "isLValue": false, "isPure": false, @@ -2871,28 +2875,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1942:54:19", + "src": "1888:54:30", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5260, + "id": 7821, "nodeType": "EmitStatement", - "src": "1937:59:19" + "src": "1883:59:30" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 5261, + "id": 7822, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "2014:4:19", + "src": "1960:4:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2900,15 +2904,15 @@ }, "value": "true" }, - "functionReturnParameters": 5233, - "id": 5262, + "functionReturnParameters": 7794, + "id": 7823, "nodeType": "Return", - "src": "2007:11:19" + "src": "1953:11:30" } ] }, "documentation": null, - "id": 5264, + "id": 7825, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -2919,18 +2923,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5228, + "id": 7789, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "1757:3:19", + "referencedDeclaration": 10042, + "src": "1703:3:30", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 5229, + "id": 7790, "isConstant": false, "isLValue": false, "isPure": false, @@ -2938,44 +2942,44 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1757:10:19", + "src": "1703:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], - "id": 5230, + "id": 7791, "modifierName": { "argumentTypes": null, - "id": 5227, + "id": 7788, "name": "onlyTrusted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5924, - "src": "1745:11:19", + "referencedDeclaration": 8485, + "src": "1691:11:30", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_address_$", "typeString": "modifier (address)" } }, "nodeType": "ModifierInvocation", - "src": "1745:23:19" + "src": "1691:23:30" } ], "name": "vestingTransfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 5226, + "id": 7787, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5221, + "id": 7782, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 5264, - "src": "1686:11:19", + "scope": 7825, + "src": "1632:11:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2983,10 +2987,10 @@ "typeString": "address" }, "typeName": { - "id": 5220, + "id": 7781, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1686:7:19", + "src": "1632:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2997,11 +3001,11 @@ }, { "constant": false, - "id": 5223, + "id": 7784, "name": "_value", "nodeType": "VariableDeclaration", - "scope": 5264, - "src": "1699:14:19", + "scope": 7825, + "src": "1645:14:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3009,10 +3013,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5222, + "id": 7783, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1699:7:19", + "src": "1645:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3023,11 +3027,11 @@ }, { "constant": false, - "id": 5225, + "id": 7786, "name": "_vestingTime", "nodeType": "VariableDeclaration", - "scope": 5264, - "src": "1715:19:19", + "scope": 7825, + "src": "1661:19:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3035,10 +3039,10 @@ "typeString": "uint32" }, "typeName": { - "id": 5224, + "id": 7785, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "1715:6:19", + "src": "1661:6:30", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -3048,20 +3052,20 @@ "visibility": "internal" } ], - "src": "1685:50:19" + "src": "1631:50:30" }, "payable": false, "returnParameters": { - "id": 5233, + "id": 7794, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5232, + "id": 7793, "name": "", "nodeType": "VariableDeclaration", - "scope": 5264, - "src": "1778:4:19", + "scope": 7825, + "src": "1724:4:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3069,10 +3073,10 @@ "typeString": "bool" }, "typeName": { - "id": 5231, + "id": 7792, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1778:4:19", + "src": "1724:4:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3082,45 +3086,45 @@ "visibility": "internal" } ], - "src": "1777:6:19" + "src": "1723:6:30" }, - "scope": 5925, - "src": "1661:364:19", + "scope": 8486, + "src": "1607:364:30", "stateMutability": "nonpayable", - "superFunction": null, + "superFunction": 7571, "visibility": "external" }, { "body": { - "id": 5275, + "id": 7836, "nodeType": "Block", - "src": "2312:40:19", + "src": "2258:40:30", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5271, + "id": 7832, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5091, - "src": "2329:8:19", + "referencedDeclaration": 7652, + "src": "2275:8:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 5273, + "id": 7834, "indexExpression": { "argumentTypes": null, - "id": 5272, + "id": 7833, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5266, - "src": "2338:6:19", + "referencedDeclaration": 7827, + "src": "2284:6:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3131,21 +3135,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2329:16:19", + "src": "2275:16:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 5270, - "id": 5274, + "functionReturnParameters": 7831, + "id": 7835, "nodeType": "Return", - "src": "2322:23:19" + "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": 5276, + "id": 7837, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -3153,16 +3157,16 @@ "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 5267, + "id": 7828, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5266, + "id": 7827, "name": "_owner", "nodeType": "VariableDeclaration", - "scope": 5276, - "src": "2258:14:19", + "scope": 7837, + "src": "2204:14:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3170,10 +3174,10 @@ "typeString": "address" }, "typeName": { - "id": 5265, + "id": 7826, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2258:7:19", + "src": "2204:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3183,20 +3187,20 @@ "visibility": "internal" } ], - "src": "2257:16:19" + "src": "2203:16:30" }, "payable": false, "returnParameters": { - "id": 5270, + "id": 7831, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5269, + "id": 7830, "name": "balance", "nodeType": "VariableDeclaration", - "scope": 5276, - "src": "2295:15:19", + "scope": 7837, + "src": "2241:15:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3204,10 +3208,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5268, + "id": 7829, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2295:7:19", + "src": "2241:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3217,19 +3221,19 @@ "visibility": "internal" } ], - "src": "2294:17:19" + "src": "2240:17:30" }, - "scope": 5925, - "src": "2239:113:19", + "scope": 8486, + "src": "2185:113:30", "stateMutability": "view", - "superFunction": 7031, + "superFunction": 9779, "visibility": "public" }, { "body": { - "id": 5365, + "id": 7926, "nodeType": "Block", - "src": "2724:430:19", + "src": "2670:430:30", "statements": [ { "expression": { @@ -3237,12 +3241,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5288, + "id": 7849, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5278, - "src": "2750:5:19", + "referencedDeclaration": 7839, + "src": "2696:5:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3256,18 +3260,18 @@ "typeString": "address" } ], - "id": 5287, + "id": 7848, "name": "_checkMyVesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5822, - "src": "2734:15:19", + "referencedDeclaration": 8383, + "src": "2680:15:30", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 5289, + "id": 7850, "isConstant": false, "isLValue": false, "isPure": false, @@ -3275,15 +3279,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2734:22:19", + "src": "2680:22:30", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5290, + "id": 7851, "nodeType": "ExpressionStatement", - "src": "2734:22:19" + "src": "2680:22:30" }, { "expression": { @@ -3295,19 +3299,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 5296, + "id": 7857, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5292, + "id": 7853, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5280, - "src": "2775:3:19", + "referencedDeclaration": 7841, + "src": "2721:3:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3321,14 +3325,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 5294, + "id": 7855, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2790:1:19", + "src": "2736:1:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3344,20 +3348,20 @@ "typeString": "int_const 0" } ], - "id": 5293, + "id": 7854, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2782:7:19", + "src": "2728:7:30", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 5295, + "id": 7856, "isConstant": false, "isLValue": false, "isPure": true, @@ -3365,13 +3369,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2782:10:19", + "src": "2728:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2775:17:19", + "src": "2721:17:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3385,21 +3389,21 @@ "typeString": "bool" } ], - "id": 5291, + "id": 7852, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "2767:7:19", + "referencedDeclaration": 10045, + "src": "2713:7:30", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5297, + "id": 7858, "isConstant": false, "isLValue": false, "isPure": false, @@ -3407,15 +3411,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2767:26:19", + "src": "2713:26:30", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5298, + "id": 7859, "nodeType": "ExpressionStatement", - "src": "2767:26:19" + "src": "2713:26:30" }, { "expression": { @@ -3427,19 +3431,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5304, + "id": 7865, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5300, + "id": 7861, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5282, - "src": "2811:6:19", + "referencedDeclaration": 7843, + "src": "2757:6:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3452,12 +3456,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5302, + "id": 7863, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5278, - "src": "2836:5:19", + "referencedDeclaration": 7839, + "src": "2782:5:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3471,18 +3475,20 @@ "typeString": "address" } ], - "id": 5301, + "id": 7862, "name": "accountBalance", "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5884, - "src": "2821:14:19", + "overloadedDeclarations": [ + 8445 + ], + "referencedDeclaration": 8445, + "src": "2767:14:30", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view returns (uint256)" } }, - "id": 5303, + "id": 7864, "isConstant": false, "isLValue": false, "isPure": false, @@ -3490,13 +3496,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2821:21:19", + "src": "2767:21:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2811:31:19", + "src": "2757:31:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3510,21 +3516,21 @@ "typeString": "bool" } ], - "id": 5299, + "id": 7860, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "2803:7:19", + "referencedDeclaration": 10045, + "src": "2749:7:30", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5305, + "id": 7866, "isConstant": false, "isLValue": false, "isPure": false, @@ -3532,15 +3538,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2803:40:19", + "src": "2749:40:30", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5306, + "id": 7867, "nodeType": "ExpressionStatement", - "src": "2803:40:19" + "src": "2749:40:30" }, { "expression": { @@ -3552,19 +3558,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5315, + "id": 7876, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5308, + "id": 7869, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5282, - "src": "2861:6:19", + "referencedDeclaration": 7843, + "src": "2807:6:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3578,26 +3584,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5309, + "id": 7870, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5087, - "src": "2871:7:19", + "referencedDeclaration": 7648, + "src": "2817:7:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 5311, + "id": 7872, "indexExpression": { "argumentTypes": null, - "id": 5310, + "id": 7871, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5278, - "src": "2879:5:19", + "referencedDeclaration": 7839, + "src": "2825:5:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3608,29 +3614,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2871:14:19", + "src": "2817:14:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 5314, + "id": 7875, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5312, + "id": 7873, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "2886:3:19", + "referencedDeclaration": 10042, + "src": "2832:3:30", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 5313, + "id": 7874, "isConstant": false, "isLValue": false, "isPure": false, @@ -3638,7 +3644,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2886:10:19", + "src": "2832:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3649,13 +3655,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2871:26:19", + "src": "2817:26:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2861:36:19", + "src": "2807:36:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3669,21 +3675,21 @@ "typeString": "bool" } ], - "id": 5307, + "id": 7868, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "2853:7:19", + "referencedDeclaration": 10045, + "src": "2799:7:30", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5316, + "id": 7877, "isConstant": false, "isLValue": false, "isPure": false, @@ -3691,20 +3697,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2853:45:19", + "src": "2799:45:30", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5317, + "id": 7878, "nodeType": "ExpressionStatement", - "src": "2853:45:19" + "src": "2799:45:30" }, { "expression": { "argumentTypes": null, - "id": 5327, + "id": 7888, "isConstant": false, "isLValue": false, "isPure": false, @@ -3713,26 +3719,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5318, + "id": 7879, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5091, - "src": "2909:8:19", + "referencedDeclaration": 7652, + "src": "2855:8:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 5320, + "id": 7881, "indexExpression": { "argumentTypes": null, - "id": 5319, + "id": 7880, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5278, - "src": "2918:5:19", + "referencedDeclaration": 7839, + "src": "2864:5:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3743,7 +3749,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2909:15:19", + "src": "2855:15:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3756,12 +3762,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5325, + "id": 7886, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5282, - "src": "2947:6:19", + "referencedDeclaration": 7843, + "src": "2893:6:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3779,26 +3785,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5321, + "id": 7882, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5091, - "src": "2927:8:19", + "referencedDeclaration": 7652, + "src": "2873:8:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 5323, + "id": 7884, "indexExpression": { "argumentTypes": null, - "id": 5322, + "id": 7883, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5278, - "src": "2936:5:19", + "referencedDeclaration": 7839, + "src": "2882:5:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3809,27 +3815,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2927:15:19", + "src": "2873:15:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5324, + "id": 7885, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 6829, - "src": "2927:19:19", + "referencedDeclaration": 9577, + "src": "2873:19: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": 5326, + "id": 7887, "isConstant": false, "isLValue": false, "isPure": false, @@ -3837,26 +3843,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2927:27:19", + "src": "2873:27:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2909:45:19", + "src": "2855:45:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5328, + "id": 7889, "nodeType": "ExpressionStatement", - "src": "2909:45:19" + "src": "2855:45:30" }, { "expression": { "argumentTypes": null, - "id": 5338, + "id": 7899, "isConstant": false, "isLValue": false, "isPure": false, @@ -3865,26 +3871,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5329, + "id": 7890, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5091, - "src": "2964:8:19", + "referencedDeclaration": 7652, + "src": "2910:8:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 5331, + "id": 7892, "indexExpression": { "argumentTypes": null, - "id": 5330, + "id": 7891, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5280, - "src": "2973:3:19", + "referencedDeclaration": 7841, + "src": "2919:3:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3895,7 +3901,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2964:13:19", + "src": "2910:13:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3908,12 +3914,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5336, + "id": 7897, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5282, - "src": "2998:6:19", + "referencedDeclaration": 7843, + "src": "2944:6:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3931,26 +3937,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5332, + "id": 7893, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5091, - "src": "2980:8:19", + "referencedDeclaration": 7652, + "src": "2926:8:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 5334, + "id": 7895, "indexExpression": { "argumentTypes": null, - "id": 5333, + "id": 7894, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5280, - "src": "2989:3:19", + "referencedDeclaration": 7841, + "src": "2935:3:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3961,27 +3967,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2980:13:19", + "src": "2926:13:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5335, + "id": 7896, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 6853, - "src": "2980:17:19", + "referencedDeclaration": 9601, + "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)" } }, - "id": 5337, + "id": 7898, "isConstant": false, "isLValue": false, "isPure": false, @@ -3989,26 +3995,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2980:25:19", + "src": "2926:25:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2964:41:19", + "src": "2910:41:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5339, + "id": 7900, "nodeType": "ExpressionStatement", - "src": "2964:41:19" + "src": "2910:41:30" }, { "expression": { "argumentTypes": null, - "id": 5355, + "id": 7916, "isConstant": false, "isLValue": false, "isPure": false, @@ -4019,26 +4025,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5340, + "id": 7901, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5087, - "src": "3015:7:19", + "referencedDeclaration": 7648, + "src": "2961:7:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 5344, + "id": 7905, "indexExpression": { "argumentTypes": null, - "id": 5341, + "id": 7902, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5278, - "src": "3023:5:19", + "referencedDeclaration": 7839, + "src": "2969:5:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4049,29 +4055,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3015:14:19", + "src": "2961:14:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 5345, + "id": 7906, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5342, + "id": 7903, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "3030:3:19", + "referencedDeclaration": 10042, + "src": "2976:3:30", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 5343, + "id": 7904, "isConstant": false, "isLValue": false, "isPure": false, @@ -4079,7 +4085,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3030:10:19", + "src": "2976:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4090,7 +4096,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3015:26:19", + "src": "2961:26:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4103,12 +4109,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5353, + "id": 7914, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5282, - "src": "3075:6:19", + "referencedDeclaration": 7843, + "src": "3021:6:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4128,26 +4134,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5346, + "id": 7907, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5087, - "src": "3044:7:19", + "referencedDeclaration": 7648, + "src": "2990:7:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 5348, + "id": 7909, "indexExpression": { "argumentTypes": null, - "id": 5347, + "id": 7908, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5278, - "src": "3052:5:19", + "referencedDeclaration": 7839, + "src": "2998:5:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4158,29 +4164,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3044:14:19", + "src": "2990:14:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 5351, + "id": 7912, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5349, + "id": 7910, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "3059:3:19", + "referencedDeclaration": 10042, + "src": "3005:3:30", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 5350, + "id": 7911, "isConstant": false, "isLValue": false, "isPure": false, @@ -4188,7 +4194,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3059:10:19", + "src": "3005:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4199,27 +4205,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3044:26:19", + "src": "2990:26:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5352, + "id": 7913, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 6829, - "src": "3044:30:19", + "referencedDeclaration": 9577, + "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)" } }, - "id": 5354, + "id": 7915, "isConstant": false, "isLValue": false, "isPure": false, @@ -4227,21 +4233,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3044:38:19", + "src": "2990:38:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3015:67:19", + "src": "2961:67:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5356, + "id": 7917, "nodeType": "ExpressionStatement", - "src": "3015:67:19" + "src": "2961:67:30" }, { "eventCall": { @@ -4249,12 +4255,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5358, + "id": 7919, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5278, - "src": "3107:5:19", + "referencedDeclaration": 7839, + "src": "3053:5:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4262,12 +4268,12 @@ }, { "argumentTypes": null, - "id": 5359, + "id": 7920, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5280, - "src": "3114:3:19", + "referencedDeclaration": 7841, + "src": "3060:3:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4275,12 +4281,12 @@ }, { "argumentTypes": null, - "id": 5360, + "id": 7921, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5282, - "src": "3119:6:19", + "referencedDeclaration": 7843, + "src": "3065:6:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4302,18 +4308,18 @@ "typeString": "uint256" } ], - "id": 5357, + "id": 7918, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7048, - "src": "3098:8:19", + "referencedDeclaration": 9796, + "src": "3044:8:30", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 5361, + "id": 7922, "isConstant": false, "isLValue": false, "isPure": false, @@ -4321,28 +4327,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3098:28:19", + "src": "3044:28:30", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5362, + "id": 7923, "nodeType": "EmitStatement", - "src": "3093:33:19" + "src": "3039:33:30" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 5363, + "id": 7924, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3143:4:19", + "src": "3089:4:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -4350,15 +4356,15 @@ }, "value": "true" }, - "functionReturnParameters": 5286, - "id": 5364, + "functionReturnParameters": 7847, + "id": 7925, "nodeType": "Return", - "src": "3136:11:19" + "src": "3082:11:30" } ] }, "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": 5366, + "id": 7927, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -4366,16 +4372,16 @@ "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 5283, + "id": 7844, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5278, + "id": 7839, "name": "_from", "nodeType": "VariableDeclaration", - "scope": 5366, - "src": "2658:13:19", + "scope": 7927, + "src": "2604:13:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4383,10 +4389,10 @@ "typeString": "address" }, "typeName": { - "id": 5277, + "id": 7838, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2658:7:19", + "src": "2604:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4397,11 +4403,11 @@ }, { "constant": false, - "id": 5280, + "id": 7841, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 5366, - "src": "2673:11:19", + "scope": 7927, + "src": "2619:11:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4409,10 +4415,10 @@ "typeString": "address" }, "typeName": { - "id": 5279, + "id": 7840, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2673:7:19", + "src": "2619:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4423,11 +4429,11 @@ }, { "constant": false, - "id": 5282, + "id": 7843, "name": "_value", "nodeType": "VariableDeclaration", - "scope": 5366, - "src": "2686:14:19", + "scope": 7927, + "src": "2632:14:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4435,10 +4441,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5281, + "id": 7842, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2686:7:19", + "src": "2632:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4448,20 +4454,20 @@ "visibility": "internal" } ], - "src": "2657:44:19" + "src": "2603:44:30" }, "payable": false, "returnParameters": { - "id": 5286, + "id": 7847, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5285, + "id": 7846, "name": "", "nodeType": "VariableDeclaration", - "scope": 5366, - "src": "2718:4:19", + "scope": 7927, + "src": "2664:4:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4469,10 +4475,10 @@ "typeString": "bool" }, "typeName": { - "id": 5284, + "id": 7845, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2718:4:19", + "src": "2664:4:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4482,24 +4488,24 @@ "visibility": "internal" } ], - "src": "2717:6:19" + "src": "2663:6:30" }, - "scope": 5925, - "src": "2636:518:19", + "scope": 8486, + "src": "2582:518:30", "stateMutability": "nonpayable", - "superFunction": 6999, + "superFunction": 9747, "visibility": "public" }, { "body": { - "id": 5393, + "id": 7954, "nodeType": "Block", - "src": "3863:130:19", + "src": "3809:130:30", "statements": [ { "expression": { "argumentTypes": null, - "id": 5382, + "id": 7943, "isConstant": false, "isLValue": false, "isPure": false, @@ -4510,34 +4516,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5375, + "id": 7936, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5087, - "src": "3873:7:19", + "referencedDeclaration": 7648, + "src": "3819:7:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 5379, + "id": 7940, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5376, + "id": 7937, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "3881:3:19", + "referencedDeclaration": 10042, + "src": "3827:3:30", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 5377, + "id": 7938, "isConstant": false, "isLValue": false, "isPure": false, @@ -4545,7 +4551,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3881:10:19", + "src": "3827:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4556,21 +4562,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3873:19:19", + "src": "3819:19:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 5380, + "id": 7941, "indexExpression": { "argumentTypes": null, - "id": 5378, + "id": 7939, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5368, - "src": "3893:8:19", + "referencedDeclaration": 7929, + "src": "3839:8:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4581,7 +4587,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3873:29:19", + "src": "3819:29:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4591,26 +4597,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 5381, + "id": 7942, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5370, - "src": "3905:6:19", + "referencedDeclaration": 7931, + "src": "3851:6:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3873:38:19", + "src": "3819:38:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5383, + "id": 7944, "nodeType": "ExpressionStatement", - "src": "3873:38:19" + "src": "3819:38:30" }, { "eventCall": { @@ -4620,18 +4626,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5385, + "id": 7946, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "3935:3:19", + "referencedDeclaration": 10042, + "src": "3881:3:30", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 5386, + "id": 7947, "isConstant": false, "isLValue": false, "isPure": false, @@ -4639,7 +4645,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3935:10:19", + "src": "3881:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4647,12 +4653,12 @@ }, { "argumentTypes": null, - "id": 5387, + "id": 7948, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5368, - "src": "3947:8:19", + "referencedDeclaration": 7929, + "src": "3893:8:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4660,12 +4666,12 @@ }, { "argumentTypes": null, - "id": 5388, + "id": 7949, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5370, - "src": "3957:6:19", + "referencedDeclaration": 7931, + "src": "3903:6:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4687,18 +4693,18 @@ "typeString": "uint256" } ], - "id": 5384, + "id": 7945, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7016, - "src": "3926:8:19", + "referencedDeclaration": 9764, + "src": "3872:8:30", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 5389, + "id": 7950, "isConstant": false, "isLValue": false, "isPure": false, @@ -4706,28 +4712,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3926:38:19", + "src": "3872:38:30", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5390, + "id": 7951, "nodeType": "EmitStatement", - "src": "3921:43:19" + "src": "3867:43:30" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 5391, + "id": 7952, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3982:4:19", + "src": "3928:4:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -4735,15 +4741,15 @@ }, "value": "true" }, - "functionReturnParameters": 5374, - "id": 5392, + "functionReturnParameters": 7935, + "id": 7953, "nodeType": "Return", - "src": "3975:11:19" + "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": 5394, + "id": 7955, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -4751,16 +4757,16 @@ "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 5371, + "id": 7932, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5368, + "id": 7929, "name": "_spender", "nodeType": "VariableDeclaration", - "scope": 5394, - "src": "3807:16:19", + "scope": 7955, + "src": "3753:16:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4768,10 +4774,10 @@ "typeString": "address" }, "typeName": { - "id": 5367, + "id": 7928, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3807:7:19", + "src": "3753:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4782,11 +4788,11 @@ }, { "constant": false, - "id": 5370, + "id": 7931, "name": "_value", "nodeType": "VariableDeclaration", - "scope": 5394, - "src": "3825:14:19", + "scope": 7955, + "src": "3771:14:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4794,10 +4800,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5369, + "id": 7930, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3825:7:19", + "src": "3771:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4807,20 +4813,20 @@ "visibility": "internal" } ], - "src": "3806:34:19" + "src": "3752:34:30" }, "payable": false, "returnParameters": { - "id": 5374, + "id": 7935, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5373, + "id": 7934, "name": "", "nodeType": "VariableDeclaration", - "scope": 5394, - "src": "3857:4:19", + "scope": 7955, + "src": "3803:4:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4828,10 +4834,10 @@ "typeString": "bool" }, "typeName": { - "id": 5372, + "id": 7933, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3857:4:19", + "src": "3803:4:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4841,19 +4847,19 @@ "visibility": "internal" } ], - "src": "3856:6:19" + "src": "3802:6:30" }, - "scope": 5925, - "src": "3790:203:19", + "scope": 8486, + "src": "3736:203:30", "stateMutability": "nonpayable", - "superFunction": 7008, + "superFunction": 9756, "visibility": "public" }, { "body": { - "id": 5409, + "id": 7970, "nodeType": "Block", - "src": "4404:49:19", + "src": "4350:49:30", "statements": [ { "expression": { @@ -4862,26 +4868,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5403, + "id": 7964, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5087, - "src": "4421:7:19", + "referencedDeclaration": 7648, + "src": "4367:7:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 5405, + "id": 7966, "indexExpression": { "argumentTypes": null, - "id": 5404, + "id": 7965, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5396, - "src": "4429:6:19", + "referencedDeclaration": 7957, + "src": "4375:6:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4892,21 +4898,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4421:15:19", + "src": "4367:15:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 5407, + "id": 7968, "indexExpression": { "argumentTypes": null, - "id": 5406, + "id": 7967, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5398, - "src": "4437:8:19", + "referencedDeclaration": 7959, + "src": "4383:8:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4917,21 +4923,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4421:25:19", + "src": "4367:25:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 5402, - "id": 5408, + "functionReturnParameters": 7963, + "id": 7969, "nodeType": "Return", - "src": "4414:32:19" + "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": 5410, + "id": 7971, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -4939,16 +4945,16 @@ "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 5399, + "id": 7960, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5396, + "id": 7957, "name": "_owner", "nodeType": "VariableDeclaration", - "scope": 5410, - "src": "4340:14:19", + "scope": 7971, + "src": "4286:14:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4956,10 +4962,10 @@ "typeString": "address" }, "typeName": { - "id": 5395, + "id": 7956, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4340:7:19", + "src": "4286:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4970,11 +4976,11 @@ }, { "constant": false, - "id": 5398, + "id": 7959, "name": "_spender", "nodeType": "VariableDeclaration", - "scope": 5410, - "src": "4356:16:19", + "scope": 7971, + "src": "4302:16:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4982,10 +4988,10 @@ "typeString": "address" }, "typeName": { - "id": 5397, + "id": 7958, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4356:7:19", + "src": "4302:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4995,20 +5001,20 @@ "visibility": "internal" } ], - "src": "4339:34:19" + "src": "4285:34:30" }, "payable": false, "returnParameters": { - "id": 5402, + "id": 7963, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5401, + "id": 7962, "name": "", "nodeType": "VariableDeclaration", - "scope": 5410, - "src": "4395:7:19", + "scope": 7971, + "src": "4341:7:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5016,10 +5022,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5400, + "id": 7961, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4395:7:19", + "src": "4341:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5029,24 +5035,24 @@ "visibility": "internal" } ], - "src": "4394:9:19" + "src": "4340:9:30" }, - "scope": 5925, - "src": "4321:132:19", + "scope": 8486, + "src": "4267:132:30", "stateMutability": "view", - "superFunction": 6988, + "superFunction": 9736, "visibility": "public" }, { "body": { - "id": 5450, + "id": 8011, "nodeType": "Block", - "src": "5007:193:19", + "src": "4953:193:30", "statements": [ { "expression": { "argumentTypes": null, - "id": 5434, + "id": 7995, "isConstant": false, "isLValue": false, "isPure": false, @@ -5057,34 +5063,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5419, + "id": 7980, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5087, - "src": "5017:7:19", + "referencedDeclaration": 7648, + "src": "4963:7:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 5423, + "id": 7984, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5420, + "id": 7981, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "5025:3:19", + "referencedDeclaration": 10042, + "src": "4971:3:30", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 5421, + "id": 7982, "isConstant": false, "isLValue": false, "isPure": false, @@ -5092,7 +5098,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5025:10:19", + "src": "4971:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5103,21 +5109,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5017:19:19", + "src": "4963:19:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 5424, + "id": 7985, "indexExpression": { "argumentTypes": null, - "id": 5422, + "id": 7983, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5412, - "src": "5037:8:19", + "referencedDeclaration": 7973, + "src": "4983:8:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5128,7 +5134,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5017:29:19", + "src": "4963:29:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5141,12 +5147,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5432, + "id": 7993, "name": "_addedValue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5414, - "src": "5083:11:19", + "referencedDeclaration": 7975, + "src": "5029:11:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5166,34 +5172,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5425, + "id": 7986, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5087, - "src": "5049:7:19", + "referencedDeclaration": 7648, + "src": "4995:7:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 5428, + "id": 7989, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5426, + "id": 7987, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "5057:3:19", + "referencedDeclaration": 10042, + "src": "5003:3:30", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 5427, + "id": 7988, "isConstant": false, "isLValue": false, "isPure": false, @@ -5201,7 +5207,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5057:10:19", + "src": "5003:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5212,21 +5218,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5049:19:19", + "src": "4995:19:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 5430, + "id": 7991, "indexExpression": { "argumentTypes": null, - "id": 5429, + "id": 7990, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5412, - "src": "5069:8:19", + "referencedDeclaration": 7973, + "src": "5015:8:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5237,27 +5243,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5049:29:19", + "src": "4995:29:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5431, + "id": 7992, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 6853, - "src": "5049:33:19", + "referencedDeclaration": 9601, + "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": 5433, + "id": 7994, "isConstant": false, "isLValue": false, "isPure": false, @@ -5265,21 +5271,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5049:46:19", + "src": "4995:46:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5017:78:19", + "src": "4963:78:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5435, + "id": 7996, "nodeType": "ExpressionStatement", - "src": "5017:78:19" + "src": "4963:78:30" }, { "eventCall": { @@ -5289,18 +5295,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5437, + "id": 7998, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "5119:3:19", + "referencedDeclaration": 10042, + "src": "5065:3:30", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 5438, + "id": 7999, "isConstant": false, "isLValue": false, "isPure": false, @@ -5308,7 +5314,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5119:10:19", + "src": "5065:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5316,12 +5322,12 @@ }, { "argumentTypes": null, - "id": 5439, + "id": 8000, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5412, - "src": "5131:8:19", + "referencedDeclaration": 7973, + "src": "5077:8:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5333,34 +5339,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5440, + "id": 8001, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5087, - "src": "5141:7:19", + "referencedDeclaration": 7648, + "src": "5087:7:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 5443, + "id": 8004, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5441, + "id": 8002, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "5149:3:19", + "referencedDeclaration": 10042, + "src": "5095:3:30", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 5442, + "id": 8003, "isConstant": false, "isLValue": false, "isPure": false, @@ -5368,7 +5374,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5149:10:19", + "src": "5095:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5379,21 +5385,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5141:19:19", + "src": "5087:19:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 5445, + "id": 8006, "indexExpression": { "argumentTypes": null, - "id": 5444, + "id": 8005, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5412, - "src": "5161:8:19", + "referencedDeclaration": 7973, + "src": "5107:8:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5404,7 +5410,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5141:29:19", + "src": "5087:29:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5426,18 +5432,18 @@ "typeString": "uint256" } ], - "id": 5436, + "id": 7997, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7016, - "src": "5110:8:19", + "referencedDeclaration": 9764, + "src": "5056:8:30", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 5446, + "id": 8007, "isConstant": false, "isLValue": false, "isPure": false, @@ -5445,28 +5451,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5110:61:19", + "src": "5056:61:30", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5447, + "id": 8008, "nodeType": "EmitStatement", - "src": "5105:66:19" + "src": "5051:66:30" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 5448, + "id": 8009, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "5189:4:19", + "src": "5135:4:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -5474,15 +5480,15 @@ }, "value": "true" }, - "functionReturnParameters": 5418, - "id": 5449, + "functionReturnParameters": 7979, + "id": 8010, "nodeType": "Return", - "src": "5182:11:19" + "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": 5451, + "id": 8012, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -5490,16 +5496,16 @@ "name": "increaseApproval", "nodeType": "FunctionDefinition", "parameters": { - "id": 5415, + "id": 7976, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5412, + "id": 7973, "name": "_spender", "nodeType": "VariableDeclaration", - "scope": 5451, - "src": "4949:16:19", + "scope": 8012, + "src": "4895:16:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5507,10 +5513,10 @@ "typeString": "address" }, "typeName": { - "id": 5411, + "id": 7972, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4949:7:19", + "src": "4895:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5521,11 +5527,11 @@ }, { "constant": false, - "id": 5414, + "id": 7975, "name": "_addedValue", "nodeType": "VariableDeclaration", - "scope": 5451, - "src": "4967:16:19", + "scope": 8012, + "src": "4913:16:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5533,10 +5539,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5413, + "id": 7974, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4967:4:19", + "src": "4913:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5546,20 +5552,20 @@ "visibility": "internal" } ], - "src": "4948:36:19" + "src": "4894:36:30" }, "payable": false, "returnParameters": { - "id": 5418, + "id": 7979, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5417, + "id": 7978, "name": "", "nodeType": "VariableDeclaration", - "scope": 5451, - "src": "5001:4:19", + "scope": 8012, + "src": "4947:4:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5567,10 +5573,10 @@ "typeString": "bool" }, "typeName": { - "id": 5416, + "id": 7977, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5001:4:19", + "src": "4947:4:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5580,32 +5586,32 @@ "visibility": "internal" } ], - "src": "5000:6:19" + "src": "4946:6:30" }, - "scope": 5925, - "src": "4923:277:19", + "scope": 8486, + "src": "4869:277:30", "stateMutability": "nonpayable", - "superFunction": null, + "superFunction": 7580, "visibility": "public" }, { "body": { - "id": 5510, + "id": 8071, "nodeType": "Block", - "src": "5764:354:19", + "src": "5710:354:30", "statements": [ { "assignments": [ - 5461 + 8022 ], "declarations": [ { "constant": false, - "id": 5461, + "id": 8022, "name": "oldValue", "nodeType": "VariableDeclaration", - "scope": 5511, - "src": "5774:13:19", + "scope": 8072, + "src": "5720:13:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5613,10 +5619,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5460, + "id": 8021, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5774:4:19", + "src": "5720:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5626,41 +5632,41 @@ "visibility": "internal" } ], - "id": 5468, + "id": 8029, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5462, + "id": 8023, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5087, - "src": "5790:7:19", + "referencedDeclaration": 7648, + "src": "5736:7:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 5465, + "id": 8026, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5463, + "id": 8024, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "5798:3:19", + "referencedDeclaration": 10042, + "src": "5744:3:30", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 5464, + "id": 8025, "isConstant": false, "isLValue": false, "isPure": false, @@ -5668,7 +5674,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5798:10:19", + "src": "5744:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5679,21 +5685,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5790:19:19", + "src": "5736:19:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 5467, + "id": 8028, "indexExpression": { "argumentTypes": null, - "id": 5466, + "id": 8027, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5453, - "src": "5810:8:19", + "referencedDeclaration": 8014, + "src": "5756:8:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5704,14 +5710,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5790:29:19", + "src": "5736:29:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "5774:45:19" + "src": "5720:45:30" }, { "condition": { @@ -5720,19 +5726,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5471, + "id": 8032, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5469, + "id": 8030, "name": "_subtractedValue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5455, - "src": "5833:16:19", + "referencedDeclaration": 8016, + "src": "5779:16:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5742,32 +5748,32 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 5470, + "id": 8031, "name": "oldValue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5461, - "src": "5853:8:19", + "referencedDeclaration": 8022, + "src": "5799:8:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5833:28:19", + "src": "5779:28:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 5494, + "id": 8055, "nodeType": "Block", - "src": "5927:87:19", + "src": "5873:87:30", "statements": [ { "expression": { "argumentTypes": null, - "id": 5492, + "id": 8053, "isConstant": false, "isLValue": false, "isPure": false, @@ -5778,34 +5784,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5482, + "id": 8043, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5087, - "src": "5941:7:19", + "referencedDeclaration": 7648, + "src": "5887:7:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 5486, + "id": 8047, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5483, + "id": 8044, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "5949:3:19", + "referencedDeclaration": 10042, + "src": "5895:3:30", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 5484, + "id": 8045, "isConstant": false, "isLValue": false, "isPure": false, @@ -5813,7 +5819,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5949:10:19", + "src": "5895:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5824,21 +5830,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5941:19:19", + "src": "5887:19:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 5487, + "id": 8048, "indexExpression": { "argumentTypes": null, - "id": 5485, + "id": 8046, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5453, - "src": "5961:8:19", + "referencedDeclaration": 8014, + "src": "5907:8:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5849,7 +5855,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5941:29:19", + "src": "5887:29:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5862,12 +5868,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5490, + "id": 8051, "name": "_subtractedValue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5455, - "src": "5986:16:19", + "referencedDeclaration": 8016, + "src": "5932:16:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5883,32 +5889,32 @@ ], "expression": { "argumentTypes": null, - "id": 5488, + "id": 8049, "name": "oldValue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5461, - "src": "5973:8:19", + "referencedDeclaration": 8022, + "src": "5919:8:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5489, + "id": 8050, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 6829, - "src": "5973:12:19", + "referencedDeclaration": 9577, + "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": 5491, + "id": 8052, "isConstant": false, "isLValue": false, "isPure": false, @@ -5916,36 +5922,36 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5973:30:19", + "src": "5919:30:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5941:62:19", + "src": "5887:62:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5493, + "id": 8054, "nodeType": "ExpressionStatement", - "src": "5941:62:19" + "src": "5887:62:30" } ] }, - "id": 5495, + "id": 8056, "nodeType": "IfStatement", - "src": "5829:185:19", + "src": "5775:185:30", "trueBody": { - "id": 5481, + "id": 8042, "nodeType": "Block", - "src": "5863:58:19", + "src": "5809:58:30", "statements": [ { "expression": { "argumentTypes": null, - "id": 5479, + "id": 8040, "isConstant": false, "isLValue": false, "isPure": false, @@ -5956,34 +5962,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5472, + "id": 8033, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5087, - "src": "5877:7:19", + "referencedDeclaration": 7648, + "src": "5823:7:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 5476, + "id": 8037, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5473, + "id": 8034, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "5885:3:19", + "referencedDeclaration": 10042, + "src": "5831:3:30", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 5474, + "id": 8035, "isConstant": false, "isLValue": false, "isPure": false, @@ -5991,7 +5997,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5885:10:19", + "src": "5831:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6002,21 +6008,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5877:19:19", + "src": "5823:19:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 5477, + "id": 8038, "indexExpression": { "argumentTypes": null, - "id": 5475, + "id": 8036, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5453, - "src": "5897:8:19", + "referencedDeclaration": 8014, + "src": "5843:8:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6027,7 +6033,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5877:29:19", + "src": "5823:29:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6038,14 +6044,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 5478, + "id": 8039, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5909:1:19", + "src": "5855:1:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6053,15 +6059,15 @@ }, "value": "0" }, - "src": "5877:33:19", + "src": "5823:33:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5480, + "id": 8041, "nodeType": "ExpressionStatement", - "src": "5877:33:19" + "src": "5823:33:30" } ] } @@ -6074,18 +6080,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5497, + "id": 8058, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "6037:3:19", + "referencedDeclaration": 10042, + "src": "5983:3:30", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 5498, + "id": 8059, "isConstant": false, "isLValue": false, "isPure": false, @@ -6093,7 +6099,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6037:10:19", + "src": "5983:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6101,12 +6107,12 @@ }, { "argumentTypes": null, - "id": 5499, + "id": 8060, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5453, - "src": "6049:8:19", + "referencedDeclaration": 8014, + "src": "5995:8:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6118,34 +6124,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5500, + "id": 8061, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5087, - "src": "6059:7:19", + "referencedDeclaration": 7648, + "src": "6005:7:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 5503, + "id": 8064, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5501, + "id": 8062, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "6067:3:19", + "referencedDeclaration": 10042, + "src": "6013:3:30", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 5502, + "id": 8063, "isConstant": false, "isLValue": false, "isPure": false, @@ -6153,7 +6159,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6067:10:19", + "src": "6013:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6164,21 +6170,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6059:19:19", + "src": "6005:19:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 5505, + "id": 8066, "indexExpression": { "argumentTypes": null, - "id": 5504, + "id": 8065, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5453, - "src": "6079:8:19", + "referencedDeclaration": 8014, + "src": "6025:8:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6189,7 +6195,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6059:29:19", + "src": "6005:29:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6211,18 +6217,18 @@ "typeString": "uint256" } ], - "id": 5496, + "id": 8057, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7016, - "src": "6028:8:19", + "referencedDeclaration": 9764, + "src": "5974:8:30", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 5506, + "id": 8067, "isConstant": false, "isLValue": false, "isPure": false, @@ -6230,28 +6236,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6028:61:19", + "src": "5974:61:30", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5507, + "id": 8068, "nodeType": "EmitStatement", - "src": "6023:66:19" + "src": "5969:66:30" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 5508, + "id": 8069, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "6107:4:19", + "src": "6053:4:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -6259,15 +6265,15 @@ }, "value": "true" }, - "functionReturnParameters": 5459, - "id": 5509, + "functionReturnParameters": 8020, + "id": 8070, "nodeType": "Return", - "src": "6100:11:19" + "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": 5511, + "id": 8072, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -6275,16 +6281,16 @@ "name": "decreaseApproval", "nodeType": "FunctionDefinition", "parameters": { - "id": 5456, + "id": 8017, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5453, + "id": 8014, "name": "_spender", "nodeType": "VariableDeclaration", - "scope": 5511, - "src": "5701:16:19", + "scope": 8072, + "src": "5647:16:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6292,10 +6298,10 @@ "typeString": "address" }, "typeName": { - "id": 5452, + "id": 8013, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5701:7:19", + "src": "5647:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6306,11 +6312,11 @@ }, { "constant": false, - "id": 5455, + "id": 8016, "name": "_subtractedValue", "nodeType": "VariableDeclaration", - "scope": 5511, - "src": "5719:21:19", + "scope": 8072, + "src": "5665:21:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6318,10 +6324,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5454, + "id": 8015, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5719:4:19", + "src": "5665:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6331,20 +6337,20 @@ "visibility": "internal" } ], - "src": "5700:41:19" + "src": "5646:41:30" }, "payable": false, "returnParameters": { - "id": 5459, + "id": 8020, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5458, + "id": 8019, "name": "", "nodeType": "VariableDeclaration", - "scope": 5511, - "src": "5758:4:19", + "scope": 8072, + "src": "5704:4:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6352,10 +6358,10 @@ "typeString": "bool" }, "typeName": { - "id": 5457, + "id": 8018, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5758:4:19", + "src": "5704:4:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6365,19 +6371,19 @@ "visibility": "internal" } ], - "src": "5757:6:19" + "src": "5703:6:30" }, - "scope": 5925, - "src": "5675:443:19", + "scope": 8486, + "src": "5621:443:30", "stateMutability": "nonpayable", - "superFunction": null, + "superFunction": 7589, "visibility": "public" }, { "body": { - "id": 5586, + "id": 8147, "nodeType": "Block", - "src": "6234:422:19", + "src": "6180:422:30", "statements": [ { "expression": { @@ -6389,7 +6395,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5532, + "id": 8093, "isConstant": false, "isLValue": false, "isPure": false, @@ -6399,12 +6405,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5529, + "id": 8090, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5515, - "src": "6269:7:19", + "referencedDeclaration": 8076, + "src": "6215:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6420,32 +6426,32 @@ ], "expression": { "argumentTypes": null, - "id": 5527, + "id": 8088, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5093, - "src": "6252:12:19", + "referencedDeclaration": 7654, + "src": "6198:12:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5528, + "id": 8089, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 6853, - "src": "6252:16:19", + "referencedDeclaration": 9601, + "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": 5530, + "id": 8091, "isConstant": false, "isLValue": false, "isPure": false, @@ -6453,7 +6459,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6252:25:19", + "src": "6198:25:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6463,18 +6469,18 @@ "operator": ">", "rightExpression": { "argumentTypes": null, - "id": 5531, + "id": 8092, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5093, - "src": "6280:12:19", + "referencedDeclaration": 7654, + "src": "6226:12:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6252:40:19", + "src": "6198:40:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6488,21 +6494,21 @@ "typeString": "bool" } ], - "id": 5526, + "id": 8087, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "6244:7:19", + "referencedDeclaration": 10045, + "src": "6190:7:30", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5533, + "id": 8094, "isConstant": false, "isLValue": false, "isPure": false, @@ -6510,15 +6516,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6244:49:19", + "src": "6190:49:30", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5534, + "id": 8095, "nodeType": "ExpressionStatement", - "src": "6244:49:19" + "src": "6190:49:30" }, { "condition": { @@ -6527,19 +6533,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5537, + "id": 8098, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5535, + "id": 8096, "name": "_vestingTime", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5517, - "src": "6308:12:19", + "referencedDeclaration": 8078, + "src": "6254:12:30", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -6549,31 +6555,31 @@ "operator": ">", "rightExpression": { "argumentTypes": null, - "id": 5536, + "id": 8097, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7296, - "src": "6323:3:19", + "referencedDeclaration": 10044, + "src": "6269:3:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6308:18:19", + "src": "6254:18:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 5548, + "id": 8109, "nodeType": "IfStatement", - "src": "6304:102:19", + "src": "6250:102:30", "trueBody": { - "id": 5547, + "id": 8108, "nodeType": "Block", - "src": "6328:78:19", + "src": "6274:78:30", "statements": [ { "expression": { @@ -6585,14 +6591,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 5540, + "id": 8101, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6364:1:19", + "src": "6310:1:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6608,20 +6614,20 @@ "typeString": "int_const 0" } ], - "id": 5539, + "id": 8100, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6356:7:19", + "src": "6302:7:30", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 5541, + "id": 8102, "isConstant": false, "isLValue": false, "isPure": true, @@ -6629,7 +6635,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6356:10:19", + "src": "6302:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6637,12 +6643,12 @@ }, { "argumentTypes": null, - "id": 5542, + "id": 8103, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5513, - "src": "6368:3:19", + "referencedDeclaration": 8074, + "src": "6314:3:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6650,12 +6656,12 @@ }, { "argumentTypes": null, - "id": 5543, + "id": 8104, "name": "_vestingTime", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5517, - "src": "6373:12:19", + "referencedDeclaration": 8078, + "src": "6319:12:30", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -6663,12 +6669,12 @@ }, { "argumentTypes": null, - "id": 5544, + "id": 8105, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5515, - "src": "6387:7:19", + "referencedDeclaration": 8076, + "src": "6333:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6694,18 +6700,18 @@ "typeString": "uint256" } ], - "id": 5538, + "id": 8099, "name": "_addToVesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5644, - "src": "6342:13:19", + "referencedDeclaration": 8205, + "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": 5545, + "id": 8106, "isConstant": false, "isLValue": false, "isPure": false, @@ -6713,15 +6719,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6342:53:19", + "src": "6288:53:30", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5546, + "id": 8107, "nodeType": "ExpressionStatement", - "src": "6342:53:19" + "src": "6288:53:30" } ] } @@ -6729,7 +6735,7 @@ { "expression": { "argumentTypes": null, - "id": 5558, + "id": 8119, "isConstant": false, "isLValue": false, "isPure": false, @@ -6738,26 +6744,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5549, + "id": 8110, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5091, - "src": "6416:8:19", + "referencedDeclaration": 7652, + "src": "6362:8:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 5551, + "id": 8112, "indexExpression": { "argumentTypes": null, - "id": 5550, + "id": 8111, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5513, - "src": "6425:3:19", + "referencedDeclaration": 8074, + "src": "6371:3:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6768,7 +6774,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6416:13:19", + "src": "6362:13:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6781,12 +6787,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5556, + "id": 8117, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5515, - "src": "6450:7:19", + "referencedDeclaration": 8076, + "src": "6396:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6804,26 +6810,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5552, + "id": 8113, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5091, - "src": "6432:8:19", + "referencedDeclaration": 7652, + "src": "6378:8:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 5554, + "id": 8115, "indexExpression": { "argumentTypes": null, - "id": 5553, + "id": 8114, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5513, - "src": "6441:3:19", + "referencedDeclaration": 8074, + "src": "6387:3:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6834,27 +6840,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6432:13:19", + "src": "6378:13:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5555, + "id": 8116, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 6853, - "src": "6432:17:19", + "referencedDeclaration": 9601, + "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": 5557, + "id": 8118, "isConstant": false, "isLValue": false, "isPure": false, @@ -6862,38 +6868,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6432:26:19", + "src": "6378:26:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6416:42:19", + "src": "6362:42:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5559, + "id": 8120, "nodeType": "ExpressionStatement", - "src": "6416:42:19" + "src": "6362:42:30" }, { "expression": { "argumentTypes": null, - "id": 5565, + "id": 8126, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 5560, + "id": 8121, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5093, - "src": "6468:12:19", + "referencedDeclaration": 7654, + "src": "6414:12:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6906,12 +6912,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5563, + "id": 8124, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5515, - "src": "6500:7:19", + "referencedDeclaration": 8076, + "src": "6446:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6927,32 +6933,32 @@ ], "expression": { "argumentTypes": null, - "id": 5561, + "id": 8122, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5093, - "src": "6483:12:19", + "referencedDeclaration": 7654, + "src": "6429:12:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5562, + "id": 8123, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 6853, - "src": "6483:16:19", + "referencedDeclaration": 9601, + "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": 5564, + "id": 8125, "isConstant": false, "isLValue": false, "isPure": false, @@ -6960,21 +6966,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6483:25:19", + "src": "6429:25:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6468:40:19", + "src": "6414:40:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5566, + "id": 8127, "nodeType": "ExpressionStatement", - "src": "6468:40:19" + "src": "6414:40:30" }, { "eventCall": { @@ -6986,14 +6992,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 5569, + "id": 8130, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6540:1:19", + "src": "6486:1:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -7009,20 +7015,20 @@ "typeString": "int_const 0" } ], - "id": 5568, + "id": 8129, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6532:7:19", + "src": "6478:7:30", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 5570, + "id": 8131, "isConstant": false, "isLValue": false, "isPure": true, @@ -7030,7 +7036,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6532:10:19", + "src": "6478:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7038,12 +7044,12 @@ }, { "argumentTypes": null, - "id": 5571, + "id": 8132, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5513, - "src": "6544:3:19", + "referencedDeclaration": 8074, + "src": "6490:3:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7051,12 +7057,12 @@ }, { "argumentTypes": null, - "id": 5572, + "id": 8133, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5515, - "src": "6549:7:19", + "referencedDeclaration": 8076, + "src": "6495:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7078,18 +7084,18 @@ "typeString": "uint256" } ], - "id": 5567, + "id": 8128, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7048, - "src": "6523:8:19", + "referencedDeclaration": 9796, + "src": "6469:8:30", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 5573, + "id": 8134, "isConstant": false, "isLValue": false, "isPure": false, @@ -7097,15 +7103,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6523:34:19", + "src": "6469:34:30", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5574, + "id": 8135, "nodeType": "EmitStatement", - "src": "6518:39:19" + "src": "6464:39:30" }, { "eventCall": { @@ -7117,14 +7123,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 5577, + "id": 8138, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6596:1:19", + "src": "6542:1:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -7140,20 +7146,20 @@ "typeString": "int_const 0" } ], - "id": 5576, + "id": 8137, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6588:7:19", + "src": "6534:7:30", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 5578, + "id": 8139, "isConstant": false, "isLValue": false, "isPure": true, @@ -7161,7 +7167,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6588:10:19", + "src": "6534:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7169,12 +7175,12 @@ }, { "argumentTypes": null, - "id": 5579, + "id": 8140, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5513, - "src": "6600:3:19", + "referencedDeclaration": 8074, + "src": "6546:3:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7182,12 +7188,12 @@ }, { "argumentTypes": null, - "id": 5580, + "id": 8141, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5515, - "src": "6605:7:19", + "referencedDeclaration": 8076, + "src": "6551:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7195,12 +7201,12 @@ }, { "argumentTypes": null, - "id": 5581, + "id": 8142, "name": "_vestingTime", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5517, - "src": "6614:12:19", + "referencedDeclaration": 8078, + "src": "6560:12:30", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -7226,18 +7232,18 @@ "typeString": "uint32" } ], - "id": 5575, + "id": 8136, "name": "VestingTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5118, - "src": "6572:15:19", + "referencedDeclaration": 7679, + "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": 5582, + "id": 8143, "isConstant": false, "isLValue": false, "isPure": false, @@ -7245,28 +7251,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6572:55:19", + "src": "6518:55:30", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5583, + "id": 8144, "nodeType": "EmitStatement", - "src": "6567:60:19" + "src": "6513:60:30" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 5584, + "id": 8145, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "6645:4:19", + "src": "6591:4:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -7274,15 +7280,15 @@ }, "value": "true" }, - "functionReturnParameters": 5525, - "id": 5585, + "functionReturnParameters": 8086, + "id": 8146, "nodeType": "Return", - "src": "6638:11:19" + "src": "6584:11:30" } ] }, "documentation": null, - "id": 5587, + "id": 8148, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -7293,18 +7299,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5520, + "id": 8081, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "6207:3:19", + "referencedDeclaration": 10042, + "src": "6153:3:30", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 5521, + "id": 8082, "isConstant": false, "isLValue": false, "isPure": false, @@ -7312,44 +7318,44 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6207:10:19", + "src": "6153:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], - "id": 5522, + "id": 8083, "modifierName": { "argumentTypes": null, - "id": 5519, + "id": 8080, "name": "onlyTrusted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5924, - "src": "6195:11:19", + "referencedDeclaration": 8485, + "src": "6141:11:30", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_address_$", "typeString": "modifier (address)" } }, "nodeType": "ModifierInvocation", - "src": "6195:23:19" + "src": "6141:23:30" } ], "name": "mint", "nodeType": "FunctionDefinition", "parameters": { - "id": 5518, + "id": 8079, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5513, + "id": 8074, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 5587, - "src": "6138:11:19", + "scope": 8148, + "src": "6084:11:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7357,10 +7363,10 @@ "typeString": "address" }, "typeName": { - "id": 5512, + "id": 8073, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6138:7:19", + "src": "6084:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7371,11 +7377,11 @@ }, { "constant": false, - "id": 5515, + "id": 8076, "name": "_amount", "nodeType": "VariableDeclaration", - "scope": 5587, - "src": "6151:12:19", + "scope": 8148, + "src": "6097:12:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7383,10 +7389,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5514, + "id": 8075, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6151:4:19", + "src": "6097:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7397,11 +7403,11 @@ }, { "constant": false, - "id": 5517, + "id": 8078, "name": "_vestingTime", "nodeType": "VariableDeclaration", - "scope": 5587, - "src": "6165:19:19", + "scope": 8148, + "src": "6111:19:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7409,10 +7415,10 @@ "typeString": "uint32" }, "typeName": { - "id": 5516, + "id": 8077, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "6165:6:19", + "src": "6111:6:30", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -7422,20 +7428,20 @@ "visibility": "internal" } ], - "src": "6137:48:19" + "src": "6083:48:30" }, "payable": false, "returnParameters": { - "id": 5525, + "id": 8086, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5524, + "id": 8085, "name": "", "nodeType": "VariableDeclaration", - "scope": 5587, - "src": "6228:4:19", + "scope": 8148, + "src": "6174:4:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7443,10 +7449,10 @@ "typeString": "bool" }, "typeName": { - "id": 5523, + "id": 8084, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "6228:4:19", + "src": "6174:4:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7456,24 +7462,24 @@ "visibility": "internal" } ], - "src": "6227:6:19" + "src": "6173:6:30" }, - "scope": 5925, - "src": "6124:532:19", + "scope": 8486, + "src": "6070:532:30", "stateMutability": "nonpayable", - "superFunction": null, + "superFunction": 7600, "visibility": "external" }, { "body": { - "id": 5643, + "id": 8204, "nodeType": "Block", - "src": "6761:282:19", + "src": "6707:282:30", "statements": [ { "expression": { "argumentTypes": null, - "id": 5611, + "id": 8172, "isConstant": false, "isLValue": false, "isPure": false, @@ -7484,26 +7490,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5598, + "id": 8159, "name": "vestingBalanceOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5099, - "src": "6771:16:19", + "referencedDeclaration": 7660, + "src": "6717:16:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", "typeString": "mapping(address => mapping(uint256 => uint256))" } }, - "id": 5601, + "id": 8162, "indexExpression": { "argumentTypes": null, - "id": 5599, + "id": 8160, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5591, - "src": "6788:3:19", + "referencedDeclaration": 8152, + "src": "6734:3:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7514,24 +7520,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6771:21:19", + "src": "6717:21:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", "typeString": "mapping(uint256 => uint256)" } }, - "id": 5602, + "id": 8163, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5600, + "id": 8161, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6793:1:19", + "src": "6739:1:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -7544,7 +7550,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6771:24:19", + "src": "6717:24:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7557,12 +7563,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5609, + "id": 8170, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5595, - "src": "6827:7:19", + "referencedDeclaration": 8156, + "src": "6773:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7582,26 +7588,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5603, + "id": 8164, "name": "vestingBalanceOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5099, - "src": "6798:16:19", + "referencedDeclaration": 7660, + "src": "6744:16:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", "typeString": "mapping(address => mapping(uint256 => uint256))" } }, - "id": 5605, + "id": 8166, "indexExpression": { "argumentTypes": null, - "id": 5604, + "id": 8165, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5591, - "src": "6815:3:19", + "referencedDeclaration": 8152, + "src": "6761:3:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7612,24 +7618,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6798:21:19", + "src": "6744:21:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", "typeString": "mapping(uint256 => uint256)" } }, - "id": 5607, + "id": 8168, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5606, + "id": 8167, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6820:1:19", + "src": "6766:1:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -7642,27 +7648,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6798:24:19", + "src": "6744:24:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5608, + "id": 8169, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 6853, - "src": "6798:28:19", + "referencedDeclaration": 9601, + "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": 5610, + "id": 8171, "isConstant": false, "isLValue": false, "isPure": false, @@ -7670,21 +7676,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6798:37:19", + "src": "6744:37:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6771:64:19", + "src": "6717:64:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5612, + "id": 8173, "nodeType": "ExpressionStatement", - "src": "6771:64:19" + "src": "6717:64:30" }, { "condition": { @@ -7693,7 +7699,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5619, + "id": 8180, "isConstant": false, "isLValue": false, "isPure": false, @@ -7704,26 +7710,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5613, + "id": 8174, "name": "vestingBalanceOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5099, - "src": "6849:16:19", + "referencedDeclaration": 7660, + "src": "6795:16:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", "typeString": "mapping(address => mapping(uint256 => uint256))" } }, - "id": 5615, + "id": 8176, "indexExpression": { "argumentTypes": null, - "id": 5614, + "id": 8175, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5591, - "src": "6866:3:19", + "referencedDeclaration": 8152, + "src": "6812:3:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7734,21 +7740,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6849:21:19", + "src": "6795:21:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", "typeString": "mapping(uint256 => uint256)" } }, - "id": 5617, + "id": 8178, "indexExpression": { "argumentTypes": null, - "id": 5616, + "id": 8177, "name": "_vestingTime", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5593, - "src": "6871:12:19", + "referencedDeclaration": 8154, + "src": "6817:12:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7759,7 +7765,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6849:35:19", + "src": "6795:35:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7770,14 +7776,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5618, + "id": 8179, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6888:1:19", + "src": "6834:1:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -7785,28 +7791,28 @@ }, "value": "0" }, - "src": "6849:40:19", + "src": "6795:40:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 5627, + "id": 8188, "nodeType": "IfStatement", - "src": "6846:93:19", + "src": "6792:93:30", "trueBody": { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 5624, + "id": 8185, "name": "_vestingTime", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5593, - "src": "6926:12:19", + "referencedDeclaration": 8154, + "src": "6872:12:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7824,26 +7830,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5620, + "id": 8181, "name": "vestingTimes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5104, - "src": "6903:12:19", + "referencedDeclaration": 7665, + "src": "6849:12:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(address => uint256[] storage ref)" } }, - "id": 5622, + "id": 8183, "indexExpression": { "argumentTypes": null, - "id": 5621, + "id": 8182, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5591, - "src": "6916:3:19", + "referencedDeclaration": 8152, + "src": "6862:3:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7854,13 +7860,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6903:17:19", + "src": "6849:17:30", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 5623, + "id": 8184, "isConstant": false, "isLValue": false, "isPure": false, @@ -7868,13 +7874,13 @@ "memberName": "push", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6903:22:19", + "src": "6849:22:30", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256) returns (uint256)" } }, - "id": 5625, + "id": 8186, "isConstant": false, "isLValue": false, "isPure": false, @@ -7882,21 +7888,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6903:36:19", + "src": "6849:36:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5626, + "id": 8187, "nodeType": "ExpressionStatement", - "src": "6903:36:19" + "src": "6849:36:30" } }, { "expression": { "argumentTypes": null, - "id": 5641, + "id": 8202, "isConstant": false, "isLValue": false, "isPure": false, @@ -7907,26 +7913,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5628, + "id": 8189, "name": "vestingBalanceOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5099, - "src": "6950:16:19", + "referencedDeclaration": 7660, + "src": "6896:16:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", "typeString": "mapping(address => mapping(uint256 => uint256))" } }, - "id": 5631, + "id": 8192, "indexExpression": { "argumentTypes": null, - "id": 5629, + "id": 8190, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5591, - "src": "6967:3:19", + "referencedDeclaration": 8152, + "src": "6913:3:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7937,21 +7943,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6950:21:19", + "src": "6896:21:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", "typeString": "mapping(uint256 => uint256)" } }, - "id": 5632, + "id": 8193, "indexExpression": { "argumentTypes": null, - "id": 5630, + "id": 8191, "name": "_vestingTime", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5593, - "src": "6972:12:19", + "referencedDeclaration": 8154, + "src": "6918:12:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7962,7 +7968,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6950:35:19", + "src": "6896:35:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7975,12 +7981,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5639, + "id": 8200, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5595, - "src": "7028:7:19", + "referencedDeclaration": 8156, + "src": "6974:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8000,26 +8006,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5633, + "id": 8194, "name": "vestingBalanceOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5099, - "src": "6988:16:19", + "referencedDeclaration": 7660, + "src": "6934:16:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", "typeString": "mapping(address => mapping(uint256 => uint256))" } }, - "id": 5635, + "id": 8196, "indexExpression": { "argumentTypes": null, - "id": 5634, + "id": 8195, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5591, - "src": "7005:3:19", + "referencedDeclaration": 8152, + "src": "6951:3:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8030,21 +8036,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6988:21:19", + "src": "6934:21:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", "typeString": "mapping(uint256 => uint256)" } }, - "id": 5637, + "id": 8198, "indexExpression": { "argumentTypes": null, - "id": 5636, + "id": 8197, "name": "_vestingTime", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5593, - "src": "7010:12:19", + "referencedDeclaration": 8154, + "src": "6956:12:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8055,27 +8061,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6988:35:19", + "src": "6934:35:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5638, + "id": 8199, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 6853, - "src": "6988:39:19", + "referencedDeclaration": 9601, + "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": 5640, + "id": 8201, "isConstant": false, "isLValue": false, "isPure": false, @@ -8083,26 +8089,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6988:48:19", + "src": "6934:48:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6950:86:19", + "src": "6896:86:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5642, + "id": 8203, "nodeType": "ExpressionStatement", - "src": "6950:86:19" + "src": "6896:86:30" } ] }, "documentation": null, - "id": 5644, + "id": 8205, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -8110,16 +8116,16 @@ "name": "_addToVesting", "nodeType": "FunctionDefinition", "parameters": { - "id": 5596, + "id": 8157, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5589, + "id": 8150, "name": "_from", "nodeType": "VariableDeclaration", - "scope": 5644, - "src": "6685:13:19", + "scope": 8205, + "src": "6631:13:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8127,10 +8133,10 @@ "typeString": "address" }, "typeName": { - "id": 5588, + "id": 8149, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6685:7:19", + "src": "6631:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8141,11 +8147,11 @@ }, { "constant": false, - "id": 5591, + "id": 8152, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 5644, - "src": "6700:11:19", + "scope": 8205, + "src": "6646:11:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8153,10 +8159,10 @@ "typeString": "address" }, "typeName": { - "id": 5590, + "id": 8151, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6700:7:19", + "src": "6646:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8167,11 +8173,11 @@ }, { "constant": false, - "id": 5593, + "id": 8154, "name": "_vestingTime", "nodeType": "VariableDeclaration", - "scope": 5644, - "src": "6713:20:19", + "scope": 8205, + "src": "6659:20:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8179,10 +8185,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5592, + "id": 8153, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6713:7:19", + "src": "6659:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8193,11 +8199,11 @@ }, { "constant": false, - "id": 5595, + "id": 8156, "name": "_amount", "nodeType": "VariableDeclaration", - "scope": 5644, - "src": "6735:15:19", + "scope": 8205, + "src": "6681:15:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8205,10 +8211,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5594, + "id": 8155, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6735:7:19", + "src": "6681:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8218,26 +8224,26 @@ "visibility": "internal" } ], - "src": "6684:67:19" + "src": "6630:67:30" }, "payable": false, "returnParameters": { - "id": 5597, + "id": 8158, "nodeType": "ParameterList", "parameters": [], - "src": "6761:0:19" + "src": "6707:0:30" }, - "scope": 5925, - "src": "6662:381:19", + "scope": 8486, + "src": "6608:381:30", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 5655, + "id": 8216, "nodeType": "Block", - "src": "7207:42:19", + "src": "7153:42:30", "statements": [ { "expression": { @@ -8247,18 +8253,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5650, + "id": 8211, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "7223:3:19", + "referencedDeclaration": 10042, + "src": "7169:3:30", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 5651, + "id": 8212, "isConstant": false, "isLValue": false, "isPure": false, @@ -8266,7 +8272,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7223:10:19", + "src": "7169:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8274,12 +8280,12 @@ }, { "argumentTypes": null, - "id": 5652, + "id": 8213, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5646, - "src": "7235:6:19", + "referencedDeclaration": 8207, + "src": "7181:6:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8297,18 +8303,18 @@ "typeString": "uint256" } ], - "id": 5649, + "id": 8210, "name": "_burn", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5748, - "src": "7217:5:19", + "referencedDeclaration": 8309, + "src": "7163:5:30", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 5653, + "id": 8214, "isConstant": false, "isLValue": false, "isPure": false, @@ -8316,20 +8322,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7217:25:19", + "src": "7163:25:30", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5654, + "id": 8215, "nodeType": "ExpressionStatement", - "src": "7217:25:19" + "src": "7163:25:30" } ] }, "documentation": "@dev Burns a specific amount of tokens.\n@param _value The amount of token to be burned.", - "id": 5656, + "id": 8217, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -8337,16 +8343,16 @@ "name": "burn", "nodeType": "FunctionDefinition", "parameters": { - "id": 5647, + "id": 8208, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5646, + "id": 8207, "name": "_value", "nodeType": "VariableDeclaration", - "scope": 5656, - "src": "7184:14:19", + "scope": 8217, + "src": "7130:14:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8354,10 +8360,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5645, + "id": 8206, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "7184:7:19", + "src": "7130:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8367,26 +8373,26 @@ "visibility": "internal" } ], - "src": "7183:16:19" + "src": "7129:16:30" }, "payable": false, "returnParameters": { - "id": 5648, + "id": 8209, "nodeType": "ParameterList", "parameters": [], - "src": "7207:0:19" + "src": "7153:0:30" }, - "scope": 5925, - "src": "7170:79:19", + "scope": 8486, + "src": "7116:79:30", "stateMutability": "nonpayable", - "superFunction": null, + "superFunction": 7605, "visibility": "public" }, { "body": { - "id": 5696, + "id": 8257, "nodeType": "Block", - "src": "7559:336:19", + "src": "7505:336:30", "statements": [ { "expression": { @@ -8398,19 +8404,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5671, + "id": 8232, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5664, + "id": 8225, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5660, - "src": "7577:6:19", + "referencedDeclaration": 8221, + "src": "7523:6:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8424,26 +8430,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5665, + "id": 8226, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5087, - "src": "7587:7:19", + "referencedDeclaration": 7648, + "src": "7533:7:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 5667, + "id": 8228, "indexExpression": { "argumentTypes": null, - "id": 5666, + "id": 8227, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5658, - "src": "7595:5:19", + "referencedDeclaration": 8219, + "src": "7541:5:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8454,29 +8460,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7587:14:19", + "src": "7533:14:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 5670, + "id": 8231, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5668, + "id": 8229, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "7602:3:19", + "referencedDeclaration": 10042, + "src": "7548:3:30", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 5669, + "id": 8230, "isConstant": false, "isLValue": false, "isPure": false, @@ -8484,7 +8490,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7602:10:19", + "src": "7548:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8495,13 +8501,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7587:26:19", + "src": "7533:26:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7577:36:19", + "src": "7523:36:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8515,21 +8521,21 @@ "typeString": "bool" } ], - "id": 5663, + "id": 8224, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "7569:7:19", + "referencedDeclaration": 10045, + "src": "7515:7:30", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5672, + "id": 8233, "isConstant": false, "isLValue": false, "isPure": false, @@ -8537,20 +8543,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7569:45:19", + "src": "7515:45:30", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5673, + "id": 8234, "nodeType": "ExpressionStatement", - "src": "7569:45:19" + "src": "7515:45:30" }, { "expression": { "argumentTypes": null, - "id": 5689, + "id": 8250, "isConstant": false, "isLValue": false, "isPure": false, @@ -8561,26 +8567,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5674, + "id": 8235, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5087, - "src": "7791:7:19", + "referencedDeclaration": 7648, + "src": "7737:7:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 5678, + "id": 8239, "indexExpression": { "argumentTypes": null, - "id": 5675, + "id": 8236, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5658, - "src": "7799:5:19", + "referencedDeclaration": 8219, + "src": "7745:5:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8591,29 +8597,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7791:14:19", + "src": "7737:14:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 5679, + "id": 8240, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5676, + "id": 8237, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "7806:3:19", + "referencedDeclaration": 10042, + "src": "7752:3:30", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 5677, + "id": 8238, "isConstant": false, "isLValue": false, "isPure": false, @@ -8621,7 +8627,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7806:10:19", + "src": "7752:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8632,7 +8638,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "7791:26:19", + "src": "7737:26:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8645,12 +8651,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5687, + "id": 8248, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5660, - "src": "7851:6:19", + "referencedDeclaration": 8221, + "src": "7797:6:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8670,26 +8676,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5680, + "id": 8241, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5087, - "src": "7820:7:19", + "referencedDeclaration": 7648, + "src": "7766:7:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 5682, + "id": 8243, "indexExpression": { "argumentTypes": null, - "id": 5681, + "id": 8242, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5658, - "src": "7828:5:19", + "referencedDeclaration": 8219, + "src": "7774:5:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8700,29 +8706,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7820:14:19", + "src": "7766:14:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 5685, + "id": 8246, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5683, + "id": 8244, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "7835:3:19", + "referencedDeclaration": 10042, + "src": "7781:3:30", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 5684, + "id": 8245, "isConstant": false, "isLValue": false, "isPure": false, @@ -8730,7 +8736,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7835:10:19", + "src": "7781:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8741,27 +8747,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7820:26:19", + "src": "7766:26:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5686, + "id": 8247, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 6829, - "src": "7820:30:19", + "referencedDeclaration": 9577, + "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": 5688, + "id": 8249, "isConstant": false, "isLValue": false, "isPure": false, @@ -8769,21 +8775,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7820:38:19", + "src": "7766:38:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7791:67:19", + "src": "7737:67:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5690, + "id": 8251, "nodeType": "ExpressionStatement", - "src": "7791:67:19" + "src": "7737:67:30" }, { "expression": { @@ -8791,12 +8797,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5692, + "id": 8253, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5658, - "src": "7874:5:19", + "referencedDeclaration": 8219, + "src": "7820:5:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8804,12 +8810,12 @@ }, { "argumentTypes": null, - "id": 5693, + "id": 8254, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5660, - "src": "7881:6:19", + "referencedDeclaration": 8221, + "src": "7827:6:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8827,18 +8833,18 @@ "typeString": "uint256" } ], - "id": 5691, + "id": 8252, "name": "_burn", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5748, - "src": "7868:5:19", + "referencedDeclaration": 8309, + "src": "7814:5:30", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 5694, + "id": 8255, "isConstant": false, "isLValue": false, "isPure": false, @@ -8846,20 +8852,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7868:20:19", + "src": "7814:20:30", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5695, + "id": 8256, "nodeType": "ExpressionStatement", - "src": "7868:20:19" + "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": 5697, + "id": 8258, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -8867,16 +8873,16 @@ "name": "burnFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 5661, + "id": 8222, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5658, + "id": 8219, "name": "_from", "nodeType": "VariableDeclaration", - "scope": 5697, - "src": "7521:13:19", + "scope": 8258, + "src": "7467:13:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8884,10 +8890,10 @@ "typeString": "address" }, "typeName": { - "id": 5657, + "id": 8218, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7521:7:19", + "src": "7467:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8898,11 +8904,11 @@ }, { "constant": false, - "id": 5660, + "id": 8221, "name": "_value", "nodeType": "VariableDeclaration", - "scope": 5697, - "src": "7536:14:19", + "scope": 8258, + "src": "7482:14:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8910,10 +8916,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5659, + "id": 8220, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "7536:7:19", + "src": "7482:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8923,26 +8929,26 @@ "visibility": "internal" } ], - "src": "7520:31:19" + "src": "7466:31:30" }, "payable": false, "returnParameters": { - "id": 5662, + "id": 8223, "nodeType": "ParameterList", "parameters": [], - "src": "7559:0:19" + "src": "7505:0:30" }, - "scope": 5925, - "src": "7503:392:19", + "scope": 8486, + "src": "7449:392:30", "stateMutability": "nonpayable", - "superFunction": null, + "superFunction": 7612, "visibility": "public" }, { "body": { - "id": 5747, + "id": 8308, "nodeType": "Block", - "src": "7955:452:19", + "src": "7901:452:30", "statements": [ { "expression": { @@ -8950,12 +8956,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5705, + "id": 8266, "name": "_who", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5699, - "src": "7981:4:19", + "referencedDeclaration": 8260, + "src": "7927:4:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8969,18 +8975,18 @@ "typeString": "address" } ], - "id": 5704, + "id": 8265, "name": "_checkMyVesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5822, - "src": "7965:15:19", + "referencedDeclaration": 8383, + "src": "7911:15:30", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 5706, + "id": 8267, "isConstant": false, "isLValue": false, "isPure": false, @@ -8988,15 +8994,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7965:21:19", + "src": "7911:21:30", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5707, + "id": 8268, "nodeType": "ExpressionStatement", - "src": "7965:21:19" + "src": "7911:21:30" }, { "expression": { @@ -9008,19 +9014,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5713, + "id": 8274, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5709, + "id": 8270, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5701, - "src": "8005:6:19", + "referencedDeclaration": 8262, + "src": "7951:6:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9033,12 +9039,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5711, + "id": 8272, "name": "_who", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5699, - "src": "8030:4:19", + "referencedDeclaration": 8260, + "src": "7976:4:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9052,18 +9058,20 @@ "typeString": "address" } ], - "id": 5710, + "id": 8271, "name": "accountBalance", "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5884, - "src": "8015:14:19", + "overloadedDeclarations": [ + 8445 + ], + "referencedDeclaration": 8445, + "src": "7961:14:30", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view returns (uint256)" } }, - "id": 5712, + "id": 8273, "isConstant": false, "isLValue": false, "isPure": false, @@ -9071,13 +9079,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8015:20:19", + "src": "7961:20:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "8005:30:19", + "src": "7951:30:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9091,21 +9099,21 @@ "typeString": "bool" } ], - "id": 5708, + "id": 8269, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "7997:7:19", + "referencedDeclaration": 10045, + "src": "7943:7:30", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5714, + "id": 8275, "isConstant": false, "isLValue": false, "isPure": false, @@ -9113,20 +9121,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7997:39:19", + "src": "7943:39:30", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5715, + "id": 8276, "nodeType": "ExpressionStatement", - "src": "7997:39:19" + "src": "7943:39:30" }, { "expression": { "argumentTypes": null, - "id": 5725, + "id": 8286, "isConstant": false, "isLValue": false, "isPure": false, @@ -9135,26 +9143,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5716, + "id": 8277, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5091, - "src": "8226:8:19", + "referencedDeclaration": 7652, + "src": "8172:8:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 5718, + "id": 8279, "indexExpression": { "argumentTypes": null, - "id": 5717, + "id": 8278, "name": "_who", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5699, - "src": "8235:4:19", + "referencedDeclaration": 8260, + "src": "8181:4:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9165,7 +9173,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "8226:14:19", + "src": "8172:14:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9178,12 +9186,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5723, + "id": 8284, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5701, - "src": "8262:6:19", + "referencedDeclaration": 8262, + "src": "8208:6:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9201,26 +9209,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5719, + "id": 8280, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5091, - "src": "8243:8:19", + "referencedDeclaration": 7652, + "src": "8189:8:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 5721, + "id": 8282, "indexExpression": { "argumentTypes": null, - "id": 5720, + "id": 8281, "name": "_who", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5699, - "src": "8252:4:19", + "referencedDeclaration": 8260, + "src": "8198:4:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9231,27 +9239,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8243:14:19", + "src": "8189:14:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5722, + "id": 8283, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 6829, - "src": "8243:18:19", + "referencedDeclaration": 9577, + "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": 5724, + "id": 8285, "isConstant": false, "isLValue": false, "isPure": false, @@ -9259,38 +9267,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8243:26:19", + "src": "8189:26:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "8226:43:19", + "src": "8172:43:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5726, + "id": 8287, "nodeType": "ExpressionStatement", - "src": "8226:43:19" + "src": "8172:43:30" }, { "expression": { "argumentTypes": null, - "id": 5732, + "id": 8293, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 5727, + "id": 8288, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5093, - "src": "8279:12:19", + "referencedDeclaration": 7654, + "src": "8225:12:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9303,12 +9311,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5730, + "id": 8291, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5701, - "src": "8311:6:19", + "referencedDeclaration": 8262, + "src": "8257:6:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9324,32 +9332,32 @@ ], "expression": { "argumentTypes": null, - "id": 5728, + "id": 8289, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5093, - "src": "8294:12:19", + "referencedDeclaration": 7654, + "src": "8240:12:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5729, + "id": 8290, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 6829, - "src": "8294:16:19", + "referencedDeclaration": 9577, + "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": 5731, + "id": 8292, "isConstant": false, "isLValue": false, "isPure": false, @@ -9357,21 +9365,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8294:24:19", + "src": "8240:24:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "8279:39:19", + "src": "8225:39:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5733, + "id": 8294, "nodeType": "ExpressionStatement", - "src": "8279:39:19" + "src": "8225:39:30" }, { "eventCall": { @@ -9379,12 +9387,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5735, + "id": 8296, "name": "_who", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5699, - "src": "8338:4:19", + "referencedDeclaration": 8260, + "src": "8284:4:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9392,12 +9400,12 @@ }, { "argumentTypes": null, - "id": 5736, + "id": 8297, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5701, - "src": "8344:6:19", + "referencedDeclaration": 8262, + "src": "8290:6:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9415,18 +9423,18 @@ "typeString": "uint256" } ], - "id": 5734, + "id": 8295, "name": "Burn", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5124, - "src": "8333:4:19", + "referencedDeclaration": 7685, + "src": "8279:4:30", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 5737, + "id": 8298, "isConstant": false, "isLValue": false, "isPure": false, @@ -9434,15 +9442,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8333:18:19", + "src": "8279:18:30", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5738, + "id": 8299, "nodeType": "EmitStatement", - "src": "8328:23:19" + "src": "8274:23:30" }, { "eventCall": { @@ -9450,12 +9458,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5740, + "id": 8301, "name": "_who", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5699, - "src": "8375:4:19", + "referencedDeclaration": 8260, + "src": "8321:4:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9467,14 +9475,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 5742, + "id": 8303, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8389:1:19", + "src": "8335:1:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -9490,20 +9498,20 @@ "typeString": "int_const 0" } ], - "id": 5741, + "id": 8302, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8381:7:19", + "src": "8327:7:30", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 5743, + "id": 8304, "isConstant": false, "isLValue": false, "isPure": true, @@ -9511,7 +9519,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8381:10:19", + "src": "8327:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9519,12 +9527,12 @@ }, { "argumentTypes": null, - "id": 5744, + "id": 8305, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5701, - "src": "8393:6:19", + "referencedDeclaration": 8262, + "src": "8339:6:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9546,18 +9554,18 @@ "typeString": "uint256" } ], - "id": 5739, + "id": 8300, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7048, - "src": "8366:8:19", + "referencedDeclaration": 9796, + "src": "8312:8:30", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 5745, + "id": 8306, "isConstant": false, "isLValue": false, "isPure": false, @@ -9565,20 +9573,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8366:34:19", + "src": "8312:34:30", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5746, + "id": 8307, "nodeType": "EmitStatement", - "src": "8361:39:19" + "src": "8307:39:30" } ] }, "documentation": null, - "id": 5748, + "id": 8309, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -9586,16 +9594,16 @@ "name": "_burn", "nodeType": "FunctionDefinition", "parameters": { - "id": 5702, + "id": 8263, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5699, + "id": 8260, "name": "_who", "nodeType": "VariableDeclaration", - "scope": 5748, - "src": "7916:12:19", + "scope": 8309, + "src": "7862:12:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9603,10 +9611,10 @@ "typeString": "address" }, "typeName": { - "id": 5698, + "id": 8259, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7916:7:19", + "src": "7862:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9617,11 +9625,11 @@ }, { "constant": false, - "id": 5701, + "id": 8262, "name": "_value", "nodeType": "VariableDeclaration", - "scope": 5748, - "src": "7930:14:19", + "scope": 8309, + "src": "7876:14:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9629,10 +9637,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5700, + "id": 8261, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "7930:7:19", + "src": "7876:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9642,26 +9650,26 @@ "visibility": "internal" } ], - "src": "7915:30:19" + "src": "7861:30:30" }, "payable": false, "returnParameters": { - "id": 5703, + "id": 8264, "nodeType": "ParameterList", "parameters": [], - "src": "7955:0:19" + "src": "7901:0:30" }, - "scope": 5925, - "src": "7901:506:19", + "scope": 8486, + "src": "7847:506:30", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 5821, + "id": 8382, "nodeType": "Block", - "src": "8462:416:19", + "src": "8408:416:30", "statements": [ { "condition": { @@ -9670,7 +9678,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5759, + "id": 8320, "isConstant": false, "isLValue": false, "isPure": false, @@ -9681,26 +9689,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5753, + "id": 8314, "name": "vestingBalanceOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5099, - "src": "8476:16:19", + "referencedDeclaration": 7660, + "src": "8422:16:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", "typeString": "mapping(address => mapping(uint256 => uint256))" } }, - "id": 5755, + "id": 8316, "indexExpression": { "argumentTypes": null, - "id": 5754, + "id": 8315, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5750, - "src": "8493:5:19", + "referencedDeclaration": 8311, + "src": "8439:5:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9711,24 +9719,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8476:23:19", + "src": "8422:23:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", "typeString": "mapping(uint256 => uint256)" } }, - "id": 5757, + "id": 8318, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5756, + "id": 8317, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8500:1:19", + "src": "8446:1:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -9741,7 +9749,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8476:26:19", + "src": "8422:26:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9752,14 +9760,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5758, + "id": 8319, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8506:1:19", + "src": "8452:1:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -9767,29 +9775,29 @@ }, "value": "0" }, - "src": "8476:31:19", + "src": "8422:31:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 5761, + "id": 8322, "nodeType": "IfStatement", - "src": "8472:44:19", + "src": "8418:44:30", "trueBody": { "expression": null, - "functionReturnParameters": 5752, - "id": 5760, + "functionReturnParameters": 8313, + "id": 8321, "nodeType": "Return", - "src": "8509:7:19" + "src": "8455:7:30" } }, { "body": { - "id": 5819, + "id": 8380, "nodeType": "Block", - "src": "8583:289:19", + "src": "8529:289:30", "statements": [ { "condition": { @@ -9798,7 +9806,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5781, + "id": 8342, "isConstant": false, "isLValue": false, "isPure": false, @@ -9809,26 +9817,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5775, + "id": 8336, "name": "vestingTimes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5104, - "src": "8601:12:19", + "referencedDeclaration": 7665, + "src": "8547:12:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(address => uint256[] storage ref)" } }, - "id": 5777, + "id": 8338, "indexExpression": { "argumentTypes": null, - "id": 5776, + "id": 8337, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5750, - "src": "8614:5:19", + "referencedDeclaration": 8311, + "src": "8560:5:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9839,21 +9847,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8601:19:19", + "src": "8547:19:30", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 5779, + "id": 8340, "indexExpression": { "argumentTypes": null, - "id": 5778, + "id": 8339, "name": "k", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5763, - "src": "8621:1:19", + "referencedDeclaration": 8324, + "src": "8567:1:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9864,7 +9872,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8601:22:19", + "src": "8547:22:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9874,36 +9882,36 @@ "operator": "<", "rightExpression": { "argumentTypes": null, - "id": 5780, + "id": 8341, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7296, - "src": "8626:3:19", + "referencedDeclaration": 10044, + "src": "8572:3:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "8601:28:19", + "src": "8547:28:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 5818, + "id": 8379, "nodeType": "IfStatement", - "src": "8597:265:19", + "src": "8543:265:30", "trueBody": { - "id": 5817, + "id": 8378, "nodeType": "Block", - "src": "8631:231:19", + "src": "8577:231:30", "statements": [ { "expression": { "argumentTypes": null, - "id": 5803, + "id": 8364, "isConstant": false, "isLValue": false, "isPure": false, @@ -9914,26 +9922,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5782, + "id": 8343, "name": "vestingBalanceOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5099, - "src": "8649:16:19", + "referencedDeclaration": 7660, + "src": "8595:16:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", "typeString": "mapping(address => mapping(uint256 => uint256))" } }, - "id": 5785, + "id": 8346, "indexExpression": { "argumentTypes": null, - "id": 5783, + "id": 8344, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5750, - "src": "8666:5:19", + "referencedDeclaration": 8311, + "src": "8612:5:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9944,24 +9952,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8649:23:19", + "src": "8595:23:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", "typeString": "mapping(uint256 => uint256)" } }, - "id": 5786, + "id": 8347, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5784, + "id": 8345, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8673:1:19", + "src": "8619:1:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -9974,7 +9982,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "8649:26:19", + "src": "8595:26:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9991,26 +9999,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5793, + "id": 8354, "name": "vestingBalanceOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5099, - "src": "8730:16:19", + "referencedDeclaration": 7660, + "src": "8676:16:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", "typeString": "mapping(address => mapping(uint256 => uint256))" } }, - "id": 5795, + "id": 8356, "indexExpression": { "argumentTypes": null, - "id": 5794, + "id": 8355, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5750, - "src": "8747:5:19", + "referencedDeclaration": 8311, + "src": "8693:5:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10021,39 +10029,39 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8730:23:19", + "src": "8676:23:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", "typeString": "mapping(uint256 => uint256)" } }, - "id": 5801, + "id": 8362, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5796, + "id": 8357, "name": "vestingTimes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5104, - "src": "8754:12:19", + "referencedDeclaration": 7665, + "src": "8700:12:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(address => uint256[] storage ref)" } }, - "id": 5798, + "id": 8359, "indexExpression": { "argumentTypes": null, - "id": 5797, + "id": 8358, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5750, - "src": "8767:5:19", + "referencedDeclaration": 8311, + "src": "8713:5:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10064,21 +10072,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8754:19:19", + "src": "8700:19:30", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 5800, + "id": 8361, "indexExpression": { "argumentTypes": null, - "id": 5799, + "id": 8360, "name": "k", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5763, - "src": "8774:1:19", + "referencedDeclaration": 8324, + "src": "8720:1:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10089,7 +10097,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8754:22:19", + "src": "8700:22:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10100,7 +10108,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8730:47:19", + "src": "8676:47:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10120,26 +10128,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5787, + "id": 8348, "name": "vestingBalanceOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5099, - "src": "8678:16:19", + "referencedDeclaration": 7660, + "src": "8624:16:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", "typeString": "mapping(address => mapping(uint256 => uint256))" } }, - "id": 5789, + "id": 8350, "indexExpression": { "argumentTypes": null, - "id": 5788, + "id": 8349, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5750, - "src": "8695:5:19", + "referencedDeclaration": 8311, + "src": "8641:5:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10150,24 +10158,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8678:23:19", + "src": "8624:23:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", "typeString": "mapping(uint256 => uint256)" } }, - "id": 5791, + "id": 8352, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5790, + "id": 8351, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8702:1:19", + "src": "8648:1:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -10180,27 +10188,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8678:26:19", + "src": "8624:26:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5792, + "id": 8353, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 6829, - "src": "8678:51:19", + "referencedDeclaration": 9577, + "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": 5802, + "id": 8363, "isConstant": false, "isLValue": false, "isPure": false, @@ -10208,26 +10216,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8678:100:19", + "src": "8624:100:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "8649:129:19", + "src": "8595:129:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5804, + "id": 8365, "nodeType": "ExpressionStatement", - "src": "8649:129:19" + "src": "8595:129:30" }, { "expression": { "argumentTypes": null, - "id": 5815, + "id": 8376, "isConstant": false, "isLValue": false, "isPure": false, @@ -10238,26 +10246,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5805, + "id": 8366, "name": "vestingBalanceOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5099, - "src": "8796:16:19", + "referencedDeclaration": 7660, + "src": "8742:16:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", "typeString": "mapping(address => mapping(uint256 => uint256))" } }, - "id": 5812, + "id": 8373, "indexExpression": { "argumentTypes": null, - "id": 5806, + "id": 8367, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5750, - "src": "8813:5:19", + "referencedDeclaration": 8311, + "src": "8759:5:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10268,39 +10276,39 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8796:23:19", + "src": "8742:23:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", "typeString": "mapping(uint256 => uint256)" } }, - "id": 5813, + "id": 8374, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5807, + "id": 8368, "name": "vestingTimes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5104, - "src": "8820:12:19", + "referencedDeclaration": 7665, + "src": "8766:12:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(address => uint256[] storage ref)" } }, - "id": 5809, + "id": 8370, "indexExpression": { "argumentTypes": null, - "id": 5808, + "id": 8369, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5750, - "src": "8833:5:19", + "referencedDeclaration": 8311, + "src": "8779:5:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10311,21 +10319,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8820:19:19", + "src": "8766:19:30", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 5811, + "id": 8372, "indexExpression": { "argumentTypes": null, - "id": 5810, + "id": 8371, "name": "k", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5763, - "src": "8840:1:19", + "referencedDeclaration": 8324, + "src": "8786:1:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10336,7 +10344,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8820:22:19", + "src": "8766:22:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10347,7 +10355,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "8796:47:19", + "src": "8742:47:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10358,14 +10366,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 5814, + "id": 8375, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8846:1:19", + "src": "8792:1:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -10373,15 +10381,15 @@ }, "value": "0" }, - "src": "8796:51:19", + "src": "8742:51:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5816, + "id": 8377, "nodeType": "ExpressionStatement", - "src": "8796:51:19" + "src": "8742:51:30" } ] } @@ -10394,19 +10402,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5771, + "id": 8332, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5766, + "id": 8327, "name": "k", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5763, - "src": "8546:1:19", + "referencedDeclaration": 8324, + "src": "8492:1:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10420,26 +10428,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5767, + "id": 8328, "name": "vestingTimes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5104, - "src": "8550:12:19", + "referencedDeclaration": 7665, + "src": "8496:12:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(address => uint256[] storage ref)" } }, - "id": 5769, + "id": 8330, "indexExpression": { "argumentTypes": null, - "id": 5768, + "id": 8329, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5750, - "src": "8563:5:19", + "referencedDeclaration": 8311, + "src": "8509:5:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10450,13 +10458,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8550:19:19", + "src": "8496:19:30", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 5770, + "id": 8331, "isConstant": false, "isLValue": true, "isPure": false, @@ -10464,31 +10472,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8550:26:19", + "src": "8496:26:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "8546:30:19", + "src": "8492:30:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 5820, + "id": 8381, "initializationExpression": { "assignments": [ - 5763 + 8324 ], "declarations": [ { "constant": false, - "id": 5763, + "id": 8324, "name": "k", "nodeType": "VariableDeclaration", - "scope": 5822, - "src": "8531:9:19", + "scope": 8383, + "src": "8477:9:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10496,10 +10504,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5762, + "id": 8323, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8531:7:19", + "src": "8477:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10509,18 +10517,18 @@ "visibility": "internal" } ], - "id": 5765, + "id": 8326, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 5764, + "id": 8325, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8543:1:19", + "src": "8489:1:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -10529,12 +10537,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "8531:13:19" + "src": "8477:13:30" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 5773, + "id": 8334, "isConstant": false, "isLValue": false, "isPure": false, @@ -10542,15 +10550,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "8578:3:19", + "src": "8524:3:30", "subExpression": { "argumentTypes": null, - "id": 5772, + "id": 8333, "name": "k", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5763, - "src": "8578:1:19", + "referencedDeclaration": 8324, + "src": "8524:1:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10561,17 +10569,17 @@ "typeString": "uint256" } }, - "id": 5774, + "id": 8335, "nodeType": "ExpressionStatement", - "src": "8578:3:19" + "src": "8524:3:30" }, "nodeType": "ForStatement", - "src": "8526:346:19" + "src": "8472:346:30" } ] }, "documentation": null, - "id": 5822, + "id": 8383, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -10579,16 +10587,16 @@ "name": "_checkMyVesting", "nodeType": "FunctionDefinition", "parameters": { - "id": 5751, + "id": 8312, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5750, + "id": 8311, "name": "_from", "nodeType": "VariableDeclaration", - "scope": 5822, - "src": "8438:13:19", + "scope": 8383, + "src": "8384:13:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10596,10 +10604,10 @@ "typeString": "address" }, "typeName": { - "id": 5749, + "id": 8310, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8438:7:19", + "src": "8384:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10609,43 +10617,43 @@ "visibility": "internal" } ], - "src": "8437:15:19" + "src": "8383:15:30" }, "payable": false, "returnParameters": { - "id": 5752, + "id": 8313, "nodeType": "ParameterList", "parameters": [], - "src": "8462:0:19" + "src": "8408:0:30" }, - "scope": 5925, - "src": "8413:465:19", + "scope": 8486, + "src": "8359:465:30", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 5883, + "id": 8444, "nodeType": "Block", - "src": "8964:343:19", + "src": "8910:343:30", "statements": [ { "expression": { "argumentTypes": null, - "id": 5833, + "id": 8394, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 5829, + "id": 8390, "name": "balance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5827, - "src": "8974:7:19", + "referencedDeclaration": 8388, + "src": "8920:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10657,26 +10665,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5830, + "id": 8391, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5091, - "src": "8984:8:19", + "referencedDeclaration": 7652, + "src": "8930:8:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 5832, + "id": 8393, "indexExpression": { "argumentTypes": null, - "id": 5831, + "id": 8392, "name": "_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5824, - "src": "8993:8:19", + "referencedDeclaration": 8385, + "src": "8939:8:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10687,21 +10695,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8984:18:19", + "src": "8930:18:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "8974:28:19", + "src": "8920:28:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5834, + "id": 8395, "nodeType": "ExpressionStatement", - "src": "8974:28:19" + "src": "8920:28:30" }, { "condition": { @@ -10710,7 +10718,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5841, + "id": 8402, "isConstant": false, "isLValue": false, "isPure": false, @@ -10721,26 +10729,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5835, + "id": 8396, "name": "vestingBalanceOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5099, - "src": "9017:16:19", + "referencedDeclaration": 7660, + "src": "8963:16:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", "typeString": "mapping(address => mapping(uint256 => uint256))" } }, - "id": 5837, + "id": 8398, "indexExpression": { "argumentTypes": null, - "id": 5836, + "id": 8397, "name": "_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5824, - "src": "9034:8:19", + "referencedDeclaration": 8385, + "src": "8980:8:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10751,24 +10759,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9017:26:19", + "src": "8963:26:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", "typeString": "mapping(uint256 => uint256)" } }, - "id": 5839, + "id": 8400, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5838, + "id": 8399, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9044:1:19", + "src": "8990:1:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -10781,7 +10789,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9017:29:19", + "src": "8963:29:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10792,14 +10800,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5840, + "id": 8401, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9050:1:19", + "src": "8996:1:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -10807,29 +10815,29 @@ }, "value": "0" }, - "src": "9017:34:19", + "src": "8963:34:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 5843, + "id": 8404, "nodeType": "IfStatement", - "src": "9013:47:19", + "src": "8959:47:30", "trueBody": { "expression": null, - "functionReturnParameters": 5828, - "id": 5842, + "functionReturnParameters": 8389, + "id": 8403, "nodeType": "Return", - "src": "9053:7:19" + "src": "8999:7:30" } }, { "body": { - "id": 5881, + "id": 8442, "nodeType": "Block", - "src": "9130:171:19", + "src": "9076:171:30", "statements": [ { "condition": { @@ -10838,7 +10846,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5863, + "id": 8424, "isConstant": false, "isLValue": false, "isPure": false, @@ -10849,26 +10857,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5857, + "id": 8418, "name": "vestingTimes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5104, - "src": "9148:12:19", + "referencedDeclaration": 7665, + "src": "9094:12:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(address => uint256[] storage ref)" } }, - "id": 5859, + "id": 8420, "indexExpression": { "argumentTypes": null, - "id": 5858, + "id": 8419, "name": "_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5824, - "src": "9161:8:19", + "referencedDeclaration": 8385, + "src": "9107:8:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10879,21 +10887,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9148:22:19", + "src": "9094:22:30", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 5861, + "id": 8422, "indexExpression": { "argumentTypes": null, - "id": 5860, + "id": 8421, "name": "k", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5845, - "src": "9171:1:19", + "referencedDeclaration": 8406, + "src": "9117:1:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10904,7 +10912,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9148:25:19", + "src": "9094:25:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10914,48 +10922,48 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 5862, + "id": 8423, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7296, - "src": "9177:3:19", + "referencedDeclaration": 10044, + "src": "9123:3:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9148:32:19", + "src": "9094:32:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 5880, + "id": 8441, "nodeType": "IfStatement", - "src": "9144:147:19", + "src": "9090:147:30", "trueBody": { - "id": 5879, + "id": 8440, "nodeType": "Block", - "src": "9182:109:19", + "src": "9128:109:30", "statements": [ { "expression": { "argumentTypes": null, - "id": 5877, + "id": 8438, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 5864, + "id": 8425, "name": "balance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5827, - "src": "9200:7:19", + "referencedDeclaration": 8388, + "src": "9146:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10972,26 +10980,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5867, + "id": 8428, "name": "vestingBalanceOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5099, - "src": "9222:16:19", + "referencedDeclaration": 7660, + "src": "9168:16:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", "typeString": "mapping(address => mapping(uint256 => uint256))" } }, - "id": 5869, + "id": 8430, "indexExpression": { "argumentTypes": null, - "id": 5868, + "id": 8429, "name": "_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5824, - "src": "9239:8:19", + "referencedDeclaration": 8385, + "src": "9185:8:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11002,39 +11010,39 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9222:26:19", + "src": "9168:26:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", "typeString": "mapping(uint256 => uint256)" } }, - "id": 5875, + "id": 8436, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5870, + "id": 8431, "name": "vestingTimes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5104, - "src": "9249:12:19", + "referencedDeclaration": 7665, + "src": "9195:12:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(address => uint256[] storage ref)" } }, - "id": 5872, + "id": 8433, "indexExpression": { "argumentTypes": null, - "id": 5871, + "id": 8432, "name": "_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5824, - "src": "9262:8:19", + "referencedDeclaration": 8385, + "src": "9208:8:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11045,21 +11053,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9249:22:19", + "src": "9195:22:30", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 5874, + "id": 8435, "indexExpression": { "argumentTypes": null, - "id": 5873, + "id": 8434, "name": "k", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5845, - "src": "9272:1:19", + "referencedDeclaration": 8406, + "src": "9218:1:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11070,7 +11078,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9249:25:19", + "src": "9195:25:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11081,7 +11089,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9222:53:19", + "src": "9168:53:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11097,32 +11105,32 @@ ], "expression": { "argumentTypes": null, - "id": 5865, + "id": 8426, "name": "balance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5827, - "src": "9210:7:19", + "referencedDeclaration": 8388, + "src": "9156:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5866, + "id": 8427, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 6829, - "src": "9210:11:19", + "referencedDeclaration": 9577, + "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": 5876, + "id": 8437, "isConstant": false, "isLValue": false, "isPure": false, @@ -11130,21 +11138,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9210:66:19", + "src": "9156:66:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9200:76:19", + "src": "9146:76:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5878, + "id": 8439, "nodeType": "ExpressionStatement", - "src": "9200:76:19" + "src": "9146:76:30" } ] } @@ -11157,19 +11165,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5853, + "id": 8414, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5848, + "id": 8409, "name": "k", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5845, - "src": "9090:1:19", + "referencedDeclaration": 8406, + "src": "9036:1:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11183,26 +11191,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5849, + "id": 8410, "name": "vestingTimes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5104, - "src": "9094:12:19", + "referencedDeclaration": 7665, + "src": "9040:12:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(address => uint256[] storage ref)" } }, - "id": 5851, + "id": 8412, "indexExpression": { "argumentTypes": null, - "id": 5850, + "id": 8411, "name": "_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5824, - "src": "9107:8:19", + "referencedDeclaration": 8385, + "src": "9053:8:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11213,13 +11221,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9094:22:19", + "src": "9040:22:30", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 5852, + "id": 8413, "isConstant": false, "isLValue": true, "isPure": false, @@ -11227,31 +11235,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "9094:29:19", + "src": "9040:29:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9090:33:19", + "src": "9036:33:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 5882, + "id": 8443, "initializationExpression": { "assignments": [ - 5845 + 8406 ], "declarations": [ { "constant": false, - "id": 5845, + "id": 8406, "name": "k", "nodeType": "VariableDeclaration", - "scope": 5884, - "src": "9075:9:19", + "scope": 8445, + "src": "9021:9:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11259,10 +11267,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5844, + "id": 8405, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "9075:7:19", + "src": "9021:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11272,18 +11280,18 @@ "visibility": "internal" } ], - "id": 5847, + "id": 8408, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 5846, + "id": 8407, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9087:1:19", + "src": "9033:1:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -11292,12 +11300,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "9075:13:19" + "src": "9021:13:30" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 5855, + "id": 8416, "isConstant": false, "isLValue": false, "isPure": false, @@ -11305,15 +11313,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "9125:3:19", + "src": "9071:3:30", "subExpression": { "argumentTypes": null, - "id": 5854, + "id": 8415, "name": "k", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5845, - "src": "9125:1:19", + "referencedDeclaration": 8406, + "src": "9071:1:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11324,17 +11332,17 @@ "typeString": "uint256" } }, - "id": 5856, + "id": 8417, "nodeType": "ExpressionStatement", - "src": "9125:3:19" + "src": "9071:3:30" }, "nodeType": "ForStatement", - "src": "9070:231:19" + "src": "9016:231:30" } ] }, "documentation": null, - "id": 5884, + "id": 8445, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -11342,16 +11350,16 @@ "name": "accountBalance", "nodeType": "FunctionDefinition", "parameters": { - "id": 5825, + "id": 8386, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5824, + "id": 8385, "name": "_address", "nodeType": "VariableDeclaration", - "scope": 5884, - "src": "8908:16:19", + "scope": 8445, + "src": "8854:16:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11359,10 +11367,10 @@ "typeString": "address" }, "typeName": { - "id": 5823, + "id": 8384, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8908:7:19", + "src": "8854:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11372,20 +11380,20 @@ "visibility": "internal" } ], - "src": "8907:18:19" + "src": "8853:18:30" }, "payable": false, "returnParameters": { - "id": 5828, + "id": 8389, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5827, + "id": 8388, "name": "balance", "nodeType": "VariableDeclaration", - "scope": 5884, - "src": "8947:15:19", + "scope": 8445, + "src": "8893:15:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11393,10 +11401,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5826, + "id": 8387, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8947:7:19", + "src": "8893:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11406,24 +11414,24 @@ "visibility": "internal" } ], - "src": "8946:17:19" + "src": "8892:17:30" }, - "scope": 5925, - "src": "8884:423:19", + "scope": 8486, + "src": "8830:423:30", "stateMutability": "view", - "superFunction": null, + "superFunction": 7619, "visibility": "public" }, { "body": { - "id": 5897, + "id": 8458, "nodeType": "Block", - "src": "9375:47:19", + "src": "9321:47:30", "statements": [ { "expression": { "argumentTypes": null, - "id": 5895, + "id": 8456, "isConstant": false, "isLValue": false, "isPure": false, @@ -11432,26 +11440,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5891, + "id": 8452, "name": "trustedAccounts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5108, - "src": "9385:15:19", + "referencedDeclaration": 7669, + "src": "9331:15:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 5893, + "id": 8454, "indexExpression": { "argumentTypes": null, - "id": 5892, + "id": 8453, "name": "caller", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5886, - "src": "9401:6:19", + "referencedDeclaration": 8447, + "src": "9347:6:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11462,7 +11470,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "9385:23:19", + "src": "9331:23:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11473,14 +11481,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 5894, + "id": 8455, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "9411:4:19", + "src": "9357:4:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -11488,57 +11496,57 @@ }, "value": "true" }, - "src": "9385:30:19", + "src": "9331:30:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 5896, + "id": 8457, "nodeType": "ExpressionStatement", - "src": "9385:30:19" + "src": "9331:30:30" } ] }, "documentation": null, - "id": 5898, + "id": 8459, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 5889, + "id": 8450, "modifierName": { "argumentTypes": null, - "id": 5888, + "id": 8449, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6888, - "src": "9365:9:19", + "referencedDeclaration": 9636, + "src": "9311:9:30", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "9365:9:19" + "src": "9311:9:30" } ], "name": "addTrustedAccount", "nodeType": "FunctionDefinition", "parameters": { - "id": 5887, + "id": 8448, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5886, + "id": 8447, "name": "caller", "nodeType": "VariableDeclaration", - "scope": 5898, - "src": "9340:14:19", + "scope": 8459, + "src": "9286:14:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11546,10 +11554,10 @@ "typeString": "address" }, "typeName": { - "id": 5885, + "id": 8446, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9340:7:19", + "src": "9286:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11559,31 +11567,31 @@ "visibility": "internal" } ], - "src": "9339:16:19" + "src": "9285:16:30" }, "payable": false, "returnParameters": { - "id": 5890, + "id": 8451, "nodeType": "ParameterList", "parameters": [], - "src": "9375:0:19" + "src": "9321:0:30" }, - "scope": 5925, - "src": "9313:109:19", + "scope": 8486, + "src": "9259:109:30", "stateMutability": "nonpayable", - "superFunction": null, + "superFunction": 7624, "visibility": "external" }, { "body": { - "id": 5911, + "id": 8472, "nodeType": "Block", - "src": "9493:48:19", + "src": "9439:48:30", "statements": [ { "expression": { "argumentTypes": null, - "id": 5909, + "id": 8470, "isConstant": false, "isLValue": false, "isPure": false, @@ -11592,26 +11600,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5905, + "id": 8466, "name": "trustedAccounts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5108, - "src": "9503:15:19", + "referencedDeclaration": 7669, + "src": "9449:15:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 5907, + "id": 8468, "indexExpression": { "argumentTypes": null, - "id": 5906, + "id": 8467, "name": "caller", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5900, - "src": "9519:6:19", + "referencedDeclaration": 8461, + "src": "9465:6:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11622,7 +11630,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "9503:23:19", + "src": "9449:23:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11633,14 +11641,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 5908, + "id": 8469, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "9529:5:19", + "src": "9475:5:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -11648,57 +11656,57 @@ }, "value": "false" }, - "src": "9503:31:19", + "src": "9449:31:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 5910, + "id": 8471, "nodeType": "ExpressionStatement", - "src": "9503:31:19" + "src": "9449:31:30" } ] }, "documentation": null, - "id": 5912, + "id": 8473, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 5903, + "id": 8464, "modifierName": { "argumentTypes": null, - "id": 5902, + "id": 8463, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6888, - "src": "9483:9:19", + "referencedDeclaration": 9636, + "src": "9429:9:30", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "9483:9:19" + "src": "9429:9:30" } ], "name": "removeTrustedAccount", "nodeType": "FunctionDefinition", "parameters": { - "id": 5901, + "id": 8462, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5900, + "id": 8461, "name": "caller", "nodeType": "VariableDeclaration", - "scope": 5912, - "src": "9458:14:19", + "scope": 8473, + "src": "9404:14:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11706,10 +11714,10 @@ "typeString": "address" }, "typeName": { - "id": 5899, + "id": 8460, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9458:7:19", + "src": "9404:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11719,26 +11727,26 @@ "visibility": "internal" } ], - "src": "9457:16:19" + "src": "9403:16:30" }, "payable": false, "returnParameters": { - "id": 5904, + "id": 8465, "nodeType": "ParameterList", "parameters": [], - "src": "9493:0:19" + "src": "9439:0:30" }, - "scope": 5925, - "src": "9428:113:19", + "scope": 8486, + "src": "9374:113:30", "stateMutability": "nonpayable", - "superFunction": null, + "superFunction": 7629, "visibility": "external" }, { "body": { - "id": 5923, + "id": 8484, "nodeType": "Block", - "src": "9584:60:19", + "src": "9530:60:30", "statements": [ { "expression": { @@ -11748,26 +11756,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5917, + "id": 8478, "name": "trustedAccounts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5108, - "src": "9602:15:19", + "referencedDeclaration": 7669, + "src": "9548:15:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 5919, + "id": 8480, "indexExpression": { "argumentTypes": null, - "id": 5918, + "id": 8479, "name": "caller", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5914, - "src": "9618:6:19", + "referencedDeclaration": 8475, + "src": "9564:6:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11778,7 +11786,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9602:23:19", + "src": "9548:23:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11792,21 +11800,21 @@ "typeString": "bool" } ], - "id": 5916, + "id": 8477, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "9594:7:19", + "referencedDeclaration": 10045, + "src": "9540:7:30", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5920, + "id": 8481, "isConstant": false, "isLValue": false, "isPure": false, @@ -11814,38 +11822,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9594:32:19", + "src": "9540:32:30", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5921, + "id": 8482, "nodeType": "ExpressionStatement", - "src": "9594:32:19" + "src": "9540:32:30" }, { - "id": 5922, + "id": 8483, "nodeType": "PlaceholderStatement", - "src": "9636:1:19" + "src": "9582:1:30" } ] }, "documentation": null, - "id": 5924, + "id": 8485, "name": "onlyTrusted", "nodeType": "ModifierDefinition", "parameters": { - "id": 5915, + "id": 8476, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5914, + "id": 8475, "name": "caller", "nodeType": "VariableDeclaration", - "scope": 5924, - "src": "9568:14:19", + "scope": 8485, + "src": "9514:14:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11853,10 +11861,10 @@ "typeString": "address" }, "typeName": { - "id": 5913, + "id": 8474, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9568:7:19", + "src": "9514:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11866,30 +11874,30 @@ "visibility": "internal" } ], - "src": "9567:16:19" + "src": "9513:16:30" }, - "src": "9547:97:19", + "src": "9493:97:30", "visibility": "internal" } ], - "scope": 5926, - "src": "224:9422:19" + "scope": 8487, + "src": "176:9416:30" } ], - "src": "0:9647:19" + "src": "0:9593:30" }, "legacyAST": { "absolutePath": "/home/circleci/code/contracts/token/WToken.sol", "exportedSymbols": { "WToken": [ - 5925 + 8486 ] }, - "id": 5926, + "id": 8487, "nodeType": "SourceUnit", "nodes": [ { - "id": 5071, + "id": 7632, "literals": [ "solidity", "^", @@ -11897,38 +11905,38 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:19" + "src": "0:24:30" }, { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/DetailedERC20.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/DetailedERC20.sol", - "id": 5072, + "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", + "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", + "id": 7633, "nodeType": "ImportDirective", - "scope": 5926, - "sourceUnit": 6975, - "src": "26:71:19", + "scope": 8487, + "sourceUnit": 9689, + "src": "26:63:30", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 5073, + "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", + "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", + "id": 7634, "nodeType": "ImportDirective", - "scope": 5926, - "sourceUnit": 6941, - "src": "98:63:19", + "scope": 8487, + "sourceUnit": 9603, + "src": "90:59:30", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 5074, + "absolutePath": "/home/circleci/code/contracts/token/IWToken.sol", + "file": "./IWToken.sol", + "id": 7635, "nodeType": "ImportDirective", - "scope": 5926, - "sourceUnit": 6855, - "src": "162:59:19", + "scope": 8487, + "sourceUnit": 7631, + "src": "150:23:30", "symbolAliases": [], "unitAlias": "" }, @@ -11938,80 +11946,82 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 5075, - "name": "DetailedERC20", + "id": 7636, + "name": "IWToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6974, - "src": "243:13:19", + "referencedDeclaration": 7630, + "src": "195:7:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_DetailedERC20_$6974", - "typeString": "contract DetailedERC20" + "typeIdentifier": "t_contract$_IWToken_$7630", + "typeString": "contract IWToken" } }, - "id": 5076, + "id": 7637, "nodeType": "InheritanceSpecifier", - "src": "243:13:19" + "src": "195:7:30" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 5077, + "id": 7638, "name": "Ownable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6940, - "src": "258:7:19", + "referencedDeclaration": 9688, + "src": "204:7:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$6940", + "typeIdentifier": "t_contract$_Ownable_$9688", "typeString": "contract Ownable" } }, - "id": 5078, + "id": 7639, "nodeType": "InheritanceSpecifier", - "src": "258:7:19" + "src": "204:7:30" } ], "contractDependencies": [ - 6940, - 6974, - 7017, - 7049 + 7630, + 9688, + 9722, + 9765, + 9797 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 5925, + "id": 8486, "linearizedBaseContracts": [ - 5925, - 6940, - 6974, - 7017, - 7049 + 8486, + 9688, + 7630, + 9722, + 9765, + 9797 ], "name": "WToken", "nodeType": "ContractDefinition", "nodes": [ { - "id": 5081, + "id": 7642, "libraryName": { "contractScope": null, - "id": 5079, + "id": 7640, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6854, - "src": "278:8:19", + "referencedDeclaration": 9602, + "src": "224:8:30", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$6854", + "typeIdentifier": "t_contract$_SafeMath_$9602", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "272:27:19", + "src": "218:27:30", "typeName": { - "id": 5080, + "id": 7641, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "291:7:19", + "src": "237:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12020,11 +12030,11 @@ }, { "constant": false, - "id": 5087, + "id": 7648, "name": "allowed", "nodeType": "VariableDeclaration", - "scope": 5925, - "src": "305:66:19", + "scope": 8486, + "src": "251:66:30", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -12032,46 +12042,46 @@ "typeString": "mapping(address => mapping(address => uint256))" }, "typeName": { - "id": 5086, + "id": 7647, "keyType": { - "id": 5082, + "id": 7643, "name": "address", "nodeType": "ElementaryTypeName", - "src": "314:7:19", + "src": "260:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "305:49:19", + "src": "251:49:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" }, "valueType": { - "id": 5085, + "id": 7646, "keyType": { - "id": 5083, + "id": 7644, "name": "address", "nodeType": "ElementaryTypeName", - "src": "334:7:19", + "src": "280:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "325:28:19", + "src": "271:28:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 5084, + "id": 7645, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "345:7:19", + "src": "291:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12084,11 +12094,11 @@ }, { "constant": false, - "id": 5091, + "id": 7652, "name": "balances", "nodeType": "VariableDeclaration", - "scope": 5925, - "src": "378:43:19", + "scope": 8486, + "src": "324:43:30", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -12096,28 +12106,28 @@ "typeString": "mapping(address => uint256)" }, "typeName": { - "id": 5090, + "id": 7651, "keyType": { - "id": 5088, + "id": 7649, "name": "address", "nodeType": "ElementaryTypeName", - "src": "386:7:19", + "src": "332:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "378:27:19", + "src": "324:27:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 5089, + "id": 7650, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "397:7:19", + "src": "343:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12129,11 +12139,11 @@ }, { "constant": false, - "id": 5093, + "id": 7654, "name": "_totalSupply", "nodeType": "VariableDeclaration", - "scope": 5925, - "src": "428:28:19", + "scope": 8486, + "src": "374:28:30", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -12141,10 +12151,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5092, + "id": 7653, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "428:7:19", + "src": "374:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12155,11 +12165,11 @@ }, { "constant": false, - "id": 5099, + "id": 7660, "name": "vestingBalanceOf", "nodeType": "VariableDeclaration", - "scope": 5925, - "src": "463:73:19", + "scope": 8486, + "src": "409:73:30", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -12167,46 +12177,46 @@ "typeString": "mapping(address => mapping(uint256 => uint256))" }, "typeName": { - "id": 5098, + "id": 7659, "keyType": { - "id": 5094, + "id": 7655, "name": "address", "nodeType": "ElementaryTypeName", - "src": "472:7:19", + "src": "418:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "463:49:19", + "src": "409:49:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", "typeString": "mapping(address => mapping(uint256 => uint256))" }, "valueType": { - "id": 5097, + "id": 7658, "keyType": { - "id": 5095, + "id": 7656, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "492:7:19", + "src": "438:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Mapping", - "src": "483:28:19", + "src": "429:28:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", "typeString": "mapping(uint256 => uint256)" }, "valueType": { - "id": 5096, + "id": 7657, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "503:7:19", + "src": "449:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12219,11 +12229,11 @@ }, { "constant": false, - "id": 5104, + "id": 7665, "name": "vestingTimes", "nodeType": "VariableDeclaration", - "scope": 5925, - "src": "543:40:19", + "scope": 8486, + "src": "489:40:30", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -12231,38 +12241,38 @@ "typeString": "mapping(address => uint256[])" }, "typeName": { - "id": 5103, + "id": 7664, "keyType": { - "id": 5100, + "id": 7661, "name": "address", "nodeType": "ElementaryTypeName", - "src": "552:7:19", + "src": "498:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "543:27:19", + "src": "489:27:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(address => uint256[])" }, "valueType": { "baseType": { - "id": 5101, + "id": 7662, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "563:4:19", + "src": "509:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5102, + "id": 7663, "length": null, "nodeType": "ArrayTypeName", - "src": "563:6:19", + "src": "509:6:30", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -12274,11 +12284,11 @@ }, { "constant": false, - "id": 5108, + "id": 7669, "name": "trustedAccounts", "nodeType": "VariableDeclaration", - "scope": 5925, - "src": "590:41:19", + "scope": 8486, + "src": "536:41:30", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -12286,28 +12296,28 @@ "typeString": "mapping(address => bool)" }, "typeName": { - "id": 5107, + "id": 7668, "keyType": { - "id": 5105, + "id": 7666, "name": "address", "nodeType": "ElementaryTypeName", - "src": "599:7:19", + "src": "545:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "590:25:19", + "src": "536:25:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { - "id": 5106, + "id": 7667, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "610:4:19", + "src": "556:4:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -12320,21 +12330,21 @@ { "anonymous": false, "documentation": null, - "id": 5118, + "id": 7679, "name": "VestingTransfer", "nodeType": "EventDefinition", "parameters": { - "id": 5117, + "id": 7678, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5110, + "id": 7671, "indexed": false, "name": "from", "nodeType": "VariableDeclaration", - "scope": 5118, - "src": "660:12:19", + "scope": 7679, + "src": "606:12:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12342,10 +12352,10 @@ "typeString": "address" }, "typeName": { - "id": 5109, + "id": 7670, "name": "address", "nodeType": "ElementaryTypeName", - "src": "660:7:19", + "src": "606:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12356,12 +12366,12 @@ }, { "constant": false, - "id": 5112, + "id": 7673, "indexed": false, "name": "to", "nodeType": "VariableDeclaration", - "scope": 5118, - "src": "674:10:19", + "scope": 7679, + "src": "620:10:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12369,10 +12379,10 @@ "typeString": "address" }, "typeName": { - "id": 5111, + "id": 7672, "name": "address", "nodeType": "ElementaryTypeName", - "src": "674:7:19", + "src": "620:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12383,12 +12393,12 @@ }, { "constant": false, - "id": 5114, + "id": 7675, "indexed": false, "name": "value", "nodeType": "VariableDeclaration", - "scope": 5118, - "src": "686:13:19", + "scope": 7679, + "src": "632:13:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12396,10 +12406,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5113, + "id": 7674, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "686:7:19", + "src": "632:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12410,12 +12420,12 @@ }, { "constant": false, - "id": 5116, + "id": 7677, "indexed": false, "name": "agingTime", "nodeType": "VariableDeclaration", - "scope": 5118, - "src": "701:17:19", + "scope": 7679, + "src": "647:17:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12423,10 +12433,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5115, + "id": 7676, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "701:7:19", + "src": "647:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12436,28 +12446,28 @@ "visibility": "internal" } ], - "src": "659:60:19" + "src": "605:60:30" }, - "src": "638:82:19" + "src": "584:82:30" }, { "anonymous": false, "documentation": null, - "id": 5124, + "id": 7685, "name": "Burn", "nodeType": "EventDefinition", "parameters": { - "id": 5123, + "id": 7684, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5120, + "id": 7681, "indexed": true, "name": "burner", "nodeType": "VariableDeclaration", - "scope": 5124, - "src": "736:22:19", + "scope": 7685, + "src": "682:22:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12465,10 +12475,10 @@ "typeString": "address" }, "typeName": { - "id": 5119, + "id": 7680, "name": "address", "nodeType": "ElementaryTypeName", - "src": "736:7:19", + "src": "682:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12479,12 +12489,12 @@ }, { "constant": false, - "id": 5122, + "id": 7683, "indexed": false, "name": "value", "nodeType": "VariableDeclaration", - "scope": 5124, - "src": "760:13:19", + "scope": 7685, + "src": "706:13:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12492,10 +12502,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5121, + "id": 7682, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "760:7:19", + "src": "706:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12505,39 +12515,39 @@ "visibility": "internal" } ], - "src": "735:39:19" + "src": "681:39:30" }, - "src": "725:50:19" + "src": "671:50:30" }, { "body": { - "id": 5131, + "id": 7692, "nodeType": "Block", - "src": "896:36:19", + "src": "842:36:30", "statements": [ { "expression": { "argumentTypes": null, - "id": 5129, + "id": 7690, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5093, - "src": "913:12:19", + "referencedDeclaration": 7654, + "src": "859:12:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 5128, - "id": 5130, + "functionReturnParameters": 7689, + "id": 7691, "nodeType": "Return", - "src": "906:19:19" + "src": "852:19:30" } ] }, "documentation": "@dev total number of tokens in existence", - "id": 5132, + "id": 7693, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -12545,23 +12555,23 @@ "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { - "id": 5125, + "id": 7686, "nodeType": "ParameterList", "parameters": [], - "src": "863:2:19" + "src": "809:2:30" }, "payable": false, "returnParameters": { - "id": 5128, + "id": 7689, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5127, + "id": 7688, "name": "", "nodeType": "VariableDeclaration", - "scope": 5132, - "src": "887:7:19", + "scope": 7693, + "src": "833:7:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12569,10 +12579,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5126, + "id": 7687, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "887:7:19", + "src": "833:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12582,24 +12592,24 @@ "visibility": "internal" } ], - "src": "886:9:19" + "src": "832:9:30" }, - "scope": 5925, - "src": "843:89:19", + "scope": 8486, + "src": "789:89:30", "stateMutability": "view", - "superFunction": 7024, + "superFunction": 9772, "visibility": "public" }, { "body": { - "id": 5153, + "id": 7714, "nodeType": "Block", - "src": "1045:51:19", + "src": "991:51:30", "statements": [ { "expression": { "argumentTypes": null, - "id": 5151, + "id": 7712, "isConstant": false, "isLValue": false, "isPure": false, @@ -12608,34 +12618,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5146, + "id": 7707, "name": "trustedAccounts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5108, - "src": "1055:15:19", + "referencedDeclaration": 7669, + "src": "1001:15:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 5149, + "id": 7710, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5147, + "id": 7708, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "1071:3:19", + "referencedDeclaration": 10042, + "src": "1017:3:30", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 5148, + "id": 7709, "isConstant": false, "isLValue": false, "isPure": false, @@ -12643,7 +12653,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1071:10:19", + "src": "1017:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12654,7 +12664,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1055:27:19", + "src": "1001:27:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -12665,14 +12675,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 5150, + "id": 7711, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1085:4:19", + "src": "1031:4:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -12680,20 +12690,20 @@ }, "value": "true" }, - "src": "1055:34:19", + "src": "1001:34:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 5152, + "id": 7713, "nodeType": "ExpressionStatement", - "src": "1055:34:19" + "src": "1001:34:30" } ] }, "documentation": null, - "id": 5154, + "id": 7715, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -12702,12 +12712,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5141, + "id": 7702, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5134, - "src": "1011:5:19", + "referencedDeclaration": 7695, + "src": "957:5:30", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -12715,12 +12725,12 @@ }, { "argumentTypes": null, - "id": 5142, + "id": 7703, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5136, - "src": "1018:7:19", + "referencedDeclaration": 7697, + "src": "964:7:30", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -12728,49 +12738,49 @@ }, { "argumentTypes": null, - "id": 5143, + "id": 7704, "name": "_decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5138, - "src": "1027:9:19", + "referencedDeclaration": 7699, + "src": "973:9:30", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } } ], - "id": 5144, + "id": 7705, "modifierName": { "argumentTypes": null, - "id": 5140, + "id": 7701, "name": "DetailedERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6974, - "src": "997:13:19", + "referencedDeclaration": 9722, + "src": "943:13:30", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_DetailedERC20_$6974_$", + "typeIdentifier": "t_type$_t_contract$_DetailedERC20_$9722_$", "typeString": "type(contract DetailedERC20)" } }, "nodeType": "ModifierInvocation", - "src": "997:40:19" + "src": "943:40:30" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 5139, + "id": 7700, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5134, + "id": 7695, "name": "_name", "nodeType": "VariableDeclaration", - "scope": 5154, - "src": "950:12:19", + "scope": 7715, + "src": "896:12:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12778,10 +12788,10 @@ "typeString": "string" }, "typeName": { - "id": 5133, + "id": 7694, "name": "string", "nodeType": "ElementaryTypeName", - "src": "950:6:19", + "src": "896:6:30", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -12792,11 +12802,11 @@ }, { "constant": false, - "id": 5136, + "id": 7697, "name": "_symbol", "nodeType": "VariableDeclaration", - "scope": 5154, - "src": "964:14:19", + "scope": 7715, + "src": "910:14:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12804,10 +12814,10 @@ "typeString": "string" }, "typeName": { - "id": 5135, + "id": 7696, "name": "string", "nodeType": "ElementaryTypeName", - "src": "964:6:19", + "src": "910:6:30", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -12818,11 +12828,11 @@ }, { "constant": false, - "id": 5138, + "id": 7699, "name": "_decimals", "nodeType": "VariableDeclaration", - "scope": 5154, - "src": "980:15:19", + "scope": 7715, + "src": "926:15:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12830,10 +12840,10 @@ "typeString": "uint8" }, "typeName": { - "id": 5137, + "id": 7698, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "980:5:19", + "src": "926:5:30", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -12843,26 +12853,26 @@ "visibility": "internal" } ], - "src": "949:47:19" + "src": "895:47:30" }, "payable": false, "returnParameters": { - "id": 5145, + "id": 7706, "nodeType": "ParameterList", "parameters": [], - "src": "1045:0:19" + "src": "991:0:30" }, - "scope": 5925, - "src": "938:158:19", + "scope": 8486, + "src": "884:158:30", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 5218, + "id": 7779, "nodeType": "Block", - "src": "1331:324:19", + "src": "1277:324:30", "statements": [ { "expression": { @@ -12872,18 +12882,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5164, + "id": 7725, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "1357:3:19", + "referencedDeclaration": 10042, + "src": "1303:3:30", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 5165, + "id": 7726, "isConstant": false, "isLValue": false, "isPure": false, @@ -12891,7 +12901,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1357:10:19", + "src": "1303:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12905,18 +12915,18 @@ "typeString": "address" } ], - "id": 5163, + "id": 7724, "name": "_checkMyVesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5822, - "src": "1341:15:19", + "referencedDeclaration": 8383, + "src": "1287:15:30", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 5166, + "id": 7727, "isConstant": false, "isLValue": false, "isPure": false, @@ -12924,15 +12934,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1341:27:19", + "src": "1287:27:30", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5167, + "id": 7728, "nodeType": "ExpressionStatement", - "src": "1341:27:19" + "src": "1287:27:30" }, { "expression": { @@ -12944,19 +12954,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 5173, + "id": 7734, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5169, + "id": 7730, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5156, - "src": "1386:3:19", + "referencedDeclaration": 7717, + "src": "1332:3:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12970,14 +12980,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 5171, + "id": 7732, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1401:1:19", + "src": "1347:1:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -12993,20 +13003,20 @@ "typeString": "int_const 0" } ], - "id": 5170, + "id": 7731, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1393:7:19", + "src": "1339:7:30", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 5172, + "id": 7733, "isConstant": false, "isLValue": false, "isPure": true, @@ -13014,13 +13024,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1393:10:19", + "src": "1339:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1386:17:19", + "src": "1332:17:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -13034,21 +13044,21 @@ "typeString": "bool" } ], - "id": 5168, + "id": 7729, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "1378:7:19", + "referencedDeclaration": 10045, + "src": "1324:7:30", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5174, + "id": 7735, "isConstant": false, "isLValue": false, "isPure": false, @@ -13056,15 +13066,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1378:26:19", + "src": "1324:26:30", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5175, + "id": 7736, "nodeType": "ExpressionStatement", - "src": "1378:26:19" + "src": "1324:26:30" }, { "expression": { @@ -13076,19 +13086,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5182, + "id": 7743, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5177, + "id": 7738, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5158, - "src": "1422:6:19", + "referencedDeclaration": 7719, + "src": "1368:6:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13103,18 +13113,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5179, + "id": 7740, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "1447:3:19", + "referencedDeclaration": 10042, + "src": "1393:3:30", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 5180, + "id": 7741, "isConstant": false, "isLValue": false, "isPure": false, @@ -13122,7 +13132,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1447:10:19", + "src": "1393:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13136,18 +13146,20 @@ "typeString": "address" } ], - "id": 5178, + "id": 7739, "name": "accountBalance", "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5884, - "src": "1432:14:19", + "overloadedDeclarations": [ + 8445 + ], + "referencedDeclaration": 8445, + "src": "1378:14:30", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view returns (uint256)" } }, - "id": 5181, + "id": 7742, "isConstant": false, "isLValue": false, "isPure": false, @@ -13155,13 +13167,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1432:26:19", + "src": "1378:26:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1422:36:19", + "src": "1368:36:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -13175,21 +13187,21 @@ "typeString": "bool" } ], - "id": 5176, + "id": 7737, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "1414:7:19", + "referencedDeclaration": 10045, + "src": "1360:7:30", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5183, + "id": 7744, "isConstant": false, "isLValue": false, "isPure": false, @@ -13197,20 +13209,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1414:45:19", + "src": "1360:45:30", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5184, + "id": 7745, "nodeType": "ExpressionStatement", - "src": "1414:45:19" + "src": "1360:45:30" }, { "expression": { "argumentTypes": null, - "id": 5196, + "id": 7757, "isConstant": false, "isLValue": false, "isPure": false, @@ -13219,34 +13231,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5185, + "id": 7746, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5091, - "src": "1470:8:19", + "referencedDeclaration": 7652, + "src": "1416:8:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 5188, + "id": 7749, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5186, + "id": 7747, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "1479:3:19", + "referencedDeclaration": 10042, + "src": "1425:3:30", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 5187, + "id": 7748, "isConstant": false, "isLValue": false, "isPure": false, @@ -13254,7 +13266,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1479:10:19", + "src": "1425:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13265,7 +13277,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1470:20:19", + "src": "1416:20:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13278,12 +13290,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5194, + "id": 7755, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5158, - "src": "1518:6:19", + "referencedDeclaration": 7719, + "src": "1464:6:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13301,34 +13313,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5189, + "id": 7750, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5091, - "src": "1493:8:19", + "referencedDeclaration": 7652, + "src": "1439:8:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 5192, + "id": 7753, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5190, + "id": 7751, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "1502:3:19", + "referencedDeclaration": 10042, + "src": "1448:3:30", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 5191, + "id": 7752, "isConstant": false, "isLValue": false, "isPure": false, @@ -13336,7 +13348,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1502:10:19", + "src": "1448:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13347,27 +13359,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1493:20:19", + "src": "1439:20:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5193, + "id": 7754, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 6829, - "src": "1493:24:19", + "referencedDeclaration": 9577, + "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": 5195, + "id": 7756, "isConstant": false, "isLValue": false, "isPure": false, @@ -13375,26 +13387,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1493:32:19", + "src": "1439:32:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1470:55:19", + "src": "1416:55:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5197, + "id": 7758, "nodeType": "ExpressionStatement", - "src": "1470:55:19" + "src": "1416:55:30" }, { "expression": { "argumentTypes": null, - "id": 5207, + "id": 7768, "isConstant": false, "isLValue": false, "isPure": false, @@ -13403,26 +13415,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5198, + "id": 7759, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5091, - "src": "1536:8:19", + "referencedDeclaration": 7652, + "src": "1482:8:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 5200, + "id": 7761, "indexExpression": { "argumentTypes": null, - "id": 5199, + "id": 7760, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5156, - "src": "1545:3:19", + "referencedDeclaration": 7717, + "src": "1491:3:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13433,7 +13445,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1536:13:19", + "src": "1482:13:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13446,12 +13458,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5205, + "id": 7766, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5158, - "src": "1570:6:19", + "referencedDeclaration": 7719, + "src": "1516:6:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13469,26 +13481,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5201, + "id": 7762, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5091, - "src": "1552:8:19", + "referencedDeclaration": 7652, + "src": "1498:8:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 5203, + "id": 7764, "indexExpression": { "argumentTypes": null, - "id": 5202, + "id": 7763, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5156, - "src": "1561:3:19", + "referencedDeclaration": 7717, + "src": "1507:3:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13499,27 +13511,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1552:13:19", + "src": "1498:13:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5204, + "id": 7765, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 6853, - "src": "1552:17:19", + "referencedDeclaration": 9601, + "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": 5206, + "id": 7767, "isConstant": false, "isLValue": false, "isPure": false, @@ -13527,21 +13539,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1552:25:19", + "src": "1498:25:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1536:41:19", + "src": "1482:41:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5208, + "id": 7769, "nodeType": "ExpressionStatement", - "src": "1536:41:19" + "src": "1482:41:30" }, { "eventCall": { @@ -13551,18 +13563,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5210, + "id": 7771, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "1602:3:19", + "referencedDeclaration": 10042, + "src": "1548:3:30", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 5211, + "id": 7772, "isConstant": false, "isLValue": false, "isPure": false, @@ -13570,7 +13582,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1602:10:19", + "src": "1548:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13578,12 +13590,12 @@ }, { "argumentTypes": null, - "id": 5212, + "id": 7773, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5156, - "src": "1614:3:19", + "referencedDeclaration": 7717, + "src": "1560:3:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13591,12 +13603,12 @@ }, { "argumentTypes": null, - "id": 5213, + "id": 7774, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5158, - "src": "1619:6:19", + "referencedDeclaration": 7719, + "src": "1565:6:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13618,18 +13630,18 @@ "typeString": "uint256" } ], - "id": 5209, + "id": 7770, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7048, - "src": "1593:8:19", + "referencedDeclaration": 9796, + "src": "1539:8:30", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 5214, + "id": 7775, "isConstant": false, "isLValue": false, "isPure": false, @@ -13637,28 +13649,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1593:33:19", + "src": "1539:33:30", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5215, + "id": 7776, "nodeType": "EmitStatement", - "src": "1588:38:19" + "src": "1534:38:30" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 5216, + "id": 7777, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1644:4:19", + "src": "1590:4:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -13666,15 +13678,15 @@ }, "value": "true" }, - "functionReturnParameters": 5162, - "id": 5217, + "functionReturnParameters": 7723, + "id": 7778, "nodeType": "Return", - "src": "1637:11:19" + "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": 5219, + "id": 7780, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -13682,16 +13694,16 @@ "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 5159, + "id": 7720, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5156, + "id": 7717, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 5219, - "src": "1280:11:19", + "scope": 7780, + "src": "1226:11:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13699,10 +13711,10 @@ "typeString": "address" }, "typeName": { - "id": 5155, + "id": 7716, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1280:7:19", + "src": "1226:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13713,11 +13725,11 @@ }, { "constant": false, - "id": 5158, + "id": 7719, "name": "_value", "nodeType": "VariableDeclaration", - "scope": 5219, - "src": "1293:14:19", + "scope": 7780, + "src": "1239:14:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13725,10 +13737,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5157, + "id": 7718, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1293:7:19", + "src": "1239:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13738,20 +13750,20 @@ "visibility": "internal" } ], - "src": "1279:29:19" + "src": "1225:29:30" }, "payable": false, "returnParameters": { - "id": 5162, + "id": 7723, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5161, + "id": 7722, "name": "", "nodeType": "VariableDeclaration", - "scope": 5219, - "src": "1325:4:19", + "scope": 7780, + "src": "1271:4:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13759,10 +13771,10 @@ "typeString": "bool" }, "typeName": { - "id": 5160, + "id": 7721, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1325:4:19", + "src": "1271:4:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -13772,19 +13784,19 @@ "visibility": "internal" } ], - "src": "1324:6:19" + "src": "1270:6:30" }, - "scope": 5925, - "src": "1262:393:19", + "scope": 8486, + "src": "1208:393:30", "stateMutability": "nonpayable", - "superFunction": 7040, + "superFunction": 9788, "visibility": "public" }, { "body": { - "id": 5263, + "id": 7824, "nodeType": "Block", - "src": "1784:241:19", + "src": "1730:241:30", "statements": [ { "expression": { @@ -13792,12 +13804,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5235, + "id": 7796, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5221, - "src": "1803:3:19", + "referencedDeclaration": 7782, + "src": "1749:3:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13805,12 +13817,12 @@ }, { "argumentTypes": null, - "id": 5236, + "id": 7797, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5223, - "src": "1808:6:19", + "referencedDeclaration": 7784, + "src": "1754:6:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13828,20 +13840,20 @@ "typeString": "uint256" } ], - "id": 5234, + "id": 7795, "name": "transfer", "nodeType": "Identifier", "overloadedDeclarations": [ - 5219 + 7780 ], - "referencedDeclaration": 5219, - "src": "1794:8:19", + "referencedDeclaration": 7780, + "src": "1740:8:30", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) returns (bool)" } }, - "id": 5237, + "id": 7798, "isConstant": false, "isLValue": false, "isPure": false, @@ -13849,15 +13861,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1794:21:19", + "src": "1740:21:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 5238, + "id": 7799, "nodeType": "ExpressionStatement", - "src": "1794:21:19" + "src": "1740:21:30" }, { "condition": { @@ -13866,19 +13878,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5241, + "id": 7802, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5239, + "id": 7800, "name": "_vestingTime", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5225, - "src": "1830:12:19", + "referencedDeclaration": 7786, + "src": "1776:12:30", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -13888,31 +13900,31 @@ "operator": ">", "rightExpression": { "argumentTypes": null, - "id": 5240, + "id": 7801, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7296, - "src": "1845:3:19", + "referencedDeclaration": 10044, + "src": "1791:3:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1830:18:19", + "src": "1776:18:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 5252, + "id": 7813, "nodeType": "IfStatement", - "src": "1826:101:19", + "src": "1772:101:30", "trueBody": { - "id": 5251, + "id": 7812, "nodeType": "Block", - "src": "1850:77:19", + "src": "1796:77:30", "statements": [ { "expression": { @@ -13924,14 +13936,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 5244, + "id": 7805, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1886:1:19", + "src": "1832:1:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -13947,20 +13959,20 @@ "typeString": "int_const 0" } ], - "id": 5243, + "id": 7804, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1878:7:19", + "src": "1824:7:30", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 5245, + "id": 7806, "isConstant": false, "isLValue": false, "isPure": true, @@ -13968,7 +13980,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1878:10:19", + "src": "1824:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13976,12 +13988,12 @@ }, { "argumentTypes": null, - "id": 5246, + "id": 7807, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5221, - "src": "1890:3:19", + "referencedDeclaration": 7782, + "src": "1836:3:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13989,12 +14001,12 @@ }, { "argumentTypes": null, - "id": 5247, + "id": 7808, "name": "_vestingTime", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5225, - "src": "1895:12:19", + "referencedDeclaration": 7786, + "src": "1841:12:30", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -14002,12 +14014,12 @@ }, { "argumentTypes": null, - "id": 5248, + "id": 7809, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5223, - "src": "1909:6:19", + "referencedDeclaration": 7784, + "src": "1855:6:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14033,18 +14045,18 @@ "typeString": "uint256" } ], - "id": 5242, + "id": 7803, "name": "_addToVesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5644, - "src": "1864:13:19", + "referencedDeclaration": 8205, + "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": 5249, + "id": 7810, "isConstant": false, "isLValue": false, "isPure": false, @@ -14052,15 +14064,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1864:52:19", + "src": "1810:52:30", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5250, + "id": 7811, "nodeType": "ExpressionStatement", - "src": "1864:52:19" + "src": "1810:52:30" } ] } @@ -14073,18 +14085,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5254, + "id": 7815, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "1958:3:19", + "referencedDeclaration": 10042, + "src": "1904:3:30", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 5255, + "id": 7816, "isConstant": false, "isLValue": false, "isPure": false, @@ -14092,7 +14104,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1958:10:19", + "src": "1904:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14100,12 +14112,12 @@ }, { "argumentTypes": null, - "id": 5256, + "id": 7817, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5221, - "src": "1970:3:19", + "referencedDeclaration": 7782, + "src": "1916:3:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14113,12 +14125,12 @@ }, { "argumentTypes": null, - "id": 5257, + "id": 7818, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5223, - "src": "1975:6:19", + "referencedDeclaration": 7784, + "src": "1921:6:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14126,12 +14138,12 @@ }, { "argumentTypes": null, - "id": 5258, + "id": 7819, "name": "_vestingTime", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5225, - "src": "1983:12:19", + "referencedDeclaration": 7786, + "src": "1929:12:30", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -14157,18 +14169,18 @@ "typeString": "uint32" } ], - "id": 5253, + "id": 7814, "name": "VestingTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5118, - "src": "1942:15:19", + "referencedDeclaration": 7679, + "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": 5259, + "id": 7820, "isConstant": false, "isLValue": false, "isPure": false, @@ -14176,28 +14188,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1942:54:19", + "src": "1888:54:30", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5260, + "id": 7821, "nodeType": "EmitStatement", - "src": "1937:59:19" + "src": "1883:59:30" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 5261, + "id": 7822, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "2014:4:19", + "src": "1960:4:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -14205,15 +14217,15 @@ }, "value": "true" }, - "functionReturnParameters": 5233, - "id": 5262, + "functionReturnParameters": 7794, + "id": 7823, "nodeType": "Return", - "src": "2007:11:19" + "src": "1953:11:30" } ] }, "documentation": null, - "id": 5264, + "id": 7825, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -14224,18 +14236,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5228, + "id": 7789, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "1757:3:19", + "referencedDeclaration": 10042, + "src": "1703:3:30", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 5229, + "id": 7790, "isConstant": false, "isLValue": false, "isPure": false, @@ -14243,44 +14255,44 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1757:10:19", + "src": "1703:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], - "id": 5230, + "id": 7791, "modifierName": { "argumentTypes": null, - "id": 5227, + "id": 7788, "name": "onlyTrusted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5924, - "src": "1745:11:19", + "referencedDeclaration": 8485, + "src": "1691:11:30", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_address_$", "typeString": "modifier (address)" } }, "nodeType": "ModifierInvocation", - "src": "1745:23:19" + "src": "1691:23:30" } ], "name": "vestingTransfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 5226, + "id": 7787, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5221, + "id": 7782, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 5264, - "src": "1686:11:19", + "scope": 7825, + "src": "1632:11:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14288,10 +14300,10 @@ "typeString": "address" }, "typeName": { - "id": 5220, + "id": 7781, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1686:7:19", + "src": "1632:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14302,11 +14314,11 @@ }, { "constant": false, - "id": 5223, + "id": 7784, "name": "_value", "nodeType": "VariableDeclaration", - "scope": 5264, - "src": "1699:14:19", + "scope": 7825, + "src": "1645:14:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14314,10 +14326,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5222, + "id": 7783, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1699:7:19", + "src": "1645:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14328,11 +14340,11 @@ }, { "constant": false, - "id": 5225, + "id": 7786, "name": "_vestingTime", "nodeType": "VariableDeclaration", - "scope": 5264, - "src": "1715:19:19", + "scope": 7825, + "src": "1661:19:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14340,10 +14352,10 @@ "typeString": "uint32" }, "typeName": { - "id": 5224, + "id": 7785, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "1715:6:19", + "src": "1661:6:30", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -14353,20 +14365,20 @@ "visibility": "internal" } ], - "src": "1685:50:19" + "src": "1631:50:30" }, "payable": false, "returnParameters": { - "id": 5233, + "id": 7794, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5232, + "id": 7793, "name": "", "nodeType": "VariableDeclaration", - "scope": 5264, - "src": "1778:4:19", + "scope": 7825, + "src": "1724:4:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14374,10 +14386,10 @@ "typeString": "bool" }, "typeName": { - "id": 5231, + "id": 7792, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1778:4:19", + "src": "1724:4:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14387,45 +14399,45 @@ "visibility": "internal" } ], - "src": "1777:6:19" + "src": "1723:6:30" }, - "scope": 5925, - "src": "1661:364:19", + "scope": 8486, + "src": "1607:364:30", "stateMutability": "nonpayable", - "superFunction": null, + "superFunction": 7571, "visibility": "external" }, { "body": { - "id": 5275, + "id": 7836, "nodeType": "Block", - "src": "2312:40:19", + "src": "2258:40:30", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5271, + "id": 7832, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5091, - "src": "2329:8:19", + "referencedDeclaration": 7652, + "src": "2275:8:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 5273, + "id": 7834, "indexExpression": { "argumentTypes": null, - "id": 5272, + "id": 7833, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5266, - "src": "2338:6:19", + "referencedDeclaration": 7827, + "src": "2284:6:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14436,21 +14448,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2329:16:19", + "src": "2275:16:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 5270, - "id": 5274, + "functionReturnParameters": 7831, + "id": 7835, "nodeType": "Return", - "src": "2322:23:19" + "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": 5276, + "id": 7837, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -14458,16 +14470,16 @@ "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 5267, + "id": 7828, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5266, + "id": 7827, "name": "_owner", "nodeType": "VariableDeclaration", - "scope": 5276, - "src": "2258:14:19", + "scope": 7837, + "src": "2204:14:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14475,10 +14487,10 @@ "typeString": "address" }, "typeName": { - "id": 5265, + "id": 7826, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2258:7:19", + "src": "2204:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14488,20 +14500,20 @@ "visibility": "internal" } ], - "src": "2257:16:19" + "src": "2203:16:30" }, "payable": false, "returnParameters": { - "id": 5270, + "id": 7831, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5269, + "id": 7830, "name": "balance", "nodeType": "VariableDeclaration", - "scope": 5276, - "src": "2295:15:19", + "scope": 7837, + "src": "2241:15:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14509,10 +14521,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5268, + "id": 7829, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2295:7:19", + "src": "2241:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14522,19 +14534,19 @@ "visibility": "internal" } ], - "src": "2294:17:19" + "src": "2240:17:30" }, - "scope": 5925, - "src": "2239:113:19", + "scope": 8486, + "src": "2185:113:30", "stateMutability": "view", - "superFunction": 7031, + "superFunction": 9779, "visibility": "public" }, { "body": { - "id": 5365, + "id": 7926, "nodeType": "Block", - "src": "2724:430:19", + "src": "2670:430:30", "statements": [ { "expression": { @@ -14542,12 +14554,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5288, + "id": 7849, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5278, - "src": "2750:5:19", + "referencedDeclaration": 7839, + "src": "2696:5:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14561,18 +14573,18 @@ "typeString": "address" } ], - "id": 5287, + "id": 7848, "name": "_checkMyVesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5822, - "src": "2734:15:19", + "referencedDeclaration": 8383, + "src": "2680:15:30", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 5289, + "id": 7850, "isConstant": false, "isLValue": false, "isPure": false, @@ -14580,15 +14592,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2734:22:19", + "src": "2680:22:30", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5290, + "id": 7851, "nodeType": "ExpressionStatement", - "src": "2734:22:19" + "src": "2680:22:30" }, { "expression": { @@ -14600,19 +14612,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 5296, + "id": 7857, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5292, + "id": 7853, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5280, - "src": "2775:3:19", + "referencedDeclaration": 7841, + "src": "2721:3:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14626,14 +14638,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 5294, + "id": 7855, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2790:1:19", + "src": "2736:1:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -14649,20 +14661,20 @@ "typeString": "int_const 0" } ], - "id": 5293, + "id": 7854, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2782:7:19", + "src": "2728:7:30", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 5295, + "id": 7856, "isConstant": false, "isLValue": false, "isPure": true, @@ -14670,13 +14682,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2782:10:19", + "src": "2728:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2775:17:19", + "src": "2721:17:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14690,21 +14702,21 @@ "typeString": "bool" } ], - "id": 5291, + "id": 7852, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "2767:7:19", + "referencedDeclaration": 10045, + "src": "2713:7:30", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5297, + "id": 7858, "isConstant": false, "isLValue": false, "isPure": false, @@ -14712,15 +14724,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2767:26:19", + "src": "2713:26:30", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5298, + "id": 7859, "nodeType": "ExpressionStatement", - "src": "2767:26:19" + "src": "2713:26:30" }, { "expression": { @@ -14732,19 +14744,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5304, + "id": 7865, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5300, + "id": 7861, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5282, - "src": "2811:6:19", + "referencedDeclaration": 7843, + "src": "2757:6:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14757,12 +14769,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5302, + "id": 7863, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5278, - "src": "2836:5:19", + "referencedDeclaration": 7839, + "src": "2782:5:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14776,18 +14788,20 @@ "typeString": "address" } ], - "id": 5301, + "id": 7862, "name": "accountBalance", "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5884, - "src": "2821:14:19", + "overloadedDeclarations": [ + 8445 + ], + "referencedDeclaration": 8445, + "src": "2767:14:30", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view returns (uint256)" } }, - "id": 5303, + "id": 7864, "isConstant": false, "isLValue": false, "isPure": false, @@ -14795,13 +14809,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2821:21:19", + "src": "2767:21:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2811:31:19", + "src": "2757:31:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14815,21 +14829,21 @@ "typeString": "bool" } ], - "id": 5299, + "id": 7860, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "2803:7:19", + "referencedDeclaration": 10045, + "src": "2749:7:30", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5305, + "id": 7866, "isConstant": false, "isLValue": false, "isPure": false, @@ -14837,15 +14851,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2803:40:19", + "src": "2749:40:30", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5306, + "id": 7867, "nodeType": "ExpressionStatement", - "src": "2803:40:19" + "src": "2749:40:30" }, { "expression": { @@ -14857,19 +14871,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5315, + "id": 7876, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5308, + "id": 7869, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5282, - "src": "2861:6:19", + "referencedDeclaration": 7843, + "src": "2807:6:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14883,26 +14897,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5309, + "id": 7870, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5087, - "src": "2871:7:19", + "referencedDeclaration": 7648, + "src": "2817:7:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 5311, + "id": 7872, "indexExpression": { "argumentTypes": null, - "id": 5310, + "id": 7871, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5278, - "src": "2879:5:19", + "referencedDeclaration": 7839, + "src": "2825:5:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14913,29 +14927,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2871:14:19", + "src": "2817:14:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 5314, + "id": 7875, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5312, + "id": 7873, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "2886:3:19", + "referencedDeclaration": 10042, + "src": "2832:3:30", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 5313, + "id": 7874, "isConstant": false, "isLValue": false, "isPure": false, @@ -14943,7 +14957,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2886:10:19", + "src": "2832:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14954,13 +14968,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2871:26:19", + "src": "2817:26:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2861:36:19", + "src": "2807:36:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14974,21 +14988,21 @@ "typeString": "bool" } ], - "id": 5307, + "id": 7868, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "2853:7:19", + "referencedDeclaration": 10045, + "src": "2799:7:30", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5316, + "id": 7877, "isConstant": false, "isLValue": false, "isPure": false, @@ -14996,20 +15010,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2853:45:19", + "src": "2799:45:30", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5317, + "id": 7878, "nodeType": "ExpressionStatement", - "src": "2853:45:19" + "src": "2799:45:30" }, { "expression": { "argumentTypes": null, - "id": 5327, + "id": 7888, "isConstant": false, "isLValue": false, "isPure": false, @@ -15018,26 +15032,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5318, + "id": 7879, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5091, - "src": "2909:8:19", + "referencedDeclaration": 7652, + "src": "2855:8:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 5320, + "id": 7881, "indexExpression": { "argumentTypes": null, - "id": 5319, + "id": 7880, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5278, - "src": "2918:5:19", + "referencedDeclaration": 7839, + "src": "2864:5:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15048,7 +15062,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2909:15:19", + "src": "2855:15:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15061,12 +15075,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5325, + "id": 7886, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5282, - "src": "2947:6:19", + "referencedDeclaration": 7843, + "src": "2893:6:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15084,26 +15098,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5321, + "id": 7882, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5091, - "src": "2927:8:19", + "referencedDeclaration": 7652, + "src": "2873:8:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 5323, + "id": 7884, "indexExpression": { "argumentTypes": null, - "id": 5322, + "id": 7883, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5278, - "src": "2936:5:19", + "referencedDeclaration": 7839, + "src": "2882:5:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15114,27 +15128,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2927:15:19", + "src": "2873:15:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5324, + "id": 7885, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 6829, - "src": "2927:19:19", + "referencedDeclaration": 9577, + "src": "2873:19: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": 5326, + "id": 7887, "isConstant": false, "isLValue": false, "isPure": false, @@ -15142,26 +15156,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2927:27:19", + "src": "2873:27:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2909:45:19", + "src": "2855:45:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5328, + "id": 7889, "nodeType": "ExpressionStatement", - "src": "2909:45:19" + "src": "2855:45:30" }, { "expression": { "argumentTypes": null, - "id": 5338, + "id": 7899, "isConstant": false, "isLValue": false, "isPure": false, @@ -15170,26 +15184,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5329, + "id": 7890, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5091, - "src": "2964:8:19", + "referencedDeclaration": 7652, + "src": "2910:8:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 5331, + "id": 7892, "indexExpression": { "argumentTypes": null, - "id": 5330, + "id": 7891, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5280, - "src": "2973:3:19", + "referencedDeclaration": 7841, + "src": "2919:3:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15200,7 +15214,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2964:13:19", + "src": "2910:13:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15213,12 +15227,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5336, + "id": 7897, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5282, - "src": "2998:6:19", + "referencedDeclaration": 7843, + "src": "2944:6:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15236,26 +15250,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5332, + "id": 7893, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5091, - "src": "2980:8:19", + "referencedDeclaration": 7652, + "src": "2926:8:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 5334, + "id": 7895, "indexExpression": { "argumentTypes": null, - "id": 5333, + "id": 7894, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5280, - "src": "2989:3:19", + "referencedDeclaration": 7841, + "src": "2935:3:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15266,27 +15280,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2980:13:19", + "src": "2926:13:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5335, + "id": 7896, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 6853, - "src": "2980:17:19", + "referencedDeclaration": 9601, + "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)" } }, - "id": 5337, + "id": 7898, "isConstant": false, "isLValue": false, "isPure": false, @@ -15294,26 +15308,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2980:25:19", + "src": "2926:25:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2964:41:19", + "src": "2910:41:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5339, + "id": 7900, "nodeType": "ExpressionStatement", - "src": "2964:41:19" + "src": "2910:41:30" }, { "expression": { "argumentTypes": null, - "id": 5355, + "id": 7916, "isConstant": false, "isLValue": false, "isPure": false, @@ -15324,26 +15338,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5340, + "id": 7901, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5087, - "src": "3015:7:19", + "referencedDeclaration": 7648, + "src": "2961:7:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 5344, + "id": 7905, "indexExpression": { "argumentTypes": null, - "id": 5341, + "id": 7902, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5278, - "src": "3023:5:19", + "referencedDeclaration": 7839, + "src": "2969:5:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15354,29 +15368,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3015:14:19", + "src": "2961:14:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 5345, + "id": 7906, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5342, + "id": 7903, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "3030:3:19", + "referencedDeclaration": 10042, + "src": "2976:3:30", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 5343, + "id": 7904, "isConstant": false, "isLValue": false, "isPure": false, @@ -15384,7 +15398,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3030:10:19", + "src": "2976:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15395,7 +15409,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3015:26:19", + "src": "2961:26:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15408,12 +15422,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5353, + "id": 7914, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5282, - "src": "3075:6:19", + "referencedDeclaration": 7843, + "src": "3021:6:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15433,26 +15447,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5346, + "id": 7907, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5087, - "src": "3044:7:19", + "referencedDeclaration": 7648, + "src": "2990:7:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 5348, + "id": 7909, "indexExpression": { "argumentTypes": null, - "id": 5347, + "id": 7908, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5278, - "src": "3052:5:19", + "referencedDeclaration": 7839, + "src": "2998:5:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15463,29 +15477,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3044:14:19", + "src": "2990:14:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 5351, + "id": 7912, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5349, + "id": 7910, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "3059:3:19", + "referencedDeclaration": 10042, + "src": "3005:3:30", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 5350, + "id": 7911, "isConstant": false, "isLValue": false, "isPure": false, @@ -15493,7 +15507,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3059:10:19", + "src": "3005:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15504,27 +15518,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3044:26:19", + "src": "2990:26:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5352, + "id": 7913, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 6829, - "src": "3044:30:19", + "referencedDeclaration": 9577, + "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)" } }, - "id": 5354, + "id": 7915, "isConstant": false, "isLValue": false, "isPure": false, @@ -15532,21 +15546,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3044:38:19", + "src": "2990:38:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3015:67:19", + "src": "2961:67:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5356, + "id": 7917, "nodeType": "ExpressionStatement", - "src": "3015:67:19" + "src": "2961:67:30" }, { "eventCall": { @@ -15554,12 +15568,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5358, + "id": 7919, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5278, - "src": "3107:5:19", + "referencedDeclaration": 7839, + "src": "3053:5:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15567,12 +15581,12 @@ }, { "argumentTypes": null, - "id": 5359, + "id": 7920, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5280, - "src": "3114:3:19", + "referencedDeclaration": 7841, + "src": "3060:3:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15580,12 +15594,12 @@ }, { "argumentTypes": null, - "id": 5360, + "id": 7921, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5282, - "src": "3119:6:19", + "referencedDeclaration": 7843, + "src": "3065:6:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15607,18 +15621,18 @@ "typeString": "uint256" } ], - "id": 5357, + "id": 7918, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7048, - "src": "3098:8:19", + "referencedDeclaration": 9796, + "src": "3044:8:30", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 5361, + "id": 7922, "isConstant": false, "isLValue": false, "isPure": false, @@ -15626,28 +15640,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3098:28:19", + "src": "3044:28:30", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5362, + "id": 7923, "nodeType": "EmitStatement", - "src": "3093:33:19" + "src": "3039:33:30" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 5363, + "id": 7924, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3143:4:19", + "src": "3089:4:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -15655,15 +15669,15 @@ }, "value": "true" }, - "functionReturnParameters": 5286, - "id": 5364, + "functionReturnParameters": 7847, + "id": 7925, "nodeType": "Return", - "src": "3136:11:19" + "src": "3082:11:30" } ] }, "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": 5366, + "id": 7927, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -15671,16 +15685,16 @@ "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 5283, + "id": 7844, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5278, + "id": 7839, "name": "_from", "nodeType": "VariableDeclaration", - "scope": 5366, - "src": "2658:13:19", + "scope": 7927, + "src": "2604:13:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15688,10 +15702,10 @@ "typeString": "address" }, "typeName": { - "id": 5277, + "id": 7838, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2658:7:19", + "src": "2604:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15702,11 +15716,11 @@ }, { "constant": false, - "id": 5280, + "id": 7841, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 5366, - "src": "2673:11:19", + "scope": 7927, + "src": "2619:11:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15714,10 +15728,10 @@ "typeString": "address" }, "typeName": { - "id": 5279, + "id": 7840, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2673:7:19", + "src": "2619:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15728,11 +15742,11 @@ }, { "constant": false, - "id": 5282, + "id": 7843, "name": "_value", "nodeType": "VariableDeclaration", - "scope": 5366, - "src": "2686:14:19", + "scope": 7927, + "src": "2632:14:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15740,10 +15754,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5281, + "id": 7842, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2686:7:19", + "src": "2632:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15753,20 +15767,20 @@ "visibility": "internal" } ], - "src": "2657:44:19" + "src": "2603:44:30" }, "payable": false, "returnParameters": { - "id": 5286, + "id": 7847, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5285, + "id": 7846, "name": "", "nodeType": "VariableDeclaration", - "scope": 5366, - "src": "2718:4:19", + "scope": 7927, + "src": "2664:4:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15774,10 +15788,10 @@ "typeString": "bool" }, "typeName": { - "id": 5284, + "id": 7845, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2718:4:19", + "src": "2664:4:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -15787,24 +15801,24 @@ "visibility": "internal" } ], - "src": "2717:6:19" + "src": "2663:6:30" }, - "scope": 5925, - "src": "2636:518:19", + "scope": 8486, + "src": "2582:518:30", "stateMutability": "nonpayable", - "superFunction": 6999, + "superFunction": 9747, "visibility": "public" }, { "body": { - "id": 5393, + "id": 7954, "nodeType": "Block", - "src": "3863:130:19", + "src": "3809:130:30", "statements": [ { "expression": { "argumentTypes": null, - "id": 5382, + "id": 7943, "isConstant": false, "isLValue": false, "isPure": false, @@ -15815,34 +15829,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5375, + "id": 7936, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5087, - "src": "3873:7:19", + "referencedDeclaration": 7648, + "src": "3819:7:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 5379, + "id": 7940, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5376, + "id": 7937, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "3881:3:19", + "referencedDeclaration": 10042, + "src": "3827:3:30", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 5377, + "id": 7938, "isConstant": false, "isLValue": false, "isPure": false, @@ -15850,7 +15864,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3881:10:19", + "src": "3827:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15861,21 +15875,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3873:19:19", + "src": "3819:19:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 5380, + "id": 7941, "indexExpression": { "argumentTypes": null, - "id": 5378, + "id": 7939, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5368, - "src": "3893:8:19", + "referencedDeclaration": 7929, + "src": "3839:8:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15886,7 +15900,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3873:29:19", + "src": "3819:29:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15896,26 +15910,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 5381, + "id": 7942, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5370, - "src": "3905:6:19", + "referencedDeclaration": 7931, + "src": "3851:6:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3873:38:19", + "src": "3819:38:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5383, + "id": 7944, "nodeType": "ExpressionStatement", - "src": "3873:38:19" + "src": "3819:38:30" }, { "eventCall": { @@ -15925,18 +15939,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5385, + "id": 7946, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "3935:3:19", + "referencedDeclaration": 10042, + "src": "3881:3:30", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 5386, + "id": 7947, "isConstant": false, "isLValue": false, "isPure": false, @@ -15944,7 +15958,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3935:10:19", + "src": "3881:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15952,12 +15966,12 @@ }, { "argumentTypes": null, - "id": 5387, + "id": 7948, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5368, - "src": "3947:8:19", + "referencedDeclaration": 7929, + "src": "3893:8:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15965,12 +15979,12 @@ }, { "argumentTypes": null, - "id": 5388, + "id": 7949, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5370, - "src": "3957:6:19", + "referencedDeclaration": 7931, + "src": "3903:6:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15992,18 +16006,18 @@ "typeString": "uint256" } ], - "id": 5384, + "id": 7945, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7016, - "src": "3926:8:19", + "referencedDeclaration": 9764, + "src": "3872:8:30", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 5389, + "id": 7950, "isConstant": false, "isLValue": false, "isPure": false, @@ -16011,28 +16025,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3926:38:19", + "src": "3872:38:30", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5390, + "id": 7951, "nodeType": "EmitStatement", - "src": "3921:43:19" + "src": "3867:43:30" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 5391, + "id": 7952, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3982:4:19", + "src": "3928:4:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -16040,15 +16054,15 @@ }, "value": "true" }, - "functionReturnParameters": 5374, - "id": 5392, + "functionReturnParameters": 7935, + "id": 7953, "nodeType": "Return", - "src": "3975:11:19" + "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": 5394, + "id": 7955, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -16056,16 +16070,16 @@ "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 5371, + "id": 7932, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5368, + "id": 7929, "name": "_spender", "nodeType": "VariableDeclaration", - "scope": 5394, - "src": "3807:16:19", + "scope": 7955, + "src": "3753:16:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16073,10 +16087,10 @@ "typeString": "address" }, "typeName": { - "id": 5367, + "id": 7928, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3807:7:19", + "src": "3753:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -16087,11 +16101,11 @@ }, { "constant": false, - "id": 5370, + "id": 7931, "name": "_value", "nodeType": "VariableDeclaration", - "scope": 5394, - "src": "3825:14:19", + "scope": 7955, + "src": "3771:14:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16099,10 +16113,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5369, + "id": 7930, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3825:7:19", + "src": "3771:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16112,20 +16126,20 @@ "visibility": "internal" } ], - "src": "3806:34:19" + "src": "3752:34:30" }, "payable": false, "returnParameters": { - "id": 5374, + "id": 7935, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5373, + "id": 7934, "name": "", "nodeType": "VariableDeclaration", - "scope": 5394, - "src": "3857:4:19", + "scope": 7955, + "src": "3803:4:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16133,10 +16147,10 @@ "typeString": "bool" }, "typeName": { - "id": 5372, + "id": 7933, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3857:4:19", + "src": "3803:4:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -16146,19 +16160,19 @@ "visibility": "internal" } ], - "src": "3856:6:19" + "src": "3802:6:30" }, - "scope": 5925, - "src": "3790:203:19", + "scope": 8486, + "src": "3736:203:30", "stateMutability": "nonpayable", - "superFunction": 7008, + "superFunction": 9756, "visibility": "public" }, { "body": { - "id": 5409, + "id": 7970, "nodeType": "Block", - "src": "4404:49:19", + "src": "4350:49:30", "statements": [ { "expression": { @@ -16167,26 +16181,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5403, + "id": 7964, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5087, - "src": "4421:7:19", + "referencedDeclaration": 7648, + "src": "4367:7:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 5405, + "id": 7966, "indexExpression": { "argumentTypes": null, - "id": 5404, + "id": 7965, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5396, - "src": "4429:6:19", + "referencedDeclaration": 7957, + "src": "4375:6:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -16197,21 +16211,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4421:15:19", + "src": "4367:15:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 5407, + "id": 7968, "indexExpression": { "argumentTypes": null, - "id": 5406, + "id": 7967, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5398, - "src": "4437:8:19", + "referencedDeclaration": 7959, + "src": "4383:8:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -16222,21 +16236,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4421:25:19", + "src": "4367:25:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 5402, - "id": 5408, + "functionReturnParameters": 7963, + "id": 7969, "nodeType": "Return", - "src": "4414:32:19" + "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": 5410, + "id": 7971, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -16244,16 +16258,16 @@ "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 5399, + "id": 7960, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5396, + "id": 7957, "name": "_owner", "nodeType": "VariableDeclaration", - "scope": 5410, - "src": "4340:14:19", + "scope": 7971, + "src": "4286:14:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16261,10 +16275,10 @@ "typeString": "address" }, "typeName": { - "id": 5395, + "id": 7956, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4340:7:19", + "src": "4286:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -16275,11 +16289,11 @@ }, { "constant": false, - "id": 5398, + "id": 7959, "name": "_spender", "nodeType": "VariableDeclaration", - "scope": 5410, - "src": "4356:16:19", + "scope": 7971, + "src": "4302:16:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16287,10 +16301,10 @@ "typeString": "address" }, "typeName": { - "id": 5397, + "id": 7958, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4356:7:19", + "src": "4302:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -16300,20 +16314,20 @@ "visibility": "internal" } ], - "src": "4339:34:19" + "src": "4285:34:30" }, "payable": false, "returnParameters": { - "id": 5402, + "id": 7963, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5401, + "id": 7962, "name": "", "nodeType": "VariableDeclaration", - "scope": 5410, - "src": "4395:7:19", + "scope": 7971, + "src": "4341:7:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16321,10 +16335,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5400, + "id": 7961, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4395:7:19", + "src": "4341:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16334,24 +16348,24 @@ "visibility": "internal" } ], - "src": "4394:9:19" + "src": "4340:9:30" }, - "scope": 5925, - "src": "4321:132:19", + "scope": 8486, + "src": "4267:132:30", "stateMutability": "view", - "superFunction": 6988, + "superFunction": 9736, "visibility": "public" }, { "body": { - "id": 5450, + "id": 8011, "nodeType": "Block", - "src": "5007:193:19", + "src": "4953:193:30", "statements": [ { "expression": { "argumentTypes": null, - "id": 5434, + "id": 7995, "isConstant": false, "isLValue": false, "isPure": false, @@ -16362,34 +16376,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5419, + "id": 7980, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5087, - "src": "5017:7:19", + "referencedDeclaration": 7648, + "src": "4963:7:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 5423, + "id": 7984, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5420, + "id": 7981, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "5025:3:19", + "referencedDeclaration": 10042, + "src": "4971:3:30", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 5421, + "id": 7982, "isConstant": false, "isLValue": false, "isPure": false, @@ -16397,7 +16411,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5025:10:19", + "src": "4971:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -16408,21 +16422,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5017:19:19", + "src": "4963:19:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 5424, + "id": 7985, "indexExpression": { "argumentTypes": null, - "id": 5422, + "id": 7983, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5412, - "src": "5037:8:19", + "referencedDeclaration": 7973, + "src": "4983:8:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -16433,7 +16447,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5017:29:19", + "src": "4963:29:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16446,12 +16460,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5432, + "id": 7993, "name": "_addedValue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5414, - "src": "5083:11:19", + "referencedDeclaration": 7975, + "src": "5029:11:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16471,34 +16485,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5425, + "id": 7986, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5087, - "src": "5049:7:19", + "referencedDeclaration": 7648, + "src": "4995:7:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 5428, + "id": 7989, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5426, + "id": 7987, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "5057:3:19", + "referencedDeclaration": 10042, + "src": "5003:3:30", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 5427, + "id": 7988, "isConstant": false, "isLValue": false, "isPure": false, @@ -16506,7 +16520,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5057:10:19", + "src": "5003:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -16517,21 +16531,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5049:19:19", + "src": "4995:19:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 5430, + "id": 7991, "indexExpression": { "argumentTypes": null, - "id": 5429, + "id": 7990, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5412, - "src": "5069:8:19", + "referencedDeclaration": 7973, + "src": "5015:8:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -16542,27 +16556,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5049:29:19", + "src": "4995:29:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5431, + "id": 7992, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 6853, - "src": "5049:33:19", + "referencedDeclaration": 9601, + "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": 5433, + "id": 7994, "isConstant": false, "isLValue": false, "isPure": false, @@ -16570,21 +16584,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5049:46:19", + "src": "4995:46:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5017:78:19", + "src": "4963:78:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5435, + "id": 7996, "nodeType": "ExpressionStatement", - "src": "5017:78:19" + "src": "4963:78:30" }, { "eventCall": { @@ -16594,18 +16608,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5437, + "id": 7998, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "5119:3:19", + "referencedDeclaration": 10042, + "src": "5065:3:30", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 5438, + "id": 7999, "isConstant": false, "isLValue": false, "isPure": false, @@ -16613,7 +16627,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5119:10:19", + "src": "5065:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -16621,12 +16635,12 @@ }, { "argumentTypes": null, - "id": 5439, + "id": 8000, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5412, - "src": "5131:8:19", + "referencedDeclaration": 7973, + "src": "5077:8:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -16638,34 +16652,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5440, + "id": 8001, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5087, - "src": "5141:7:19", + "referencedDeclaration": 7648, + "src": "5087:7:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 5443, + "id": 8004, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5441, + "id": 8002, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "5149:3:19", + "referencedDeclaration": 10042, + "src": "5095:3:30", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 5442, + "id": 8003, "isConstant": false, "isLValue": false, "isPure": false, @@ -16673,7 +16687,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5149:10:19", + "src": "5095:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -16684,21 +16698,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5141:19:19", + "src": "5087:19:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 5445, + "id": 8006, "indexExpression": { "argumentTypes": null, - "id": 5444, + "id": 8005, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5412, - "src": "5161:8:19", + "referencedDeclaration": 7973, + "src": "5107:8:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -16709,7 +16723,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5141:29:19", + "src": "5087:29:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16731,18 +16745,18 @@ "typeString": "uint256" } ], - "id": 5436, + "id": 7997, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7016, - "src": "5110:8:19", + "referencedDeclaration": 9764, + "src": "5056:8:30", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 5446, + "id": 8007, "isConstant": false, "isLValue": false, "isPure": false, @@ -16750,28 +16764,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5110:61:19", + "src": "5056:61:30", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5447, + "id": 8008, "nodeType": "EmitStatement", - "src": "5105:66:19" + "src": "5051:66:30" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 5448, + "id": 8009, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "5189:4:19", + "src": "5135:4:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -16779,15 +16793,15 @@ }, "value": "true" }, - "functionReturnParameters": 5418, - "id": 5449, + "functionReturnParameters": 7979, + "id": 8010, "nodeType": "Return", - "src": "5182:11:19" + "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": 5451, + "id": 8012, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -16795,16 +16809,16 @@ "name": "increaseApproval", "nodeType": "FunctionDefinition", "parameters": { - "id": 5415, + "id": 7976, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5412, + "id": 7973, "name": "_spender", "nodeType": "VariableDeclaration", - "scope": 5451, - "src": "4949:16:19", + "scope": 8012, + "src": "4895:16:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16812,10 +16826,10 @@ "typeString": "address" }, "typeName": { - "id": 5411, + "id": 7972, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4949:7:19", + "src": "4895:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -16826,11 +16840,11 @@ }, { "constant": false, - "id": 5414, + "id": 7975, "name": "_addedValue", "nodeType": "VariableDeclaration", - "scope": 5451, - "src": "4967:16:19", + "scope": 8012, + "src": "4913:16:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16838,10 +16852,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5413, + "id": 7974, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4967:4:19", + "src": "4913:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16851,20 +16865,20 @@ "visibility": "internal" } ], - "src": "4948:36:19" + "src": "4894:36:30" }, "payable": false, "returnParameters": { - "id": 5418, + "id": 7979, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5417, + "id": 7978, "name": "", "nodeType": "VariableDeclaration", - "scope": 5451, - "src": "5001:4:19", + "scope": 8012, + "src": "4947:4:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16872,10 +16886,10 @@ "typeString": "bool" }, "typeName": { - "id": 5416, + "id": 7977, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5001:4:19", + "src": "4947:4:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -16885,32 +16899,32 @@ "visibility": "internal" } ], - "src": "5000:6:19" + "src": "4946:6:30" }, - "scope": 5925, - "src": "4923:277:19", + "scope": 8486, + "src": "4869:277:30", "stateMutability": "nonpayable", - "superFunction": null, + "superFunction": 7580, "visibility": "public" }, { "body": { - "id": 5510, + "id": 8071, "nodeType": "Block", - "src": "5764:354:19", + "src": "5710:354:30", "statements": [ { "assignments": [ - 5461 + 8022 ], "declarations": [ { "constant": false, - "id": 5461, + "id": 8022, "name": "oldValue", "nodeType": "VariableDeclaration", - "scope": 5511, - "src": "5774:13:19", + "scope": 8072, + "src": "5720:13:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16918,10 +16932,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5460, + "id": 8021, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5774:4:19", + "src": "5720:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16931,41 +16945,41 @@ "visibility": "internal" } ], - "id": 5468, + "id": 8029, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5462, + "id": 8023, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5087, - "src": "5790:7:19", + "referencedDeclaration": 7648, + "src": "5736:7:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 5465, + "id": 8026, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5463, + "id": 8024, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "5798:3:19", + "referencedDeclaration": 10042, + "src": "5744:3:30", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 5464, + "id": 8025, "isConstant": false, "isLValue": false, "isPure": false, @@ -16973,7 +16987,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5798:10:19", + "src": "5744:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -16984,21 +16998,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5790:19:19", + "src": "5736:19:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 5467, + "id": 8028, "indexExpression": { "argumentTypes": null, - "id": 5466, + "id": 8027, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5453, - "src": "5810:8:19", + "referencedDeclaration": 8014, + "src": "5756:8:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -17009,14 +17023,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5790:29:19", + "src": "5736:29:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "5774:45:19" + "src": "5720:45:30" }, { "condition": { @@ -17025,19 +17039,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5471, + "id": 8032, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5469, + "id": 8030, "name": "_subtractedValue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5455, - "src": "5833:16:19", + "referencedDeclaration": 8016, + "src": "5779:16:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17047,32 +17061,32 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 5470, + "id": 8031, "name": "oldValue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5461, - "src": "5853:8:19", + "referencedDeclaration": 8022, + "src": "5799:8:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5833:28:19", + "src": "5779:28:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 5494, + "id": 8055, "nodeType": "Block", - "src": "5927:87:19", + "src": "5873:87:30", "statements": [ { "expression": { "argumentTypes": null, - "id": 5492, + "id": 8053, "isConstant": false, "isLValue": false, "isPure": false, @@ -17083,34 +17097,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5482, + "id": 8043, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5087, - "src": "5941:7:19", + "referencedDeclaration": 7648, + "src": "5887:7:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 5486, + "id": 8047, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5483, + "id": 8044, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "5949:3:19", + "referencedDeclaration": 10042, + "src": "5895:3:30", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 5484, + "id": 8045, "isConstant": false, "isLValue": false, "isPure": false, @@ -17118,7 +17132,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5949:10:19", + "src": "5895:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -17129,21 +17143,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5941:19:19", + "src": "5887:19:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 5487, + "id": 8048, "indexExpression": { "argumentTypes": null, - "id": 5485, + "id": 8046, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5453, - "src": "5961:8:19", + "referencedDeclaration": 8014, + "src": "5907:8:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -17154,7 +17168,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5941:29:19", + "src": "5887:29:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17167,12 +17181,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5490, + "id": 8051, "name": "_subtractedValue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5455, - "src": "5986:16:19", + "referencedDeclaration": 8016, + "src": "5932:16:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17188,32 +17202,32 @@ ], "expression": { "argumentTypes": null, - "id": 5488, + "id": 8049, "name": "oldValue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5461, - "src": "5973:8:19", + "referencedDeclaration": 8022, + "src": "5919:8:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5489, + "id": 8050, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 6829, - "src": "5973:12:19", + "referencedDeclaration": 9577, + "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": 5491, + "id": 8052, "isConstant": false, "isLValue": false, "isPure": false, @@ -17221,36 +17235,36 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5973:30:19", + "src": "5919:30:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5941:62:19", + "src": "5887:62:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5493, + "id": 8054, "nodeType": "ExpressionStatement", - "src": "5941:62:19" + "src": "5887:62:30" } ] }, - "id": 5495, + "id": 8056, "nodeType": "IfStatement", - "src": "5829:185:19", + "src": "5775:185:30", "trueBody": { - "id": 5481, + "id": 8042, "nodeType": "Block", - "src": "5863:58:19", + "src": "5809:58:30", "statements": [ { "expression": { "argumentTypes": null, - "id": 5479, + "id": 8040, "isConstant": false, "isLValue": false, "isPure": false, @@ -17261,34 +17275,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5472, + "id": 8033, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5087, - "src": "5877:7:19", + "referencedDeclaration": 7648, + "src": "5823:7:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 5476, + "id": 8037, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5473, + "id": 8034, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "5885:3:19", + "referencedDeclaration": 10042, + "src": "5831:3:30", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 5474, + "id": 8035, "isConstant": false, "isLValue": false, "isPure": false, @@ -17296,7 +17310,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5885:10:19", + "src": "5831:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -17307,21 +17321,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5877:19:19", + "src": "5823:19:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 5477, + "id": 8038, "indexExpression": { "argumentTypes": null, - "id": 5475, + "id": 8036, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5453, - "src": "5897:8:19", + "referencedDeclaration": 8014, + "src": "5843:8:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -17332,7 +17346,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5877:29:19", + "src": "5823:29:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17343,14 +17357,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 5478, + "id": 8039, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5909:1:19", + "src": "5855:1:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -17358,15 +17372,15 @@ }, "value": "0" }, - "src": "5877:33:19", + "src": "5823:33:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5480, + "id": 8041, "nodeType": "ExpressionStatement", - "src": "5877:33:19" + "src": "5823:33:30" } ] } @@ -17379,18 +17393,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5497, + "id": 8058, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "6037:3:19", + "referencedDeclaration": 10042, + "src": "5983:3:30", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 5498, + "id": 8059, "isConstant": false, "isLValue": false, "isPure": false, @@ -17398,7 +17412,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6037:10:19", + "src": "5983:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -17406,12 +17420,12 @@ }, { "argumentTypes": null, - "id": 5499, + "id": 8060, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5453, - "src": "6049:8:19", + "referencedDeclaration": 8014, + "src": "5995:8:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -17423,34 +17437,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5500, + "id": 8061, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5087, - "src": "6059:7:19", + "referencedDeclaration": 7648, + "src": "6005:7:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 5503, + "id": 8064, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5501, + "id": 8062, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "6067:3:19", + "referencedDeclaration": 10042, + "src": "6013:3:30", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 5502, + "id": 8063, "isConstant": false, "isLValue": false, "isPure": false, @@ -17458,7 +17472,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6067:10:19", + "src": "6013:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -17469,21 +17483,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6059:19:19", + "src": "6005:19:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 5505, + "id": 8066, "indexExpression": { "argumentTypes": null, - "id": 5504, + "id": 8065, "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5453, - "src": "6079:8:19", + "referencedDeclaration": 8014, + "src": "6025:8:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -17494,7 +17508,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6059:29:19", + "src": "6005:29:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17516,18 +17530,18 @@ "typeString": "uint256" } ], - "id": 5496, + "id": 8057, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7016, - "src": "6028:8:19", + "referencedDeclaration": 9764, + "src": "5974:8:30", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 5506, + "id": 8067, "isConstant": false, "isLValue": false, "isPure": false, @@ -17535,28 +17549,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6028:61:19", + "src": "5974:61:30", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5507, + "id": 8068, "nodeType": "EmitStatement", - "src": "6023:66:19" + "src": "5969:66:30" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 5508, + "id": 8069, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "6107:4:19", + "src": "6053:4:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -17564,15 +17578,15 @@ }, "value": "true" }, - "functionReturnParameters": 5459, - "id": 5509, + "functionReturnParameters": 8020, + "id": 8070, "nodeType": "Return", - "src": "6100:11:19" + "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": 5511, + "id": 8072, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -17580,16 +17594,16 @@ "name": "decreaseApproval", "nodeType": "FunctionDefinition", "parameters": { - "id": 5456, + "id": 8017, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5453, + "id": 8014, "name": "_spender", "nodeType": "VariableDeclaration", - "scope": 5511, - "src": "5701:16:19", + "scope": 8072, + "src": "5647:16:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17597,10 +17611,10 @@ "typeString": "address" }, "typeName": { - "id": 5452, + "id": 8013, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5701:7:19", + "src": "5647:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -17611,11 +17625,11 @@ }, { "constant": false, - "id": 5455, + "id": 8016, "name": "_subtractedValue", "nodeType": "VariableDeclaration", - "scope": 5511, - "src": "5719:21:19", + "scope": 8072, + "src": "5665:21:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17623,10 +17637,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5454, + "id": 8015, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "5719:4:19", + "src": "5665:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17636,20 +17650,20 @@ "visibility": "internal" } ], - "src": "5700:41:19" + "src": "5646:41:30" }, "payable": false, "returnParameters": { - "id": 5459, + "id": 8020, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5458, + "id": 8019, "name": "", "nodeType": "VariableDeclaration", - "scope": 5511, - "src": "5758:4:19", + "scope": 8072, + "src": "5704:4:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17657,10 +17671,10 @@ "typeString": "bool" }, "typeName": { - "id": 5457, + "id": 8018, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5758:4:19", + "src": "5704:4:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -17670,19 +17684,19 @@ "visibility": "internal" } ], - "src": "5757:6:19" + "src": "5703:6:30" }, - "scope": 5925, - "src": "5675:443:19", + "scope": 8486, + "src": "5621:443:30", "stateMutability": "nonpayable", - "superFunction": null, + "superFunction": 7589, "visibility": "public" }, { "body": { - "id": 5586, + "id": 8147, "nodeType": "Block", - "src": "6234:422:19", + "src": "6180:422:30", "statements": [ { "expression": { @@ -17694,7 +17708,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5532, + "id": 8093, "isConstant": false, "isLValue": false, "isPure": false, @@ -17704,12 +17718,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5529, + "id": 8090, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5515, - "src": "6269:7:19", + "referencedDeclaration": 8076, + "src": "6215:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17725,32 +17739,32 @@ ], "expression": { "argumentTypes": null, - "id": 5527, + "id": 8088, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5093, - "src": "6252:12:19", + "referencedDeclaration": 7654, + "src": "6198:12:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5528, + "id": 8089, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 6853, - "src": "6252:16:19", + "referencedDeclaration": 9601, + "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": 5530, + "id": 8091, "isConstant": false, "isLValue": false, "isPure": false, @@ -17758,7 +17772,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6252:25:19", + "src": "6198:25:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17768,18 +17782,18 @@ "operator": ">", "rightExpression": { "argumentTypes": null, - "id": 5531, + "id": 8092, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5093, - "src": "6280:12:19", + "referencedDeclaration": 7654, + "src": "6226:12:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6252:40:19", + "src": "6198:40:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -17793,21 +17807,21 @@ "typeString": "bool" } ], - "id": 5526, + "id": 8087, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "6244:7:19", + "referencedDeclaration": 10045, + "src": "6190:7:30", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5533, + "id": 8094, "isConstant": false, "isLValue": false, "isPure": false, @@ -17815,15 +17829,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6244:49:19", + "src": "6190:49:30", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5534, + "id": 8095, "nodeType": "ExpressionStatement", - "src": "6244:49:19" + "src": "6190:49:30" }, { "condition": { @@ -17832,19 +17846,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5537, + "id": 8098, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5535, + "id": 8096, "name": "_vestingTime", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5517, - "src": "6308:12:19", + "referencedDeclaration": 8078, + "src": "6254:12:30", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -17854,31 +17868,31 @@ "operator": ">", "rightExpression": { "argumentTypes": null, - "id": 5536, + "id": 8097, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7296, - "src": "6323:3:19", + "referencedDeclaration": 10044, + "src": "6269:3:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6308:18:19", + "src": "6254:18:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 5548, + "id": 8109, "nodeType": "IfStatement", - "src": "6304:102:19", + "src": "6250:102:30", "trueBody": { - "id": 5547, + "id": 8108, "nodeType": "Block", - "src": "6328:78:19", + "src": "6274:78:30", "statements": [ { "expression": { @@ -17890,14 +17904,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 5540, + "id": 8101, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6364:1:19", + "src": "6310:1:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -17913,20 +17927,20 @@ "typeString": "int_const 0" } ], - "id": 5539, + "id": 8100, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6356:7:19", + "src": "6302:7:30", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 5541, + "id": 8102, "isConstant": false, "isLValue": false, "isPure": true, @@ -17934,7 +17948,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6356:10:19", + "src": "6302:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -17942,12 +17956,12 @@ }, { "argumentTypes": null, - "id": 5542, + "id": 8103, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5513, - "src": "6368:3:19", + "referencedDeclaration": 8074, + "src": "6314:3:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -17955,12 +17969,12 @@ }, { "argumentTypes": null, - "id": 5543, + "id": 8104, "name": "_vestingTime", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5517, - "src": "6373:12:19", + "referencedDeclaration": 8078, + "src": "6319:12:30", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -17968,12 +17982,12 @@ }, { "argumentTypes": null, - "id": 5544, + "id": 8105, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5515, - "src": "6387:7:19", + "referencedDeclaration": 8076, + "src": "6333:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17999,18 +18013,18 @@ "typeString": "uint256" } ], - "id": 5538, + "id": 8099, "name": "_addToVesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5644, - "src": "6342:13:19", + "referencedDeclaration": 8205, + "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": 5545, + "id": 8106, "isConstant": false, "isLValue": false, "isPure": false, @@ -18018,15 +18032,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6342:53:19", + "src": "6288:53:30", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5546, + "id": 8107, "nodeType": "ExpressionStatement", - "src": "6342:53:19" + "src": "6288:53:30" } ] } @@ -18034,7 +18048,7 @@ { "expression": { "argumentTypes": null, - "id": 5558, + "id": 8119, "isConstant": false, "isLValue": false, "isPure": false, @@ -18043,26 +18057,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5549, + "id": 8110, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5091, - "src": "6416:8:19", + "referencedDeclaration": 7652, + "src": "6362:8:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 5551, + "id": 8112, "indexExpression": { "argumentTypes": null, - "id": 5550, + "id": 8111, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5513, - "src": "6425:3:19", + "referencedDeclaration": 8074, + "src": "6371:3:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -18073,7 +18087,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6416:13:19", + "src": "6362:13:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18086,12 +18100,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5556, + "id": 8117, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5515, - "src": "6450:7:19", + "referencedDeclaration": 8076, + "src": "6396:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18109,26 +18123,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5552, + "id": 8113, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5091, - "src": "6432:8:19", + "referencedDeclaration": 7652, + "src": "6378:8:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 5554, + "id": 8115, "indexExpression": { "argumentTypes": null, - "id": 5553, + "id": 8114, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5513, - "src": "6441:3:19", + "referencedDeclaration": 8074, + "src": "6387:3:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -18139,27 +18153,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6432:13:19", + "src": "6378:13:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5555, + "id": 8116, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 6853, - "src": "6432:17:19", + "referencedDeclaration": 9601, + "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": 5557, + "id": 8118, "isConstant": false, "isLValue": false, "isPure": false, @@ -18167,38 +18181,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6432:26:19", + "src": "6378:26:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6416:42:19", + "src": "6362:42:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5559, + "id": 8120, "nodeType": "ExpressionStatement", - "src": "6416:42:19" + "src": "6362:42:30" }, { "expression": { "argumentTypes": null, - "id": 5565, + "id": 8126, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 5560, + "id": 8121, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5093, - "src": "6468:12:19", + "referencedDeclaration": 7654, + "src": "6414:12:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18211,12 +18225,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5563, + "id": 8124, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5515, - "src": "6500:7:19", + "referencedDeclaration": 8076, + "src": "6446:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18232,32 +18246,32 @@ ], "expression": { "argumentTypes": null, - "id": 5561, + "id": 8122, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5093, - "src": "6483:12:19", + "referencedDeclaration": 7654, + "src": "6429:12:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5562, + "id": 8123, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 6853, - "src": "6483:16:19", + "referencedDeclaration": 9601, + "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": 5564, + "id": 8125, "isConstant": false, "isLValue": false, "isPure": false, @@ -18265,21 +18279,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6483:25:19", + "src": "6429:25:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6468:40:19", + "src": "6414:40:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5566, + "id": 8127, "nodeType": "ExpressionStatement", - "src": "6468:40:19" + "src": "6414:40:30" }, { "eventCall": { @@ -18291,14 +18305,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 5569, + "id": 8130, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6540:1:19", + "src": "6486:1:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -18314,20 +18328,20 @@ "typeString": "int_const 0" } ], - "id": 5568, + "id": 8129, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6532:7:19", + "src": "6478:7:30", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 5570, + "id": 8131, "isConstant": false, "isLValue": false, "isPure": true, @@ -18335,7 +18349,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6532:10:19", + "src": "6478:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -18343,12 +18357,12 @@ }, { "argumentTypes": null, - "id": 5571, + "id": 8132, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5513, - "src": "6544:3:19", + "referencedDeclaration": 8074, + "src": "6490:3:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -18356,12 +18370,12 @@ }, { "argumentTypes": null, - "id": 5572, + "id": 8133, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5515, - "src": "6549:7:19", + "referencedDeclaration": 8076, + "src": "6495:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18383,18 +18397,18 @@ "typeString": "uint256" } ], - "id": 5567, + "id": 8128, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7048, - "src": "6523:8:19", + "referencedDeclaration": 9796, + "src": "6469:8:30", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 5573, + "id": 8134, "isConstant": false, "isLValue": false, "isPure": false, @@ -18402,15 +18416,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6523:34:19", + "src": "6469:34:30", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5574, + "id": 8135, "nodeType": "EmitStatement", - "src": "6518:39:19" + "src": "6464:39:30" }, { "eventCall": { @@ -18422,14 +18436,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 5577, + "id": 8138, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6596:1:19", + "src": "6542:1:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -18445,20 +18459,20 @@ "typeString": "int_const 0" } ], - "id": 5576, + "id": 8137, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6588:7:19", + "src": "6534:7:30", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 5578, + "id": 8139, "isConstant": false, "isLValue": false, "isPure": true, @@ -18466,7 +18480,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6588:10:19", + "src": "6534:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -18474,12 +18488,12 @@ }, { "argumentTypes": null, - "id": 5579, + "id": 8140, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5513, - "src": "6600:3:19", + "referencedDeclaration": 8074, + "src": "6546:3:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -18487,12 +18501,12 @@ }, { "argumentTypes": null, - "id": 5580, + "id": 8141, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5515, - "src": "6605:7:19", + "referencedDeclaration": 8076, + "src": "6551:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18500,12 +18514,12 @@ }, { "argumentTypes": null, - "id": 5581, + "id": 8142, "name": "_vestingTime", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5517, - "src": "6614:12:19", + "referencedDeclaration": 8078, + "src": "6560:12:30", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -18531,18 +18545,18 @@ "typeString": "uint32" } ], - "id": 5575, + "id": 8136, "name": "VestingTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5118, - "src": "6572:15:19", + "referencedDeclaration": 7679, + "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": 5582, + "id": 8143, "isConstant": false, "isLValue": false, "isPure": false, @@ -18550,28 +18564,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6572:55:19", + "src": "6518:55:30", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5583, + "id": 8144, "nodeType": "EmitStatement", - "src": "6567:60:19" + "src": "6513:60:30" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 5584, + "id": 8145, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "6645:4:19", + "src": "6591:4:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -18579,15 +18593,15 @@ }, "value": "true" }, - "functionReturnParameters": 5525, - "id": 5585, + "functionReturnParameters": 8086, + "id": 8146, "nodeType": "Return", - "src": "6638:11:19" + "src": "6584:11:30" } ] }, "documentation": null, - "id": 5587, + "id": 8148, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -18598,18 +18612,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5520, + "id": 8081, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "6207:3:19", + "referencedDeclaration": 10042, + "src": "6153:3:30", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 5521, + "id": 8082, "isConstant": false, "isLValue": false, "isPure": false, @@ -18617,44 +18631,44 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6207:10:19", + "src": "6153:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], - "id": 5522, + "id": 8083, "modifierName": { "argumentTypes": null, - "id": 5519, + "id": 8080, "name": "onlyTrusted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5924, - "src": "6195:11:19", + "referencedDeclaration": 8485, + "src": "6141:11:30", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_address_$", "typeString": "modifier (address)" } }, "nodeType": "ModifierInvocation", - "src": "6195:23:19" + "src": "6141:23:30" } ], "name": "mint", "nodeType": "FunctionDefinition", "parameters": { - "id": 5518, + "id": 8079, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5513, + "id": 8074, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 5587, - "src": "6138:11:19", + "scope": 8148, + "src": "6084:11:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -18662,10 +18676,10 @@ "typeString": "address" }, "typeName": { - "id": 5512, + "id": 8073, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6138:7:19", + "src": "6084:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -18676,11 +18690,11 @@ }, { "constant": false, - "id": 5515, + "id": 8076, "name": "_amount", "nodeType": "VariableDeclaration", - "scope": 5587, - "src": "6151:12:19", + "scope": 8148, + "src": "6097:12:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -18688,10 +18702,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5514, + "id": 8075, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "6151:4:19", + "src": "6097:4:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18702,11 +18716,11 @@ }, { "constant": false, - "id": 5517, + "id": 8078, "name": "_vestingTime", "nodeType": "VariableDeclaration", - "scope": 5587, - "src": "6165:19:19", + "scope": 8148, + "src": "6111:19:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -18714,10 +18728,10 @@ "typeString": "uint32" }, "typeName": { - "id": 5516, + "id": 8077, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "6165:6:19", + "src": "6111:6:30", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -18727,20 +18741,20 @@ "visibility": "internal" } ], - "src": "6137:48:19" + "src": "6083:48:30" }, "payable": false, "returnParameters": { - "id": 5525, + "id": 8086, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5524, + "id": 8085, "name": "", "nodeType": "VariableDeclaration", - "scope": 5587, - "src": "6228:4:19", + "scope": 8148, + "src": "6174:4:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -18748,10 +18762,10 @@ "typeString": "bool" }, "typeName": { - "id": 5523, + "id": 8084, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "6228:4:19", + "src": "6174:4:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -18761,24 +18775,24 @@ "visibility": "internal" } ], - "src": "6227:6:19" + "src": "6173:6:30" }, - "scope": 5925, - "src": "6124:532:19", + "scope": 8486, + "src": "6070:532:30", "stateMutability": "nonpayable", - "superFunction": null, + "superFunction": 7600, "visibility": "external" }, { "body": { - "id": 5643, + "id": 8204, "nodeType": "Block", - "src": "6761:282:19", + "src": "6707:282:30", "statements": [ { "expression": { "argumentTypes": null, - "id": 5611, + "id": 8172, "isConstant": false, "isLValue": false, "isPure": false, @@ -18789,26 +18803,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5598, + "id": 8159, "name": "vestingBalanceOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5099, - "src": "6771:16:19", + "referencedDeclaration": 7660, + "src": "6717:16:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", "typeString": "mapping(address => mapping(uint256 => uint256))" } }, - "id": 5601, + "id": 8162, "indexExpression": { "argumentTypes": null, - "id": 5599, + "id": 8160, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5591, - "src": "6788:3:19", + "referencedDeclaration": 8152, + "src": "6734:3:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -18819,24 +18833,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6771:21:19", + "src": "6717:21:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", "typeString": "mapping(uint256 => uint256)" } }, - "id": 5602, + "id": 8163, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5600, + "id": 8161, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6793:1:19", + "src": "6739:1:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -18849,7 +18863,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6771:24:19", + "src": "6717:24:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18862,12 +18876,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5609, + "id": 8170, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5595, - "src": "6827:7:19", + "referencedDeclaration": 8156, + "src": "6773:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18887,26 +18901,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5603, + "id": 8164, "name": "vestingBalanceOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5099, - "src": "6798:16:19", + "referencedDeclaration": 7660, + "src": "6744:16:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", "typeString": "mapping(address => mapping(uint256 => uint256))" } }, - "id": 5605, + "id": 8166, "indexExpression": { "argumentTypes": null, - "id": 5604, + "id": 8165, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5591, - "src": "6815:3:19", + "referencedDeclaration": 8152, + "src": "6761:3:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -18917,24 +18931,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6798:21:19", + "src": "6744:21:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", "typeString": "mapping(uint256 => uint256)" } }, - "id": 5607, + "id": 8168, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5606, + "id": 8167, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6820:1:19", + "src": "6766:1:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -18947,27 +18961,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6798:24:19", + "src": "6744:24:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5608, + "id": 8169, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 6853, - "src": "6798:28:19", + "referencedDeclaration": 9601, + "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": 5610, + "id": 8171, "isConstant": false, "isLValue": false, "isPure": false, @@ -18975,21 +18989,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6798:37:19", + "src": "6744:37:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6771:64:19", + "src": "6717:64:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5612, + "id": 8173, "nodeType": "ExpressionStatement", - "src": "6771:64:19" + "src": "6717:64:30" }, { "condition": { @@ -18998,7 +19012,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5619, + "id": 8180, "isConstant": false, "isLValue": false, "isPure": false, @@ -19009,26 +19023,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5613, + "id": 8174, "name": "vestingBalanceOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5099, - "src": "6849:16:19", + "referencedDeclaration": 7660, + "src": "6795:16:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", "typeString": "mapping(address => mapping(uint256 => uint256))" } }, - "id": 5615, + "id": 8176, "indexExpression": { "argumentTypes": null, - "id": 5614, + "id": 8175, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5591, - "src": "6866:3:19", + "referencedDeclaration": 8152, + "src": "6812:3:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19039,21 +19053,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6849:21:19", + "src": "6795:21:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", "typeString": "mapping(uint256 => uint256)" } }, - "id": 5617, + "id": 8178, "indexExpression": { "argumentTypes": null, - "id": 5616, + "id": 8177, "name": "_vestingTime", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5593, - "src": "6871:12:19", + "referencedDeclaration": 8154, + "src": "6817:12:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19064,7 +19078,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6849:35:19", + "src": "6795:35:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19075,14 +19089,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5618, + "id": 8179, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6888:1:19", + "src": "6834:1:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -19090,28 +19104,28 @@ }, "value": "0" }, - "src": "6849:40:19", + "src": "6795:40:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 5627, + "id": 8188, "nodeType": "IfStatement", - "src": "6846:93:19", + "src": "6792:93:30", "trueBody": { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 5624, + "id": 8185, "name": "_vestingTime", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5593, - "src": "6926:12:19", + "referencedDeclaration": 8154, + "src": "6872:12:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19129,26 +19143,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5620, + "id": 8181, "name": "vestingTimes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5104, - "src": "6903:12:19", + "referencedDeclaration": 7665, + "src": "6849:12:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(address => uint256[] storage ref)" } }, - "id": 5622, + "id": 8183, "indexExpression": { "argumentTypes": null, - "id": 5621, + "id": 8182, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5591, - "src": "6916:3:19", + "referencedDeclaration": 8152, + "src": "6862:3:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19159,13 +19173,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6903:17:19", + "src": "6849:17:30", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 5623, + "id": 8184, "isConstant": false, "isLValue": false, "isPure": false, @@ -19173,13 +19187,13 @@ "memberName": "push", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6903:22:19", + "src": "6849:22:30", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256) returns (uint256)" } }, - "id": 5625, + "id": 8186, "isConstant": false, "isLValue": false, "isPure": false, @@ -19187,21 +19201,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6903:36:19", + "src": "6849:36:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5626, + "id": 8187, "nodeType": "ExpressionStatement", - "src": "6903:36:19" + "src": "6849:36:30" } }, { "expression": { "argumentTypes": null, - "id": 5641, + "id": 8202, "isConstant": false, "isLValue": false, "isPure": false, @@ -19212,26 +19226,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5628, + "id": 8189, "name": "vestingBalanceOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5099, - "src": "6950:16:19", + "referencedDeclaration": 7660, + "src": "6896:16:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", "typeString": "mapping(address => mapping(uint256 => uint256))" } }, - "id": 5631, + "id": 8192, "indexExpression": { "argumentTypes": null, - "id": 5629, + "id": 8190, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5591, - "src": "6967:3:19", + "referencedDeclaration": 8152, + "src": "6913:3:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19242,21 +19256,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6950:21:19", + "src": "6896:21:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", "typeString": "mapping(uint256 => uint256)" } }, - "id": 5632, + "id": 8193, "indexExpression": { "argumentTypes": null, - "id": 5630, + "id": 8191, "name": "_vestingTime", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5593, - "src": "6972:12:19", + "referencedDeclaration": 8154, + "src": "6918:12:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19267,7 +19281,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6950:35:19", + "src": "6896:35:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19280,12 +19294,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5639, + "id": 8200, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5595, - "src": "7028:7:19", + "referencedDeclaration": 8156, + "src": "6974:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19305,26 +19319,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5633, + "id": 8194, "name": "vestingBalanceOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5099, - "src": "6988:16:19", + "referencedDeclaration": 7660, + "src": "6934:16:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", "typeString": "mapping(address => mapping(uint256 => uint256))" } }, - "id": 5635, + "id": 8196, "indexExpression": { "argumentTypes": null, - "id": 5634, + "id": 8195, "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5591, - "src": "7005:3:19", + "referencedDeclaration": 8152, + "src": "6951:3:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19335,21 +19349,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6988:21:19", + "src": "6934:21:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", "typeString": "mapping(uint256 => uint256)" } }, - "id": 5637, + "id": 8198, "indexExpression": { "argumentTypes": null, - "id": 5636, + "id": 8197, "name": "_vestingTime", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5593, - "src": "7010:12:19", + "referencedDeclaration": 8154, + "src": "6956:12:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19360,27 +19374,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6988:35:19", + "src": "6934:35:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5638, + "id": 8199, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 6853, - "src": "6988:39:19", + "referencedDeclaration": 9601, + "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": 5640, + "id": 8201, "isConstant": false, "isLValue": false, "isPure": false, @@ -19388,26 +19402,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6988:48:19", + "src": "6934:48:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6950:86:19", + "src": "6896:86:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5642, + "id": 8203, "nodeType": "ExpressionStatement", - "src": "6950:86:19" + "src": "6896:86:30" } ] }, "documentation": null, - "id": 5644, + "id": 8205, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -19415,16 +19429,16 @@ "name": "_addToVesting", "nodeType": "FunctionDefinition", "parameters": { - "id": 5596, + "id": 8157, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5589, + "id": 8150, "name": "_from", "nodeType": "VariableDeclaration", - "scope": 5644, - "src": "6685:13:19", + "scope": 8205, + "src": "6631:13:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19432,10 +19446,10 @@ "typeString": "address" }, "typeName": { - "id": 5588, + "id": 8149, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6685:7:19", + "src": "6631:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19446,11 +19460,11 @@ }, { "constant": false, - "id": 5591, + "id": 8152, "name": "_to", "nodeType": "VariableDeclaration", - "scope": 5644, - "src": "6700:11:19", + "scope": 8205, + "src": "6646:11:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19458,10 +19472,10 @@ "typeString": "address" }, "typeName": { - "id": 5590, + "id": 8151, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6700:7:19", + "src": "6646:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19472,11 +19486,11 @@ }, { "constant": false, - "id": 5593, + "id": 8154, "name": "_vestingTime", "nodeType": "VariableDeclaration", - "scope": 5644, - "src": "6713:20:19", + "scope": 8205, + "src": "6659:20:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19484,10 +19498,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5592, + "id": 8153, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6713:7:19", + "src": "6659:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19498,11 +19512,11 @@ }, { "constant": false, - "id": 5595, + "id": 8156, "name": "_amount", "nodeType": "VariableDeclaration", - "scope": 5644, - "src": "6735:15:19", + "scope": 8205, + "src": "6681:15:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19510,10 +19524,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5594, + "id": 8155, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6735:7:19", + "src": "6681:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19523,26 +19537,26 @@ "visibility": "internal" } ], - "src": "6684:67:19" + "src": "6630:67:30" }, "payable": false, "returnParameters": { - "id": 5597, + "id": 8158, "nodeType": "ParameterList", "parameters": [], - "src": "6761:0:19" + "src": "6707:0:30" }, - "scope": 5925, - "src": "6662:381:19", + "scope": 8486, + "src": "6608:381:30", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 5655, + "id": 8216, "nodeType": "Block", - "src": "7207:42:19", + "src": "7153:42:30", "statements": [ { "expression": { @@ -19552,18 +19566,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5650, + "id": 8211, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "7223:3:19", + "referencedDeclaration": 10042, + "src": "7169:3:30", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 5651, + "id": 8212, "isConstant": false, "isLValue": false, "isPure": false, @@ -19571,7 +19585,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7223:10:19", + "src": "7169:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19579,12 +19593,12 @@ }, { "argumentTypes": null, - "id": 5652, + "id": 8213, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5646, - "src": "7235:6:19", + "referencedDeclaration": 8207, + "src": "7181:6:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19602,18 +19616,18 @@ "typeString": "uint256" } ], - "id": 5649, + "id": 8210, "name": "_burn", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5748, - "src": "7217:5:19", + "referencedDeclaration": 8309, + "src": "7163:5:30", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 5653, + "id": 8214, "isConstant": false, "isLValue": false, "isPure": false, @@ -19621,20 +19635,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7217:25:19", + "src": "7163:25:30", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5654, + "id": 8215, "nodeType": "ExpressionStatement", - "src": "7217:25:19" + "src": "7163:25:30" } ] }, "documentation": "@dev Burns a specific amount of tokens.\n@param _value The amount of token to be burned.", - "id": 5656, + "id": 8217, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -19642,16 +19656,16 @@ "name": "burn", "nodeType": "FunctionDefinition", "parameters": { - "id": 5647, + "id": 8208, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5646, + "id": 8207, "name": "_value", "nodeType": "VariableDeclaration", - "scope": 5656, - "src": "7184:14:19", + "scope": 8217, + "src": "7130:14:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19659,10 +19673,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5645, + "id": 8206, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "7184:7:19", + "src": "7130:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19672,26 +19686,26 @@ "visibility": "internal" } ], - "src": "7183:16:19" + "src": "7129:16:30" }, "payable": false, "returnParameters": { - "id": 5648, + "id": 8209, "nodeType": "ParameterList", "parameters": [], - "src": "7207:0:19" + "src": "7153:0:30" }, - "scope": 5925, - "src": "7170:79:19", + "scope": 8486, + "src": "7116:79:30", "stateMutability": "nonpayable", - "superFunction": null, + "superFunction": 7605, "visibility": "public" }, { "body": { - "id": 5696, + "id": 8257, "nodeType": "Block", - "src": "7559:336:19", + "src": "7505:336:30", "statements": [ { "expression": { @@ -19703,19 +19717,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5671, + "id": 8232, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5664, + "id": 8225, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5660, - "src": "7577:6:19", + "referencedDeclaration": 8221, + "src": "7523:6:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19729,26 +19743,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5665, + "id": 8226, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5087, - "src": "7587:7:19", + "referencedDeclaration": 7648, + "src": "7533:7:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 5667, + "id": 8228, "indexExpression": { "argumentTypes": null, - "id": 5666, + "id": 8227, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5658, - "src": "7595:5:19", + "referencedDeclaration": 8219, + "src": "7541:5:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19759,29 +19773,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7587:14:19", + "src": "7533:14:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 5670, + "id": 8231, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5668, + "id": 8229, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "7602:3:19", + "referencedDeclaration": 10042, + "src": "7548:3:30", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 5669, + "id": 8230, "isConstant": false, "isLValue": false, "isPure": false, @@ -19789,7 +19803,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7602:10:19", + "src": "7548:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19800,13 +19814,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7587:26:19", + "src": "7533:26:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7577:36:19", + "src": "7523:36:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -19820,21 +19834,21 @@ "typeString": "bool" } ], - "id": 5663, + "id": 8224, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "7569:7:19", + "referencedDeclaration": 10045, + "src": "7515:7:30", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5672, + "id": 8233, "isConstant": false, "isLValue": false, "isPure": false, @@ -19842,20 +19856,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7569:45:19", + "src": "7515:45:30", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5673, + "id": 8234, "nodeType": "ExpressionStatement", - "src": "7569:45:19" + "src": "7515:45:30" }, { "expression": { "argumentTypes": null, - "id": 5689, + "id": 8250, "isConstant": false, "isLValue": false, "isPure": false, @@ -19866,26 +19880,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5674, + "id": 8235, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5087, - "src": "7791:7:19", + "referencedDeclaration": 7648, + "src": "7737:7:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 5678, + "id": 8239, "indexExpression": { "argumentTypes": null, - "id": 5675, + "id": 8236, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5658, - "src": "7799:5:19", + "referencedDeclaration": 8219, + "src": "7745:5:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19896,29 +19910,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7791:14:19", + "src": "7737:14:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 5679, + "id": 8240, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5676, + "id": 8237, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "7806:3:19", + "referencedDeclaration": 10042, + "src": "7752:3:30", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 5677, + "id": 8238, "isConstant": false, "isLValue": false, "isPure": false, @@ -19926,7 +19940,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7806:10:19", + "src": "7752:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -19937,7 +19951,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "7791:26:19", + "src": "7737:26:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19950,12 +19964,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5687, + "id": 8248, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5660, - "src": "7851:6:19", + "referencedDeclaration": 8221, + "src": "7797:6:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19975,26 +19989,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5680, + "id": 8241, "name": "allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5087, - "src": "7820:7:19", + "referencedDeclaration": 7648, + "src": "7766:7:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 5682, + "id": 8243, "indexExpression": { "argumentTypes": null, - "id": 5681, + "id": 8242, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5658, - "src": "7828:5:19", + "referencedDeclaration": 8219, + "src": "7774:5:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -20005,29 +20019,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7820:14:19", + "src": "7766:14:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 5685, + "id": 8246, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5683, + "id": 8244, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "7835:3:19", + "referencedDeclaration": 10042, + "src": "7781:3:30", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 5684, + "id": 8245, "isConstant": false, "isLValue": false, "isPure": false, @@ -20035,7 +20049,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "7835:10:19", + "src": "7781:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -20046,27 +20060,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7820:26:19", + "src": "7766:26:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5686, + "id": 8247, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 6829, - "src": "7820:30:19", + "referencedDeclaration": 9577, + "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": 5688, + "id": 8249, "isConstant": false, "isLValue": false, "isPure": false, @@ -20074,21 +20088,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7820:38:19", + "src": "7766:38:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7791:67:19", + "src": "7737:67:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5690, + "id": 8251, "nodeType": "ExpressionStatement", - "src": "7791:67:19" + "src": "7737:67:30" }, { "expression": { @@ -20096,12 +20110,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5692, + "id": 8253, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5658, - "src": "7874:5:19", + "referencedDeclaration": 8219, + "src": "7820:5:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -20109,12 +20123,12 @@ }, { "argumentTypes": null, - "id": 5693, + "id": 8254, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5660, - "src": "7881:6:19", + "referencedDeclaration": 8221, + "src": "7827:6:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20132,18 +20146,18 @@ "typeString": "uint256" } ], - "id": 5691, + "id": 8252, "name": "_burn", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5748, - "src": "7868:5:19", + "referencedDeclaration": 8309, + "src": "7814:5:30", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 5694, + "id": 8255, "isConstant": false, "isLValue": false, "isPure": false, @@ -20151,20 +20165,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7868:20:19", + "src": "7814:20:30", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5695, + "id": 8256, "nodeType": "ExpressionStatement", - "src": "7868:20:19" + "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": 5697, + "id": 8258, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -20172,16 +20186,16 @@ "name": "burnFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 5661, + "id": 8222, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5658, + "id": 8219, "name": "_from", "nodeType": "VariableDeclaration", - "scope": 5697, - "src": "7521:13:19", + "scope": 8258, + "src": "7467:13:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -20189,10 +20203,10 @@ "typeString": "address" }, "typeName": { - "id": 5657, + "id": 8218, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7521:7:19", + "src": "7467:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -20203,11 +20217,11 @@ }, { "constant": false, - "id": 5660, + "id": 8221, "name": "_value", "nodeType": "VariableDeclaration", - "scope": 5697, - "src": "7536:14:19", + "scope": 8258, + "src": "7482:14:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -20215,10 +20229,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5659, + "id": 8220, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "7536:7:19", + "src": "7482:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20228,26 +20242,26 @@ "visibility": "internal" } ], - "src": "7520:31:19" + "src": "7466:31:30" }, "payable": false, "returnParameters": { - "id": 5662, + "id": 8223, "nodeType": "ParameterList", "parameters": [], - "src": "7559:0:19" + "src": "7505:0:30" }, - "scope": 5925, - "src": "7503:392:19", + "scope": 8486, + "src": "7449:392:30", "stateMutability": "nonpayable", - "superFunction": null, + "superFunction": 7612, "visibility": "public" }, { "body": { - "id": 5747, + "id": 8308, "nodeType": "Block", - "src": "7955:452:19", + "src": "7901:452:30", "statements": [ { "expression": { @@ -20255,12 +20269,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5705, + "id": 8266, "name": "_who", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5699, - "src": "7981:4:19", + "referencedDeclaration": 8260, + "src": "7927:4:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -20274,18 +20288,18 @@ "typeString": "address" } ], - "id": 5704, + "id": 8265, "name": "_checkMyVesting", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5822, - "src": "7965:15:19", + "referencedDeclaration": 8383, + "src": "7911:15:30", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 5706, + "id": 8267, "isConstant": false, "isLValue": false, "isPure": false, @@ -20293,15 +20307,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7965:21:19", + "src": "7911:21:30", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5707, + "id": 8268, "nodeType": "ExpressionStatement", - "src": "7965:21:19" + "src": "7911:21:30" }, { "expression": { @@ -20313,19 +20327,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5713, + "id": 8274, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5709, + "id": 8270, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5701, - "src": "8005:6:19", + "referencedDeclaration": 8262, + "src": "7951:6:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20338,12 +20352,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5711, + "id": 8272, "name": "_who", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5699, - "src": "8030:4:19", + "referencedDeclaration": 8260, + "src": "7976:4:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -20357,18 +20371,20 @@ "typeString": "address" } ], - "id": 5710, + "id": 8271, "name": "accountBalance", "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5884, - "src": "8015:14:19", + "overloadedDeclarations": [ + 8445 + ], + "referencedDeclaration": 8445, + "src": "7961:14:30", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view returns (uint256)" } }, - "id": 5712, + "id": 8273, "isConstant": false, "isLValue": false, "isPure": false, @@ -20376,13 +20392,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8015:20:19", + "src": "7961:20:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "8005:30:19", + "src": "7951:30:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -20396,21 +20412,21 @@ "typeString": "bool" } ], - "id": 5708, + "id": 8269, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "7997:7:19", + "referencedDeclaration": 10045, + "src": "7943:7:30", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5714, + "id": 8275, "isConstant": false, "isLValue": false, "isPure": false, @@ -20418,20 +20434,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7997:39:19", + "src": "7943:39:30", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5715, + "id": 8276, "nodeType": "ExpressionStatement", - "src": "7997:39:19" + "src": "7943:39:30" }, { "expression": { "argumentTypes": null, - "id": 5725, + "id": 8286, "isConstant": false, "isLValue": false, "isPure": false, @@ -20440,26 +20456,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5716, + "id": 8277, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5091, - "src": "8226:8:19", + "referencedDeclaration": 7652, + "src": "8172:8:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 5718, + "id": 8279, "indexExpression": { "argumentTypes": null, - "id": 5717, + "id": 8278, "name": "_who", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5699, - "src": "8235:4:19", + "referencedDeclaration": 8260, + "src": "8181:4:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -20470,7 +20486,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "8226:14:19", + "src": "8172:14:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20483,12 +20499,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5723, + "id": 8284, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5701, - "src": "8262:6:19", + "referencedDeclaration": 8262, + "src": "8208:6:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20506,26 +20522,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5719, + "id": 8280, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5091, - "src": "8243:8:19", + "referencedDeclaration": 7652, + "src": "8189:8:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 5721, + "id": 8282, "indexExpression": { "argumentTypes": null, - "id": 5720, + "id": 8281, "name": "_who", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5699, - "src": "8252:4:19", + "referencedDeclaration": 8260, + "src": "8198:4:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -20536,27 +20552,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8243:14:19", + "src": "8189:14:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5722, + "id": 8283, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 6829, - "src": "8243:18:19", + "referencedDeclaration": 9577, + "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": 5724, + "id": 8285, "isConstant": false, "isLValue": false, "isPure": false, @@ -20564,38 +20580,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8243:26:19", + "src": "8189:26:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "8226:43:19", + "src": "8172:43:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5726, + "id": 8287, "nodeType": "ExpressionStatement", - "src": "8226:43:19" + "src": "8172:43:30" }, { "expression": { "argumentTypes": null, - "id": 5732, + "id": 8293, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 5727, + "id": 8288, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5093, - "src": "8279:12:19", + "referencedDeclaration": 7654, + "src": "8225:12:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20608,12 +20624,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5730, + "id": 8291, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5701, - "src": "8311:6:19", + "referencedDeclaration": 8262, + "src": "8257:6:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20629,32 +20645,32 @@ ], "expression": { "argumentTypes": null, - "id": 5728, + "id": 8289, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5093, - "src": "8294:12:19", + "referencedDeclaration": 7654, + "src": "8240:12:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5729, + "id": 8290, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 6829, - "src": "8294:16:19", + "referencedDeclaration": 9577, + "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": 5731, + "id": 8292, "isConstant": false, "isLValue": false, "isPure": false, @@ -20662,21 +20678,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8294:24:19", + "src": "8240:24:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "8279:39:19", + "src": "8225:39:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5733, + "id": 8294, "nodeType": "ExpressionStatement", - "src": "8279:39:19" + "src": "8225:39:30" }, { "eventCall": { @@ -20684,12 +20700,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5735, + "id": 8296, "name": "_who", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5699, - "src": "8338:4:19", + "referencedDeclaration": 8260, + "src": "8284:4:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -20697,12 +20713,12 @@ }, { "argumentTypes": null, - "id": 5736, + "id": 8297, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5701, - "src": "8344:6:19", + "referencedDeclaration": 8262, + "src": "8290:6:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20720,18 +20736,18 @@ "typeString": "uint256" } ], - "id": 5734, + "id": 8295, "name": "Burn", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5124, - "src": "8333:4:19", + "referencedDeclaration": 7685, + "src": "8279:4:30", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 5737, + "id": 8298, "isConstant": false, "isLValue": false, "isPure": false, @@ -20739,15 +20755,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8333:18:19", + "src": "8279:18:30", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5738, + "id": 8299, "nodeType": "EmitStatement", - "src": "8328:23:19" + "src": "8274:23:30" }, { "eventCall": { @@ -20755,12 +20771,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5740, + "id": 8301, "name": "_who", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5699, - "src": "8375:4:19", + "referencedDeclaration": 8260, + "src": "8321:4:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -20772,14 +20788,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 5742, + "id": 8303, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8389:1:19", + "src": "8335:1:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -20795,20 +20811,20 @@ "typeString": "int_const 0" } ], - "id": 5741, + "id": 8302, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8381:7:19", + "src": "8327:7:30", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 5743, + "id": 8304, "isConstant": false, "isLValue": false, "isPure": true, @@ -20816,7 +20832,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8381:10:19", + "src": "8327:10:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -20824,12 +20840,12 @@ }, { "argumentTypes": null, - "id": 5744, + "id": 8305, "name": "_value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5701, - "src": "8393:6:19", + "referencedDeclaration": 8262, + "src": "8339:6:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20851,18 +20867,18 @@ "typeString": "uint256" } ], - "id": 5739, + "id": 8300, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7048, - "src": "8366:8:19", + "referencedDeclaration": 9796, + "src": "8312:8:30", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 5745, + "id": 8306, "isConstant": false, "isLValue": false, "isPure": false, @@ -20870,20 +20886,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8366:34:19", + "src": "8312:34:30", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5746, + "id": 8307, "nodeType": "EmitStatement", - "src": "8361:39:19" + "src": "8307:39:30" } ] }, "documentation": null, - "id": 5748, + "id": 8309, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -20891,16 +20907,16 @@ "name": "_burn", "nodeType": "FunctionDefinition", "parameters": { - "id": 5702, + "id": 8263, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5699, + "id": 8260, "name": "_who", "nodeType": "VariableDeclaration", - "scope": 5748, - "src": "7916:12:19", + "scope": 8309, + "src": "7862:12:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -20908,10 +20924,10 @@ "typeString": "address" }, "typeName": { - "id": 5698, + "id": 8259, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7916:7:19", + "src": "7862:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -20922,11 +20938,11 @@ }, { "constant": false, - "id": 5701, + "id": 8262, "name": "_value", "nodeType": "VariableDeclaration", - "scope": 5748, - "src": "7930:14:19", + "scope": 8309, + "src": "7876:14:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -20934,10 +20950,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5700, + "id": 8261, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "7930:7:19", + "src": "7876:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20947,26 +20963,26 @@ "visibility": "internal" } ], - "src": "7915:30:19" + "src": "7861:30:30" }, "payable": false, "returnParameters": { - "id": 5703, + "id": 8264, "nodeType": "ParameterList", "parameters": [], - "src": "7955:0:19" + "src": "7901:0:30" }, - "scope": 5925, - "src": "7901:506:19", + "scope": 8486, + "src": "7847:506:30", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 5821, + "id": 8382, "nodeType": "Block", - "src": "8462:416:19", + "src": "8408:416:30", "statements": [ { "condition": { @@ -20975,7 +20991,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5759, + "id": 8320, "isConstant": false, "isLValue": false, "isPure": false, @@ -20986,26 +21002,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5753, + "id": 8314, "name": "vestingBalanceOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5099, - "src": "8476:16:19", + "referencedDeclaration": 7660, + "src": "8422:16:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", "typeString": "mapping(address => mapping(uint256 => uint256))" } }, - "id": 5755, + "id": 8316, "indexExpression": { "argumentTypes": null, - "id": 5754, + "id": 8315, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5750, - "src": "8493:5:19", + "referencedDeclaration": 8311, + "src": "8439:5:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -21016,24 +21032,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8476:23:19", + "src": "8422:23:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", "typeString": "mapping(uint256 => uint256)" } }, - "id": 5757, + "id": 8318, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5756, + "id": 8317, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8500:1:19", + "src": "8446:1:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -21046,7 +21062,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8476:26:19", + "src": "8422:26:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21057,14 +21073,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5758, + "id": 8319, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8506:1:19", + "src": "8452:1:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -21072,29 +21088,29 @@ }, "value": "0" }, - "src": "8476:31:19", + "src": "8422:31:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 5761, + "id": 8322, "nodeType": "IfStatement", - "src": "8472:44:19", + "src": "8418:44:30", "trueBody": { "expression": null, - "functionReturnParameters": 5752, - "id": 5760, + "functionReturnParameters": 8313, + "id": 8321, "nodeType": "Return", - "src": "8509:7:19" + "src": "8455:7:30" } }, { "body": { - "id": 5819, + "id": 8380, "nodeType": "Block", - "src": "8583:289:19", + "src": "8529:289:30", "statements": [ { "condition": { @@ -21103,7 +21119,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5781, + "id": 8342, "isConstant": false, "isLValue": false, "isPure": false, @@ -21114,26 +21130,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5775, + "id": 8336, "name": "vestingTimes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5104, - "src": "8601:12:19", + "referencedDeclaration": 7665, + "src": "8547:12:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(address => uint256[] storage ref)" } }, - "id": 5777, + "id": 8338, "indexExpression": { "argumentTypes": null, - "id": 5776, + "id": 8337, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5750, - "src": "8614:5:19", + "referencedDeclaration": 8311, + "src": "8560:5:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -21144,21 +21160,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8601:19:19", + "src": "8547:19:30", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 5779, + "id": 8340, "indexExpression": { "argumentTypes": null, - "id": 5778, + "id": 8339, "name": "k", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5763, - "src": "8621:1:19", + "referencedDeclaration": 8324, + "src": "8567:1:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21169,7 +21185,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8601:22:19", + "src": "8547:22:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21179,36 +21195,36 @@ "operator": "<", "rightExpression": { "argumentTypes": null, - "id": 5780, + "id": 8341, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7296, - "src": "8626:3:19", + "referencedDeclaration": 10044, + "src": "8572:3:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "8601:28:19", + "src": "8547:28:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 5818, + "id": 8379, "nodeType": "IfStatement", - "src": "8597:265:19", + "src": "8543:265:30", "trueBody": { - "id": 5817, + "id": 8378, "nodeType": "Block", - "src": "8631:231:19", + "src": "8577:231:30", "statements": [ { "expression": { "argumentTypes": null, - "id": 5803, + "id": 8364, "isConstant": false, "isLValue": false, "isPure": false, @@ -21219,26 +21235,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5782, + "id": 8343, "name": "vestingBalanceOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5099, - "src": "8649:16:19", + "referencedDeclaration": 7660, + "src": "8595:16:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", "typeString": "mapping(address => mapping(uint256 => uint256))" } }, - "id": 5785, + "id": 8346, "indexExpression": { "argumentTypes": null, - "id": 5783, + "id": 8344, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5750, - "src": "8666:5:19", + "referencedDeclaration": 8311, + "src": "8612:5:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -21249,24 +21265,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8649:23:19", + "src": "8595:23:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", "typeString": "mapping(uint256 => uint256)" } }, - "id": 5786, + "id": 8347, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5784, + "id": 8345, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8673:1:19", + "src": "8619:1:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -21279,7 +21295,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "8649:26:19", + "src": "8595:26:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21296,26 +21312,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5793, + "id": 8354, "name": "vestingBalanceOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5099, - "src": "8730:16:19", + "referencedDeclaration": 7660, + "src": "8676:16:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", "typeString": "mapping(address => mapping(uint256 => uint256))" } }, - "id": 5795, + "id": 8356, "indexExpression": { "argumentTypes": null, - "id": 5794, + "id": 8355, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5750, - "src": "8747:5:19", + "referencedDeclaration": 8311, + "src": "8693:5:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -21326,39 +21342,39 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8730:23:19", + "src": "8676:23:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", "typeString": "mapping(uint256 => uint256)" } }, - "id": 5801, + "id": 8362, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5796, + "id": 8357, "name": "vestingTimes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5104, - "src": "8754:12:19", + "referencedDeclaration": 7665, + "src": "8700:12:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(address => uint256[] storage ref)" } }, - "id": 5798, + "id": 8359, "indexExpression": { "argumentTypes": null, - "id": 5797, + "id": 8358, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5750, - "src": "8767:5:19", + "referencedDeclaration": 8311, + "src": "8713:5:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -21369,21 +21385,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8754:19:19", + "src": "8700:19:30", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 5800, + "id": 8361, "indexExpression": { "argumentTypes": null, - "id": 5799, + "id": 8360, "name": "k", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5763, - "src": "8774:1:19", + "referencedDeclaration": 8324, + "src": "8720:1:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21394,7 +21410,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8754:22:19", + "src": "8700:22:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21405,7 +21421,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8730:47:19", + "src": "8676:47:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21425,26 +21441,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5787, + "id": 8348, "name": "vestingBalanceOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5099, - "src": "8678:16:19", + "referencedDeclaration": 7660, + "src": "8624:16:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", "typeString": "mapping(address => mapping(uint256 => uint256))" } }, - "id": 5789, + "id": 8350, "indexExpression": { "argumentTypes": null, - "id": 5788, + "id": 8349, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5750, - "src": "8695:5:19", + "referencedDeclaration": 8311, + "src": "8641:5:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -21455,24 +21471,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8678:23:19", + "src": "8624:23:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", "typeString": "mapping(uint256 => uint256)" } }, - "id": 5791, + "id": 8352, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5790, + "id": 8351, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8702:1:19", + "src": "8648:1:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -21485,27 +21501,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8678:26:19", + "src": "8624:26:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5792, + "id": 8353, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 6829, - "src": "8678:51:19", + "referencedDeclaration": 9577, + "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": 5802, + "id": 8363, "isConstant": false, "isLValue": false, "isPure": false, @@ -21513,26 +21529,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8678:100:19", + "src": "8624:100:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "8649:129:19", + "src": "8595:129:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5804, + "id": 8365, "nodeType": "ExpressionStatement", - "src": "8649:129:19" + "src": "8595:129:30" }, { "expression": { "argumentTypes": null, - "id": 5815, + "id": 8376, "isConstant": false, "isLValue": false, "isPure": false, @@ -21543,26 +21559,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5805, + "id": 8366, "name": "vestingBalanceOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5099, - "src": "8796:16:19", + "referencedDeclaration": 7660, + "src": "8742:16:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", "typeString": "mapping(address => mapping(uint256 => uint256))" } }, - "id": 5812, + "id": 8373, "indexExpression": { "argumentTypes": null, - "id": 5806, + "id": 8367, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5750, - "src": "8813:5:19", + "referencedDeclaration": 8311, + "src": "8759:5:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -21573,39 +21589,39 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8796:23:19", + "src": "8742:23:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", "typeString": "mapping(uint256 => uint256)" } }, - "id": 5813, + "id": 8374, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5807, + "id": 8368, "name": "vestingTimes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5104, - "src": "8820:12:19", + "referencedDeclaration": 7665, + "src": "8766:12:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(address => uint256[] storage ref)" } }, - "id": 5809, + "id": 8370, "indexExpression": { "argumentTypes": null, - "id": 5808, + "id": 8369, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5750, - "src": "8833:5:19", + "referencedDeclaration": 8311, + "src": "8779:5:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -21616,21 +21632,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8820:19:19", + "src": "8766:19:30", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 5811, + "id": 8372, "indexExpression": { "argumentTypes": null, - "id": 5810, + "id": 8371, "name": "k", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5763, - "src": "8840:1:19", + "referencedDeclaration": 8324, + "src": "8786:1:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21641,7 +21657,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8820:22:19", + "src": "8766:22:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21652,7 +21668,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "8796:47:19", + "src": "8742:47:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21663,14 +21679,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 5814, + "id": 8375, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8846:1:19", + "src": "8792:1:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -21678,15 +21694,15 @@ }, "value": "0" }, - "src": "8796:51:19", + "src": "8742:51:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5816, + "id": 8377, "nodeType": "ExpressionStatement", - "src": "8796:51:19" + "src": "8742:51:30" } ] } @@ -21699,19 +21715,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5771, + "id": 8332, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5766, + "id": 8327, "name": "k", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5763, - "src": "8546:1:19", + "referencedDeclaration": 8324, + "src": "8492:1:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21725,26 +21741,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5767, + "id": 8328, "name": "vestingTimes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5104, - "src": "8550:12:19", + "referencedDeclaration": 7665, + "src": "8496:12:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(address => uint256[] storage ref)" } }, - "id": 5769, + "id": 8330, "indexExpression": { "argumentTypes": null, - "id": 5768, + "id": 8329, "name": "_from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5750, - "src": "8563:5:19", + "referencedDeclaration": 8311, + "src": "8509:5:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -21755,13 +21771,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8550:19:19", + "src": "8496:19:30", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 5770, + "id": 8331, "isConstant": false, "isLValue": true, "isPure": false, @@ -21769,31 +21785,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "8550:26:19", + "src": "8496:26:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "8546:30:19", + "src": "8492:30:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 5820, + "id": 8381, "initializationExpression": { "assignments": [ - 5763 + 8324 ], "declarations": [ { "constant": false, - "id": 5763, + "id": 8324, "name": "k", "nodeType": "VariableDeclaration", - "scope": 5822, - "src": "8531:9:19", + "scope": 8383, + "src": "8477:9:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -21801,10 +21817,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5762, + "id": 8323, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8531:7:19", + "src": "8477:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21814,18 +21830,18 @@ "visibility": "internal" } ], - "id": 5765, + "id": 8326, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 5764, + "id": 8325, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8543:1:19", + "src": "8489:1:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -21834,12 +21850,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "8531:13:19" + "src": "8477:13:30" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 5773, + "id": 8334, "isConstant": false, "isLValue": false, "isPure": false, @@ -21847,15 +21863,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "8578:3:19", + "src": "8524:3:30", "subExpression": { "argumentTypes": null, - "id": 5772, + "id": 8333, "name": "k", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5763, - "src": "8578:1:19", + "referencedDeclaration": 8324, + "src": "8524:1:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21866,17 +21882,17 @@ "typeString": "uint256" } }, - "id": 5774, + "id": 8335, "nodeType": "ExpressionStatement", - "src": "8578:3:19" + "src": "8524:3:30" }, "nodeType": "ForStatement", - "src": "8526:346:19" + "src": "8472:346:30" } ] }, "documentation": null, - "id": 5822, + "id": 8383, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -21884,16 +21900,16 @@ "name": "_checkMyVesting", "nodeType": "FunctionDefinition", "parameters": { - "id": 5751, + "id": 8312, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5750, + "id": 8311, "name": "_from", "nodeType": "VariableDeclaration", - "scope": 5822, - "src": "8438:13:19", + "scope": 8383, + "src": "8384:13:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -21901,10 +21917,10 @@ "typeString": "address" }, "typeName": { - "id": 5749, + "id": 8310, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8438:7:19", + "src": "8384:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -21914,43 +21930,43 @@ "visibility": "internal" } ], - "src": "8437:15:19" + "src": "8383:15:30" }, "payable": false, "returnParameters": { - "id": 5752, + "id": 8313, "nodeType": "ParameterList", "parameters": [], - "src": "8462:0:19" + "src": "8408:0:30" }, - "scope": 5925, - "src": "8413:465:19", + "scope": 8486, + "src": "8359:465:30", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 5883, + "id": 8444, "nodeType": "Block", - "src": "8964:343:19", + "src": "8910:343:30", "statements": [ { "expression": { "argumentTypes": null, - "id": 5833, + "id": 8394, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 5829, + "id": 8390, "name": "balance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5827, - "src": "8974:7:19", + "referencedDeclaration": 8388, + "src": "8920:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21962,26 +21978,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5830, + "id": 8391, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5091, - "src": "8984:8:19", + "referencedDeclaration": 7652, + "src": "8930:8:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 5832, + "id": 8393, "indexExpression": { "argumentTypes": null, - "id": 5831, + "id": 8392, "name": "_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5824, - "src": "8993:8:19", + "referencedDeclaration": 8385, + "src": "8939:8:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -21992,21 +22008,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8984:18:19", + "src": "8930:18:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "8974:28:19", + "src": "8920:28:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5834, + "id": 8395, "nodeType": "ExpressionStatement", - "src": "8974:28:19" + "src": "8920:28:30" }, { "condition": { @@ -22015,7 +22031,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5841, + "id": 8402, "isConstant": false, "isLValue": false, "isPure": false, @@ -22026,26 +22042,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5835, + "id": 8396, "name": "vestingBalanceOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5099, - "src": "9017:16:19", + "referencedDeclaration": 7660, + "src": "8963:16:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", "typeString": "mapping(address => mapping(uint256 => uint256))" } }, - "id": 5837, + "id": 8398, "indexExpression": { "argumentTypes": null, - "id": 5836, + "id": 8397, "name": "_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5824, - "src": "9034:8:19", + "referencedDeclaration": 8385, + "src": "8980:8:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -22056,24 +22072,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9017:26:19", + "src": "8963:26:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", "typeString": "mapping(uint256 => uint256)" } }, - "id": 5839, + "id": 8400, "indexExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5838, + "id": 8399, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9044:1:19", + "src": "8990:1:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -22086,7 +22102,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9017:29:19", + "src": "8963:29:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -22097,14 +22113,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 5840, + "id": 8401, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9050:1:19", + "src": "8996:1:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -22112,29 +22128,29 @@ }, "value": "0" }, - "src": "9017:34:19", + "src": "8963:34:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 5843, + "id": 8404, "nodeType": "IfStatement", - "src": "9013:47:19", + "src": "8959:47:30", "trueBody": { "expression": null, - "functionReturnParameters": 5828, - "id": 5842, + "functionReturnParameters": 8389, + "id": 8403, "nodeType": "Return", - "src": "9053:7:19" + "src": "8999:7:30" } }, { "body": { - "id": 5881, + "id": 8442, "nodeType": "Block", - "src": "9130:171:19", + "src": "9076:171:30", "statements": [ { "condition": { @@ -22143,7 +22159,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5863, + "id": 8424, "isConstant": false, "isLValue": false, "isPure": false, @@ -22154,26 +22170,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5857, + "id": 8418, "name": "vestingTimes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5104, - "src": "9148:12:19", + "referencedDeclaration": 7665, + "src": "9094:12:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(address => uint256[] storage ref)" } }, - "id": 5859, + "id": 8420, "indexExpression": { "argumentTypes": null, - "id": 5858, + "id": 8419, "name": "_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5824, - "src": "9161:8:19", + "referencedDeclaration": 8385, + "src": "9107:8:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -22184,21 +22200,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9148:22:19", + "src": "9094:22:30", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 5861, + "id": 8422, "indexExpression": { "argumentTypes": null, - "id": 5860, + "id": 8421, "name": "k", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5845, - "src": "9171:1:19", + "referencedDeclaration": 8406, + "src": "9117:1:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -22209,7 +22225,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9148:25:19", + "src": "9094:25:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -22219,48 +22235,48 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 5862, + "id": 8423, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7296, - "src": "9177:3:19", + "referencedDeclaration": 10044, + "src": "9123:3:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9148:32:19", + "src": "9094:32:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 5880, + "id": 8441, "nodeType": "IfStatement", - "src": "9144:147:19", + "src": "9090:147:30", "trueBody": { - "id": 5879, + "id": 8440, "nodeType": "Block", - "src": "9182:109:19", + "src": "9128:109:30", "statements": [ { "expression": { "argumentTypes": null, - "id": 5877, + "id": 8438, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 5864, + "id": 8425, "name": "balance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5827, - "src": "9200:7:19", + "referencedDeclaration": 8388, + "src": "9146:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -22277,26 +22293,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5867, + "id": 8428, "name": "vestingBalanceOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5099, - "src": "9222:16:19", + "referencedDeclaration": 7660, + "src": "9168:16:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", "typeString": "mapping(address => mapping(uint256 => uint256))" } }, - "id": 5869, + "id": 8430, "indexExpression": { "argumentTypes": null, - "id": 5868, + "id": 8429, "name": "_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5824, - "src": "9239:8:19", + "referencedDeclaration": 8385, + "src": "9185:8:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -22307,39 +22323,39 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9222:26:19", + "src": "9168:26:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", "typeString": "mapping(uint256 => uint256)" } }, - "id": 5875, + "id": 8436, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5870, + "id": 8431, "name": "vestingTimes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5104, - "src": "9249:12:19", + "referencedDeclaration": 7665, + "src": "9195:12:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(address => uint256[] storage ref)" } }, - "id": 5872, + "id": 8433, "indexExpression": { "argumentTypes": null, - "id": 5871, + "id": 8432, "name": "_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5824, - "src": "9262:8:19", + "referencedDeclaration": 8385, + "src": "9208:8:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -22350,21 +22366,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9249:22:19", + "src": "9195:22:30", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 5874, + "id": 8435, "indexExpression": { "argumentTypes": null, - "id": 5873, + "id": 8434, "name": "k", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5845, - "src": "9272:1:19", + "referencedDeclaration": 8406, + "src": "9218:1:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -22375,7 +22391,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9249:25:19", + "src": "9195:25:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -22386,7 +22402,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9222:53:19", + "src": "9168:53:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -22402,32 +22418,32 @@ ], "expression": { "argumentTypes": null, - "id": 5865, + "id": 8426, "name": "balance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5827, - "src": "9210:7:19", + "referencedDeclaration": 8388, + "src": "9156:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5866, + "id": 8427, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 6829, - "src": "9210:11:19", + "referencedDeclaration": 9577, + "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": 5876, + "id": 8437, "isConstant": false, "isLValue": false, "isPure": false, @@ -22435,21 +22451,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9210:66:19", + "src": "9156:66:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9200:76:19", + "src": "9146:76:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 5878, + "id": 8439, "nodeType": "ExpressionStatement", - "src": "9200:76:19" + "src": "9146:76:30" } ] } @@ -22462,19 +22478,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 5853, + "id": 8414, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 5848, + "id": 8409, "name": "k", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5845, - "src": "9090:1:19", + "referencedDeclaration": 8406, + "src": "9036:1:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -22488,26 +22504,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5849, + "id": 8410, "name": "vestingTimes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5104, - "src": "9094:12:19", + "referencedDeclaration": 7665, + "src": "9040:12:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(address => uint256[] storage ref)" } }, - "id": 5851, + "id": 8412, "indexExpression": { "argumentTypes": null, - "id": 5850, + "id": 8411, "name": "_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5824, - "src": "9107:8:19", + "referencedDeclaration": 8385, + "src": "9053:8:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -22518,13 +22534,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9094:22:19", + "src": "9040:22:30", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 5852, + "id": 8413, "isConstant": false, "isLValue": true, "isPure": false, @@ -22532,31 +22548,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "9094:29:19", + "src": "9040:29:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9090:33:19", + "src": "9036:33:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 5882, + "id": 8443, "initializationExpression": { "assignments": [ - 5845 + 8406 ], "declarations": [ { "constant": false, - "id": 5845, + "id": 8406, "name": "k", "nodeType": "VariableDeclaration", - "scope": 5884, - "src": "9075:9:19", + "scope": 8445, + "src": "9021:9:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -22564,10 +22580,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5844, + "id": 8405, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "9075:7:19", + "src": "9021:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -22577,18 +22593,18 @@ "visibility": "internal" } ], - "id": 5847, + "id": 8408, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 5846, + "id": 8407, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9087:1:19", + "src": "9033:1:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -22597,12 +22613,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "9075:13:19" + "src": "9021:13:30" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 5855, + "id": 8416, "isConstant": false, "isLValue": false, "isPure": false, @@ -22610,15 +22626,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "9125:3:19", + "src": "9071:3:30", "subExpression": { "argumentTypes": null, - "id": 5854, + "id": 8415, "name": "k", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5845, - "src": "9125:1:19", + "referencedDeclaration": 8406, + "src": "9071:1:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -22629,17 +22645,17 @@ "typeString": "uint256" } }, - "id": 5856, + "id": 8417, "nodeType": "ExpressionStatement", - "src": "9125:3:19" + "src": "9071:3:30" }, "nodeType": "ForStatement", - "src": "9070:231:19" + "src": "9016:231:30" } ] }, "documentation": null, - "id": 5884, + "id": 8445, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -22647,16 +22663,16 @@ "name": "accountBalance", "nodeType": "FunctionDefinition", "parameters": { - "id": 5825, + "id": 8386, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5824, + "id": 8385, "name": "_address", "nodeType": "VariableDeclaration", - "scope": 5884, - "src": "8908:16:19", + "scope": 8445, + "src": "8854:16:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -22664,10 +22680,10 @@ "typeString": "address" }, "typeName": { - "id": 5823, + "id": 8384, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8908:7:19", + "src": "8854:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -22677,20 +22693,20 @@ "visibility": "internal" } ], - "src": "8907:18:19" + "src": "8853:18:30" }, "payable": false, "returnParameters": { - "id": 5828, + "id": 8389, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5827, + "id": 8388, "name": "balance", "nodeType": "VariableDeclaration", - "scope": 5884, - "src": "8947:15:19", + "scope": 8445, + "src": "8893:15:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -22698,10 +22714,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5826, + "id": 8387, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8947:7:19", + "src": "8893:7:30", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -22711,24 +22727,24 @@ "visibility": "internal" } ], - "src": "8946:17:19" + "src": "8892:17:30" }, - "scope": 5925, - "src": "8884:423:19", + "scope": 8486, + "src": "8830:423:30", "stateMutability": "view", - "superFunction": null, + "superFunction": 7619, "visibility": "public" }, { "body": { - "id": 5897, + "id": 8458, "nodeType": "Block", - "src": "9375:47:19", + "src": "9321:47:30", "statements": [ { "expression": { "argumentTypes": null, - "id": 5895, + "id": 8456, "isConstant": false, "isLValue": false, "isPure": false, @@ -22737,26 +22753,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5891, + "id": 8452, "name": "trustedAccounts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5108, - "src": "9385:15:19", + "referencedDeclaration": 7669, + "src": "9331:15:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 5893, + "id": 8454, "indexExpression": { "argumentTypes": null, - "id": 5892, + "id": 8453, "name": "caller", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5886, - "src": "9401:6:19", + "referencedDeclaration": 8447, + "src": "9347:6:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -22767,7 +22783,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "9385:23:19", + "src": "9331:23:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -22778,14 +22794,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 5894, + "id": 8455, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "9411:4:19", + "src": "9357:4:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -22793,57 +22809,57 @@ }, "value": "true" }, - "src": "9385:30:19", + "src": "9331:30:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 5896, + "id": 8457, "nodeType": "ExpressionStatement", - "src": "9385:30:19" + "src": "9331:30:30" } ] }, "documentation": null, - "id": 5898, + "id": 8459, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 5889, + "id": 8450, "modifierName": { "argumentTypes": null, - "id": 5888, + "id": 8449, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6888, - "src": "9365:9:19", + "referencedDeclaration": 9636, + "src": "9311:9:30", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "9365:9:19" + "src": "9311:9:30" } ], "name": "addTrustedAccount", "nodeType": "FunctionDefinition", "parameters": { - "id": 5887, + "id": 8448, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5886, + "id": 8447, "name": "caller", "nodeType": "VariableDeclaration", - "scope": 5898, - "src": "9340:14:19", + "scope": 8459, + "src": "9286:14:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -22851,10 +22867,10 @@ "typeString": "address" }, "typeName": { - "id": 5885, + "id": 8446, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9340:7:19", + "src": "9286:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -22864,31 +22880,31 @@ "visibility": "internal" } ], - "src": "9339:16:19" + "src": "9285:16:30" }, "payable": false, "returnParameters": { - "id": 5890, + "id": 8451, "nodeType": "ParameterList", "parameters": [], - "src": "9375:0:19" + "src": "9321:0:30" }, - "scope": 5925, - "src": "9313:109:19", + "scope": 8486, + "src": "9259:109:30", "stateMutability": "nonpayable", - "superFunction": null, + "superFunction": 7624, "visibility": "external" }, { "body": { - "id": 5911, + "id": 8472, "nodeType": "Block", - "src": "9493:48:19", + "src": "9439:48:30", "statements": [ { "expression": { "argumentTypes": null, - "id": 5909, + "id": 8470, "isConstant": false, "isLValue": false, "isPure": false, @@ -22897,26 +22913,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5905, + "id": 8466, "name": "trustedAccounts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5108, - "src": "9503:15:19", + "referencedDeclaration": 7669, + "src": "9449:15:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 5907, + "id": 8468, "indexExpression": { "argumentTypes": null, - "id": 5906, + "id": 8467, "name": "caller", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5900, - "src": "9519:6:19", + "referencedDeclaration": 8461, + "src": "9465:6:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -22927,7 +22943,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "9503:23:19", + "src": "9449:23:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -22938,14 +22954,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 5908, + "id": 8469, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "9529:5:19", + "src": "9475:5:30", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -22953,57 +22969,57 @@ }, "value": "false" }, - "src": "9503:31:19", + "src": "9449:31:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 5910, + "id": 8471, "nodeType": "ExpressionStatement", - "src": "9503:31:19" + "src": "9449:31:30" } ] }, "documentation": null, - "id": 5912, + "id": 8473, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 5903, + "id": 8464, "modifierName": { "argumentTypes": null, - "id": 5902, + "id": 8463, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6888, - "src": "9483:9:19", + "referencedDeclaration": 9636, + "src": "9429:9:30", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "9483:9:19" + "src": "9429:9:30" } ], "name": "removeTrustedAccount", "nodeType": "FunctionDefinition", "parameters": { - "id": 5901, + "id": 8462, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5900, + "id": 8461, "name": "caller", "nodeType": "VariableDeclaration", - "scope": 5912, - "src": "9458:14:19", + "scope": 8473, + "src": "9404:14:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23011,10 +23027,10 @@ "typeString": "address" }, "typeName": { - "id": 5899, + "id": 8460, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9458:7:19", + "src": "9404:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -23024,26 +23040,26 @@ "visibility": "internal" } ], - "src": "9457:16:19" + "src": "9403:16:30" }, "payable": false, "returnParameters": { - "id": 5904, + "id": 8465, "nodeType": "ParameterList", "parameters": [], - "src": "9493:0:19" + "src": "9439:0:30" }, - "scope": 5925, - "src": "9428:113:19", + "scope": 8486, + "src": "9374:113:30", "stateMutability": "nonpayable", - "superFunction": null, + "superFunction": 7629, "visibility": "external" }, { "body": { - "id": 5923, + "id": 8484, "nodeType": "Block", - "src": "9584:60:19", + "src": "9530:60:30", "statements": [ { "expression": { @@ -23053,26 +23069,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5917, + "id": 8478, "name": "trustedAccounts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5108, - "src": "9602:15:19", + "referencedDeclaration": 7669, + "src": "9548:15:30", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 5919, + "id": 8480, "indexExpression": { "argumentTypes": null, - "id": 5918, + "id": 8479, "name": "caller", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5914, - "src": "9618:6:19", + "referencedDeclaration": 8475, + "src": "9564:6:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -23083,7 +23099,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9602:23:19", + "src": "9548:23:30", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -23097,21 +23113,21 @@ "typeString": "bool" } ], - "id": 5916, + "id": 8477, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "9594:7:19", + "referencedDeclaration": 10045, + "src": "9540:7:30", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 5920, + "id": 8481, "isConstant": false, "isLValue": false, "isPure": false, @@ -23119,38 +23135,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9594:32:19", + "src": "9540:32:30", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5921, + "id": 8482, "nodeType": "ExpressionStatement", - "src": "9594:32:19" + "src": "9540:32:30" }, { - "id": 5922, + "id": 8483, "nodeType": "PlaceholderStatement", - "src": "9636:1:19" + "src": "9582:1:30" } ] }, "documentation": null, - "id": 5924, + "id": 8485, "name": "onlyTrusted", "nodeType": "ModifierDefinition", "parameters": { - "id": 5915, + "id": 8476, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5914, + "id": 8475, "name": "caller", "nodeType": "VariableDeclaration", - "scope": 5924, - "src": "9568:14:19", + "scope": 8485, + "src": "9514:14:30", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23158,10 +23174,10 @@ "typeString": "address" }, "typeName": { - "id": 5913, + "id": 8474, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9568:7:19", + "src": "9514:7:30", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -23171,17 +23187,17 @@ "visibility": "internal" } ], - "src": "9567:16:19" + "src": "9513:16:30" }, - "src": "9547:97:19", + "src": "9493:97:30", "visibility": "internal" } ], - "scope": 5926, - "src": "224:9422:19" + "scope": 8487, + "src": "176:9416:30" } ], - "src": "0:9647:19" + "src": "0:9593:30" }, "compiler": { "name": "solc", @@ -23189,5 +23205,5 @@ }, "networks": {}, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-02T11:52:56.796Z" + "updatedAt": "2018-10-22T07:56:01.706Z" } \ No newline at end of file diff --git a/build/contracts/WTokenStub.json b/build/contracts/WTokenStub.json index 49097c19..3896eb97 100644 --- a/build/contracts/WTokenStub.json +++ b/build/contracts/WTokenStub.json @@ -567,24 +567,24 @@ "type": "event" } ], - "bytecode": "0x60806040523480156200001157600080fd5b5060405162001454380380620014548339810160409081528151602080840151928401519184018051909493909301928491849184918491849184916200005f9160009190860190620000c9565b50815162000075906001906020850190620000c9565b506002805433610100810261010060a860020a031960ff90951660ff1993841617949094169390931790915560009182526008602052604090912080549091166001179055506200016e9650505050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200010c57805160ff19168380011785556200013c565b828001600101855582156200013c579182015b828111156200013c5782518255916020019190600101906200011f565b506200014a9291506200014e565b5090565b6200016b91905b808211156200014a576000815560010162000155565b90565b6112d6806200017e6000396000f3006080604052600436106101325763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610137578063095ea7b3146101c157806318160ddd146101f957806323b872dd1461022057806327e235e31461024a578063313ce5671461026b57806342966c68146102965780634afbf5ee146102b057806366188463146102d457806370a08231146102f8578063715018a61461031957806379cc67901461032e5780638da5cb5b1461035257806395d89b41146103835780639d2e477714610398578063a9059cbb146103c5578063ba0e0f5e146103e9578063d0047acf1461040a578063d294cb0f14610437578063d73dd62314610458578063d88b86761461047c578063dd62ed3e1461049d578063f2fde38b146104c4575b600080fd5b34801561014357600080fd5b5061014c6104e5565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561018657818101518382015260200161016e565b50505050905090810190601f1680156101b35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101cd57600080fd5b506101e5600160a060020a0360043516602435610573565b604080519115158252519081900360200190f35b34801561020557600080fd5b5061020e6105d9565b60408051918252519081900360200190f35b34801561022c57600080fd5b506101e5600160a060020a03600435811690602435166044356105df565b34801561025657600080fd5b5061020e600160a060020a036004351661073f565b34801561027757600080fd5b50610280610751565b6040805160ff9092168252519081900360200190f35b3480156102a257600080fd5b506102ae60043561075a565b005b3480156102bc57600080fd5b5061020e600160a060020a0360043516602435610767565b3480156102e057600080fd5b506101e5600160a060020a0360043516602435610784565b34801561030457600080fd5b5061020e600160a060020a0360043516610873565b34801561032557600080fd5b506102ae61088e565b34801561033a57600080fd5b506102ae600160a060020a03600435166024356108ea565b34801561035e57600080fd5b50610367610980565b60408051600160a060020a039092168252519081900360200190f35b34801561038f57600080fd5b5061014c610994565b3480156103a457600080fd5b506101e5600160a060020a036004351660243563ffffffff604435166109ee565b3480156103d157600080fd5b506101e5600160a060020a0360043516602435610a7c565b3480156103f557600080fd5b506102ae600160a060020a0360043516610b4f565b34801561041657600080fd5b506101e5600160a060020a036004351660243563ffffffff60443516610b70565b34801561044357600080fd5b5061020e600160a060020a0360043516610c9a565b34801561046457600080fd5b506101e5600160a060020a0360043516602435610d9f565b34801561048857600080fd5b506102ae600160a060020a0360043516610e38565b3480156104a957600080fd5b5061020e600160a060020a0360043581169060243516610e5c565b3480156104d057600080fd5b506102ae600160a060020a0360043516610e87565b6000805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561056b5780601f106105405761010080835404028352916020019161056b565b820191906000526020600020905b81548152906001019060200180831161054e57829003601f168201915b505050505081565b336000818152600360209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60055490565b60006105ea84610e90565b600160a060020a03831615156105ff57600080fd5b61060884610c9a565b82111561061457600080fd5b600160a060020a038416600090815260036020908152604080832033845290915290205482111561064457600080fd5b600160a060020a03841660009081526004602052604090205461066d908363ffffffff610fff16565b600160a060020a0380861660009081526004602052604080822093909355908516815220546106a2908363ffffffff61101116565b600160a060020a0380851660009081526004602090815260408083209490945591871681526003825282812033825290915220546106e6908363ffffffff610fff16565b600160a060020a038086166000818152600360209081526040808320338452825291829020949094558051868152905192871693919260008051602061128b833981519152929181900390910190a35060019392505050565b60046020526000908152604090205481565b60025460ff1681565b6107643382611024565b50565b600660209081526000928352604080842090915290825290205481565b336000908152600360209081526040808320600160a060020a03861684529091528120548083106107d857336000908152600360209081526040808320600160a060020a038816845290915281205561080d565b6107e8818463ffffffff610fff16565b336000908152600360209081526040808320600160a060020a03891684529091529020555b336000818152600360209081526040808320600160a060020a0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b600160a060020a031660009081526004602052604090205490565b600254604051610100909104600160a060020a0316907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26002805474ffffffffffffffffffffffffffffffffffffffff0019169055565b600160a060020a038216600090815260036020908152604080832033845290915290205481111561091a57600080fd5b600160a060020a038216600090815260036020908152604080832033845290915290205461094e908263ffffffff610fff16565b600160a060020a038316600090815260036020908152604080832033845290915290205561097c8282611024565b5050565b6002546101009004600160a060020a031681565b60018054604080516020600284861615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561056b5780601f106105405761010080835404028352916020019161056b565b6000336109fb8585610a7c565b50428363ffffffff161115610a1d57610a1d6000868563ffffffff168761110c565b60408051338152600160a060020a038716602082015280820186905263ffffffff8516606082015290517f5075049792a88eedfe4e60bb3ffeac77b4fa7f03108b81fb0b460161b983e2009181900360800190a1506001949350505050565b6000610a8733610e90565b600160a060020a0383161515610a9c57600080fd5b610aa533610c9a565b821115610ab157600080fd5b33600090815260046020526040902054610ad1908363ffffffff610fff16565b3360009081526004602052604080822092909255600160a060020a03851681522054610b03908363ffffffff61101116565b600160a060020a03841660008181526004602090815260409182902093909355805185815290519192339260008051602061128b8339815191529281900390910190a350600192915050565b600160a060020a03166000908152600860205260409020805460ff19169055565b6005546000903390610b88818663ffffffff61101116565b11610b9257600080fd5b428363ffffffff161115610bb357610bb36000868563ffffffff168761110c565b600160a060020a038516600090815260046020526040902054610bdc908563ffffffff61101116565b600160a060020a038616600090815260046020526040902055600554610c08908563ffffffff61101116565b600555604080518581529051600160a060020a0387169160009160008051602061128b8339815191529181900360200190a36040805160008152600160a060020a038716602082015280820186905263ffffffff8516606082015290517f5075049792a88eedfe4e60bb3ffeac77b4fa7f03108b81fb0b460161b983e2009181900360800190a1506001949350505050565b600160a060020a038116600090815260046020908152604080832054600683528184208480529092528220549091901515610cd457610d99565b5060005b600160a060020a038316600090815260076020526040902054811015610d9957600160a060020a0383166000908152600760205260409020805442919083908110610d1f57fe5b9060005260206000200154101515610d9157600160a060020a0383166000908152600660209081526040808320600790925282208054610d8e93919085908110610d6557fe5b906000526020600020015481526020019081526020016000205483610fff90919063ffffffff16565b91505b600101610cd8565b50919050565b336000908152600360209081526040808320600160a060020a0386168452909152812054610dd3908363ffffffff61101116565b336000818152600360209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b600160a060020a03166000908152600860205260409020805460ff19166001179055565b600160a060020a03918216600090815260036020908152604080832093909416825291909152205490565b61076481611201565b600160a060020a03811660009081526006602090815260408083208380529091528120541515610ebf5761097c565b5060005b600160a060020a03821660009081526007602052604090205481101561097c57600160a060020a0382166000908152600760205260409020805442919083908110610f0a57fe5b90600052602060002001541015610ff757600160a060020a0382166000908152600660209081526040808320600790925282208054610f9593919085908110610f4f57fe5b60009182526020808320909101548352828101939093526040918201812054600160a060020a03871682526006845282822082805290935220549063ffffffff610fff16565b600160a060020a03831660008181526006602090815260408083208380528083528184209590955592825260079052908120805491929183919085908110610fd957fe5b90600052602060002001548152602001908152602001600020819055505b600101610ec3565b60008282111561100b57fe5b50900390565b8181018281101561101e57fe5b92915050565b61102d82610e90565b61103682610c9a565b81111561104257600080fd5b600160a060020a03821660009081526004602052604090205461106b908263ffffffff610fff16565b600160a060020a038316600090815260046020526040902055600554611097908263ffffffff610fff16565b600555604080518281529051600160a060020a038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a2604080518281529051600091600160a060020a0385169160008051602061128b8339815191529181900360200190a35050565b600160a060020a0383166000908152600660209081526040808320838052909152902054611140908263ffffffff61101116565b600160a060020a0384166000908152600660209081526040808320838052909152808220929092558381522054151561119f57600160a060020a0383166000908152600760209081526040822080546001810182559083529120018290555b600160a060020a03831660009081526006602090815260408083208584529091529020546111d3908263ffffffff61101116565b600160a060020a03909316600090815260066020908152604080832094835293905291909120919091555050565b600160a060020a038116151561121657600080fd5b600254604051600160a060020a0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360028054600160a060020a039092166101000274ffffffffffffffffffffffffffffffffffffffff00199092169190911790555600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a723058203837b6f13c24236a9793e4e7f8cc2277c32ab6b88f7df4dac3cb23a3574f1a4c0029", - "deployedBytecode": "0x6080604052600436106101325763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610137578063095ea7b3146101c157806318160ddd146101f957806323b872dd1461022057806327e235e31461024a578063313ce5671461026b57806342966c68146102965780634afbf5ee146102b057806366188463146102d457806370a08231146102f8578063715018a61461031957806379cc67901461032e5780638da5cb5b1461035257806395d89b41146103835780639d2e477714610398578063a9059cbb146103c5578063ba0e0f5e146103e9578063d0047acf1461040a578063d294cb0f14610437578063d73dd62314610458578063d88b86761461047c578063dd62ed3e1461049d578063f2fde38b146104c4575b600080fd5b34801561014357600080fd5b5061014c6104e5565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561018657818101518382015260200161016e565b50505050905090810190601f1680156101b35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101cd57600080fd5b506101e5600160a060020a0360043516602435610573565b604080519115158252519081900360200190f35b34801561020557600080fd5b5061020e6105d9565b60408051918252519081900360200190f35b34801561022c57600080fd5b506101e5600160a060020a03600435811690602435166044356105df565b34801561025657600080fd5b5061020e600160a060020a036004351661073f565b34801561027757600080fd5b50610280610751565b6040805160ff9092168252519081900360200190f35b3480156102a257600080fd5b506102ae60043561075a565b005b3480156102bc57600080fd5b5061020e600160a060020a0360043516602435610767565b3480156102e057600080fd5b506101e5600160a060020a0360043516602435610784565b34801561030457600080fd5b5061020e600160a060020a0360043516610873565b34801561032557600080fd5b506102ae61088e565b34801561033a57600080fd5b506102ae600160a060020a03600435166024356108ea565b34801561035e57600080fd5b50610367610980565b60408051600160a060020a039092168252519081900360200190f35b34801561038f57600080fd5b5061014c610994565b3480156103a457600080fd5b506101e5600160a060020a036004351660243563ffffffff604435166109ee565b3480156103d157600080fd5b506101e5600160a060020a0360043516602435610a7c565b3480156103f557600080fd5b506102ae600160a060020a0360043516610b4f565b34801561041657600080fd5b506101e5600160a060020a036004351660243563ffffffff60443516610b70565b34801561044357600080fd5b5061020e600160a060020a0360043516610c9a565b34801561046457600080fd5b506101e5600160a060020a0360043516602435610d9f565b34801561048857600080fd5b506102ae600160a060020a0360043516610e38565b3480156104a957600080fd5b5061020e600160a060020a0360043581169060243516610e5c565b3480156104d057600080fd5b506102ae600160a060020a0360043516610e87565b6000805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561056b5780601f106105405761010080835404028352916020019161056b565b820191906000526020600020905b81548152906001019060200180831161054e57829003601f168201915b505050505081565b336000818152600360209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60055490565b60006105ea84610e90565b600160a060020a03831615156105ff57600080fd5b61060884610c9a565b82111561061457600080fd5b600160a060020a038416600090815260036020908152604080832033845290915290205482111561064457600080fd5b600160a060020a03841660009081526004602052604090205461066d908363ffffffff610fff16565b600160a060020a0380861660009081526004602052604080822093909355908516815220546106a2908363ffffffff61101116565b600160a060020a0380851660009081526004602090815260408083209490945591871681526003825282812033825290915220546106e6908363ffffffff610fff16565b600160a060020a038086166000818152600360209081526040808320338452825291829020949094558051868152905192871693919260008051602061128b833981519152929181900390910190a35060019392505050565b60046020526000908152604090205481565b60025460ff1681565b6107643382611024565b50565b600660209081526000928352604080842090915290825290205481565b336000908152600360209081526040808320600160a060020a03861684529091528120548083106107d857336000908152600360209081526040808320600160a060020a038816845290915281205561080d565b6107e8818463ffffffff610fff16565b336000908152600360209081526040808320600160a060020a03891684529091529020555b336000818152600360209081526040808320600160a060020a0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b600160a060020a031660009081526004602052604090205490565b600254604051610100909104600160a060020a0316907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26002805474ffffffffffffffffffffffffffffffffffffffff0019169055565b600160a060020a038216600090815260036020908152604080832033845290915290205481111561091a57600080fd5b600160a060020a038216600090815260036020908152604080832033845290915290205461094e908263ffffffff610fff16565b600160a060020a038316600090815260036020908152604080832033845290915290205561097c8282611024565b5050565b6002546101009004600160a060020a031681565b60018054604080516020600284861615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561056b5780601f106105405761010080835404028352916020019161056b565b6000336109fb8585610a7c565b50428363ffffffff161115610a1d57610a1d6000868563ffffffff168761110c565b60408051338152600160a060020a038716602082015280820186905263ffffffff8516606082015290517f5075049792a88eedfe4e60bb3ffeac77b4fa7f03108b81fb0b460161b983e2009181900360800190a1506001949350505050565b6000610a8733610e90565b600160a060020a0383161515610a9c57600080fd5b610aa533610c9a565b821115610ab157600080fd5b33600090815260046020526040902054610ad1908363ffffffff610fff16565b3360009081526004602052604080822092909255600160a060020a03851681522054610b03908363ffffffff61101116565b600160a060020a03841660008181526004602090815260409182902093909355805185815290519192339260008051602061128b8339815191529281900390910190a350600192915050565b600160a060020a03166000908152600860205260409020805460ff19169055565b6005546000903390610b88818663ffffffff61101116565b11610b9257600080fd5b428363ffffffff161115610bb357610bb36000868563ffffffff168761110c565b600160a060020a038516600090815260046020526040902054610bdc908563ffffffff61101116565b600160a060020a038616600090815260046020526040902055600554610c08908563ffffffff61101116565b600555604080518581529051600160a060020a0387169160009160008051602061128b8339815191529181900360200190a36040805160008152600160a060020a038716602082015280820186905263ffffffff8516606082015290517f5075049792a88eedfe4e60bb3ffeac77b4fa7f03108b81fb0b460161b983e2009181900360800190a1506001949350505050565b600160a060020a038116600090815260046020908152604080832054600683528184208480529092528220549091901515610cd457610d99565b5060005b600160a060020a038316600090815260076020526040902054811015610d9957600160a060020a0383166000908152600760205260409020805442919083908110610d1f57fe5b9060005260206000200154101515610d9157600160a060020a0383166000908152600660209081526040808320600790925282208054610d8e93919085908110610d6557fe5b906000526020600020015481526020019081526020016000205483610fff90919063ffffffff16565b91505b600101610cd8565b50919050565b336000908152600360209081526040808320600160a060020a0386168452909152812054610dd3908363ffffffff61101116565b336000818152600360209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b600160a060020a03166000908152600860205260409020805460ff19166001179055565b600160a060020a03918216600090815260036020908152604080832093909416825291909152205490565b61076481611201565b600160a060020a03811660009081526006602090815260408083208380529091528120541515610ebf5761097c565b5060005b600160a060020a03821660009081526007602052604090205481101561097c57600160a060020a0382166000908152600760205260409020805442919083908110610f0a57fe5b90600052602060002001541015610ff757600160a060020a0382166000908152600660209081526040808320600790925282208054610f9593919085908110610f4f57fe5b60009182526020808320909101548352828101939093526040918201812054600160a060020a03871682526006845282822082805290935220549063ffffffff610fff16565b600160a060020a03831660008181526006602090815260408083208380528083528184209590955592825260079052908120805491929183919085908110610fd957fe5b90600052602060002001548152602001908152602001600020819055505b600101610ec3565b60008282111561100b57fe5b50900390565b8181018281101561101e57fe5b92915050565b61102d82610e90565b61103682610c9a565b81111561104257600080fd5b600160a060020a03821660009081526004602052604090205461106b908263ffffffff610fff16565b600160a060020a038316600090815260046020526040902055600554611097908263ffffffff610fff16565b600555604080518281529051600160a060020a038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a2604080518281529051600091600160a060020a0385169160008051602061128b8339815191529181900360200190a35050565b600160a060020a0383166000908152600660209081526040808320838052909152902054611140908263ffffffff61101116565b600160a060020a0384166000908152600660209081526040808320838052909152808220929092558381522054151561119f57600160a060020a0383166000908152600760209081526040822080546001810182559083529120018290555b600160a060020a03831660009081526006602090815260408083208584529091529020546111d3908263ffffffff61101116565b600160a060020a03909316600090815260066020908152604080832094835293905291909120919091555050565b600160a060020a038116151561121657600080fd5b600254604051600160a060020a0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360028054600160a060020a039092166101000274ffffffffffffffffffffffffffffffffffffffff00199092169190911790555600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a723058203837b6f13c24236a9793e4e7f8cc2277c32ab6b88f7df4dac3cb23a3574f1a4c0029", - "sourceMap": "51:316:20:-;;;262:103;8:9:-1;5:2;;;30:1;27;20:12;5:2;262:103:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;463:12:32;;262:103:20;;;;;;;;;;;;;;;;;;;463:12:32;;:4;;:12;;;;;:::i;:::-;-1:-1:-1;481:16:32;;;;:6;;:16;;;;;:::i;:::-;-1:-1:-1;503:8:32;:20;;575:10:31;503:20:32;567:18:31;;-1:-1:-1;;;;;;503:20:32;;;;-1:-1:-1;;503:20:32;;;;567:18:31;;;;;;;;;;;503:8:32;1055:27:19;;;:15;:27;;;;;;:34;;;;;503:20:32;1055:34:19;;;-1:-1:-1;51:316:20;;-1:-1:-1;;;;;;;51:316:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;51:316:20;;;-1:-1:-1;51:316:20;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", - "deployedSourceMap": "51:316:20:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;319:18:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;319:18: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;319:18:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3790:203:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3790:203:19;-1:-1:-1;;;;;3790:203:19;;;;;;;;;;;;;;;;;;;;;;;;;843:89;;8:9:-1;5:2;;;30:1;27;20:12;5:2;843:89:19;;;;;;;;;;;;;;;;;;;;2636:518;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2636:518:19;-1:-1:-1;;;;;2636:518:19;;;;;;;;;;;;378:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;378:43:19;-1:-1:-1;;;;;378:43:19;;;;;365:21:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;365:21:32;;;;;;;;;;;;;;;;;;;;;;;7170:79:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7170:79:19;;;;;;;463:73;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;463:73:19;-1:-1:-1;;;;;463:73:19;;;;;;;5675:443;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5675:443:19;-1:-1:-1;;;;;5675:443:19;;;;;;;2239:113;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2239:113:19;-1:-1:-1;;;;;2239:113:19;;;;;1001:111:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1001:111:31;;;;7503:392:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7503:392:19;-1:-1:-1;;;;;7503:392:19;;;;;;;238:20:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:31;;;;;;;;-1:-1:-1;;;;;238:20:31;;;;;;;;;;;;;;341::32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;341:20:32;;;;1661:364:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1661:364:19;-1:-1:-1;;;;;1661:364:19;;;;;;;;;;;1262:393;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1262:393:19;-1:-1:-1;;;;;1262:393:19;;;;;;;9428:113;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9428:113:19;-1:-1:-1;;;;;9428:113:19;;;;;6124:532;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6124:532:19;-1:-1:-1;;;;;6124:532:19;;;;;;;;;;;8884:423;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8884:423:19;-1:-1:-1;;;;;8884:423:19;;;;;4923:277;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4923:277:19;-1:-1:-1;;;;;4923:277:19;;;;;;;9313:109;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9313:109:19;-1:-1:-1;;;;;9313:109:19;;;;;4321:132;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4321:132:19;-1:-1:-1;;;;;4321:132:19;;;;;;;;;;1274:103:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1274:103:31;-1:-1:-1;;;;;1274:103:31;;;;;319:18:32;;;;;;;;;;;;;;;-1:-1:-1;;319:18:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3790:203:19:-;3881:10;3857:4;3873:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;3873:29:19;;;;;;;;;;;:38;;;3926;;;;;;;3857:4;;3873:29;;3881:10;;3926:38;;;;;;;;-1:-1:-1;3982:4:19;3790:203;;;;:::o;843:89::-;913:12;;843:89;:::o;2636:518::-;2718:4;2734:22;2750:5;2734:15;:22::i;:::-;-1:-1:-1;;;;;2775:17:19;;;;2767:26;;;;;;2821:21;2836:5;2821:14;:21::i;:::-;2811:31;;;2803:40;;;;;;-1:-1:-1;;;;;2871:14:19;;;;;;:7;:14;;;;;;;;2886:10;2871:26;;;;;;;;2861:36;;;2853:45;;;;;;-1:-1:-1;;;;;2927:15:19;;;;;;:8;:15;;;;;;:27;;2947:6;2927:27;:19;:27;:::i;:::-;-1:-1:-1;;;;;2909:15:19;;;;;;;:8;:15;;;;;;:45;;;;2980:13;;;;;;;:25;;2998:6;2980:25;:17;:25;:::i;:::-;-1:-1:-1;;;;;2964:13:19;;;;;;;:8;:13;;;;;;;;:41;;;;3044:14;;;;;:7;:14;;;;;3059:10;3044:26;;;;;;;:38;;3075:6;3044:38;:30;:38;:::i;:::-;-1:-1:-1;;;;;3015:14:19;;;;;;;:7;:14;;;;;;;;3030:10;3015:26;;;;;;;;:67;;;;3098:28;;;;;;;;;;;3015:14;;-1:-1:-1;;;;;;;;;;;3098:28:19;;;;;;;;;;-1:-1:-1;3143:4:19;2636:518;;;;;:::o;378:43::-;;;;;;;;;;;;;:::o;365:21:32:-;;;;;;:::o;7170:79:19:-;7217:25;7223:10;7235:6;7217:5;:25::i;:::-;7170:79;:::o;463:73::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;5675:443::-;5798:10;5758:4;5790:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;5790:29:19;;;;;;;;;;5833:28;;;5829:185;;5885:10;5909:1;5877:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;5877:29:19;;;;;;;;;:33;5829:185;;;5973:30;:8;5986:16;5973:30;:12;:30;:::i;:::-;5949:10;5941:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;5941:29:19;;;;;;;;;:62;5829:185;6037:10;6059:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;6028:61:19;;6059:29;;;;;;;;;;;6028:61;;;;;;;;;6037:10;6028:61;;;;;;;;;;;-1:-1:-1;6107:4:19;;5675:443;-1:-1:-1;;;5675:443:19:o;2239:113::-;-1:-1:-1;;;;;2329:16:19;2295:15;2329:16;;;:8;:16;;;;;;;2239:113::o;1001:111:31:-;1077:5;;1058:25;;1077:5;;;;-1:-1:-1;;;;;1077:5:31;;1058:25;;;;;1089:5;:18;;-1:-1:-1;;1089:18:31;;;1001:111::o;7503:392:19:-;-1:-1:-1;;;;;7587:14:19;;;;;;:7;:14;;;;;;;;7602:10;7587:26;;;;;;;;7577:36;;;7569:45;;;;;;-1:-1:-1;;;;;7820:14:19;;;;;;:7;:14;;;;;;;;7835:10;7820:26;;;;;;;;:38;;7851:6;7820:38;:30;:38;:::i;:::-;-1:-1:-1;;;;;7791:14:19;;;;;;:7;:14;;;;;;;;7806:10;7791:26;;;;;;;:67;7868:20;7799:5;7881:6;7868:5;:20::i;:::-;7503:392;;:::o;238:20:31:-;;;;;;-1:-1:-1;;;;;238:20:31;;:::o;341::32:-;;;;;;;;;;;;;;;-1:-1:-1;;341:20:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1661:364:19;1778:4;1757:10;1794:21;1803:3;1808:6;1794:8;:21::i;:::-;;1845:3;1830:12;:18;;;1826:101;;;1864:52;1886:1;1890:3;1895:12;1864:52;;1909:6;1864:13;:52::i;:::-;1942:54;;;1958:10;1942:54;;-1:-1:-1;;;;;1942:54:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2014:4:19;;1661:364;-1:-1:-1;;;;1661:364:19:o;1262:393::-;1325:4;1341:27;1357:10;1341:15;:27::i;:::-;-1:-1:-1;;;;;1386:17:19;;;;1378:26;;;;;;1432;1447:10;1432:14;:26::i;:::-;1422:36;;;1414:45;;;;;;1502:10;1493:20;;;;:8;:20;;;;;;:32;;1518:6;1493:32;:24;:32;:::i;:::-;1479:10;1470:20;;;;:8;:20;;;;;;:55;;;;-1:-1:-1;;;;;1552:13:19;;;;;;:25;;1570:6;1552:25;:17;:25;:::i;:::-;-1:-1:-1;;;;;1536:13:19;;;;;;:8;:13;;;;;;;;;:41;;;;1593:33;;;;;;;1536:13;;1602:10;;-1:-1:-1;;;;;;;;;;;1593:33:19;;;;;;;;;-1:-1:-1;1644:4:19;1262:393;;;;:::o;9428:113::-;-1:-1:-1;;;;;9503:23:19;9529:5;9503:23;;;:15;:23;;;;;:31;;-1:-1:-1;;9503:31:19;;;9428:113::o;6124:532::-;6280:12;;6228:4;;6207:10;;6252:25;6280:12;6269:7;6252:25;:16;:25;:::i;:::-;:40;6244:49;;;;;;6323:3;6308:12;:18;;;6304:102;;;6342:53;6364:1;6368:3;6373:12;6342:53;;6387:7;6342:13;:53::i;:::-;-1:-1:-1;;;;;6432:13:19;;;;;;:8;:13;;;;;;:26;;6450:7;6432:26;:17;:26;:::i;:::-;-1:-1:-1;;;;;6416:13:19;;;;;;:8;:13;;;;;:42;6483:12;;:25;;6500:7;6483:25;:16;:25;:::i;:::-;6468:12;:40;6523:34;;;;;;;;-1:-1:-1;;;;;6523:34:19;;;6540:1;;-1:-1:-1;;;;;;;;;;;6523:34:19;;;;;;;;6572:55;;;6596:1;6572:55;;-1:-1:-1;;;;;6572:55:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6645:4:19;;6124:532;-1:-1:-1;;;;6124:532:19:o;8884:423::-;-1:-1:-1;;;;;8984:18:19;;8947:15;8984:18;;;:8;:18;;;;;;;;;9017:16;:26;;;;;:29;;;;;;;;;8984:18;;8947:15;9017:34;9013:47;;;9053:7;;9013:47;-1:-1:-1;9087:1:19;9070:231;-1:-1:-1;;;;;9094:22:19;;;;;;:12;:22;;;;;:29;9090:33;;9070:231;;;-1:-1:-1;;;;;9148:22:19;;;;;;:12;:22;;;;;:25;;9177:3;;9148:22;9171:1;;9148:25;;;;;;;;;;;;;;:32;;9144:147;;;-1:-1:-1;;;;;9222:26:19;;;;;;:16;:26;;;;;;;;9249:12;:22;;;;;:25;;9210:66;;9222:26;9249:22;9272:1;;9249:25;;;;;;;;;;;;;;9222:53;;;;;;;;;;;;9210:7;:11;;:66;;;;:::i;:::-;9200:76;;9144:147;9125:3;;9070:231;;;8884:423;;;;:::o;4923:277::-;5057:10;5001:4;5049:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;5049:29:19;;;;;;;;;;:46;;5083:11;5049:46;:33;:46;:::i;:::-;5025:10;5017:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;5017:29:19;;;;;;;;;;;;:78;;;5110:61;;;;;;5017:29;;5110:61;;;;;;;;;;;-1:-1:-1;5189:4:19;4923:277;;;;:::o;9313:109::-;-1:-1:-1;;;;;9385:23:19;;;;;:15;:23;;;;;:30;;-1:-1:-1;;9385:30:19;9411:4;9385:30;;;9313:109::o;4321:132::-;-1:-1:-1;;;;;4421:15:19;;;4395:7;4421:15;;;:7;:15;;;;;;;;:25;;;;;;;;;;;;;4321:132::o;1274:103:31:-;1343:29;1362:9;1343:18;:29::i;8413:465:19:-;-1:-1:-1;;;;;8476:23:19;;8531:9;8476:23;;;:16;:23;;;;;;;;:26;;;;;;;;;:31;8472:44;;;8509:7;;8472:44;-1:-1:-1;8543:1:19;8526:346;-1:-1:-1;;;;;8550:19:19;;;;;;:12;:19;;;;;:26;8546:30;;8526:346;;;-1:-1:-1;;;;;8601:19:19;;;;;;:12;:19;;;;;:22;;8626:3;;8601:19;8621:1;;8601:22;;;;;;;;;;;;;;:28;8597:265;;;-1:-1:-1;;;;;8730:23:19;;;;;;:16;:23;;;;;;;;8754:12;:19;;;;;:22;;8678:100;;8730:23;8754:19;8774:1;;8754:22;;;;;;;;;;;;;;;;;;8730:47;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8678:23:19;;;;:16;:23;;;;;:26;;;;;;;;;:100;:51;:100;:::i;:::-;-1:-1:-1;;;;;8649:23:19;;;;;;:16;:23;;;;;;;;:26;;;;;;;;;:129;;;;8796:23;;;8820:12;:19;;;;;:22;;8649:23;;;;;8820:19;8840:1;;8820:22;;;;;;;;;;;;;;8796:47;;;;;;;;;;;:51;;;;8597:265;8578:3;;8526:346;;1060:116:30;1120:7;1142:8;;;;1135:16;;;;-1:-1:-1;1164:7:30;;;1060:116::o;1238:128::-;1319:7;;;1339;;;;1332:15;;;;1238:128;;;;:::o;7901:506:19:-;7965:21;7981:4;7965:15;:21::i;:::-;8015:20;8030:4;8015:14;:20::i;:::-;8005:30;;;7997:39;;;;;;-1:-1:-1;;;;;8243:14:19;;;;;;:8;:14;;;;;;:26;;8262:6;8243:26;:18;:26;:::i;:::-;-1:-1:-1;;;;;8226:14:19;;;;;;:8;:14;;;;;:43;8294:12;;:24;;8311:6;8294:24;:16;:24;:::i;:::-;8279:12;:39;8333:18;;;;;;;;-1:-1:-1;;;;;8333:18:19;;;;;;;;;;;;;8366:34;;;;;;;;8389:1;;-1:-1:-1;;;;;8366:34:19;;;-1:-1:-1;;;;;;;;;;;8366:34:19;;;;;;;;7901:506;;:::o;6662:381::-;-1:-1:-1;;;;;6798:21:19;;;;;;:16;:21;;;;;;;;:24;;;;;;;;;:37;;6827:7;6798:37;:28;:37;:::i;:::-;-1:-1:-1;;;;;6771:21:19;;;;;;:16;:21;;;;;;;;:24;;;;;;;;;:64;;;;6849:35;;;;;:40;6846:93;;;-1:-1:-1;;;;;6903:17:19;;;;;;:12;:17;;;;;;;27:10:-1;;39:1;23:18;;45:23;;6903:36:19;;;;;;;;;6846:93;-1:-1:-1;;;;;6988:21:19;;;;;;:16;:21;;;;;;;;:35;;;;;;;;;:48;;7028:7;6988:48;:39;:48;:::i;:::-;-1:-1:-1;;;;;6950:21:19;;;;;;;:16;:21;;;;;;;;:35;;;;;;;;;;:86;;;;-1:-1:-1;;6662:381:19:o;1512:171:31:-;-1:-1:-1;;;;;1582:23:31;;;;1574:32;;;;;;1638:5;;1617:38;;-1:-1:-1;;;;;1617:38:31;;;;1638:5;;;;;1617:38;;;;;1661:5;:17;;-1:-1:-1;;;;;1661:17:31;;;;;-1:-1:-1;;1661:17:31;;;;;;;;;1512:171::o", + "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", "sourcePath": "/home/circleci/code/contracts/token/WTokenStub.sol", "ast": { "absolutePath": "/home/circleci/code/contracts/token/WTokenStub.sol", "exportedSymbols": { "WTokenStub": [ - 5956 + 8517 ] }, - "id": 5957, + "id": 8518, "nodeType": "SourceUnit", "nodes": [ { - "id": 5927, + "id": 8488, "literals": [ "solidity", "^", @@ -592,16 +592,16 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:20" + "src": "0:24:31" }, { "absolutePath": "/home/circleci/code/contracts/token/WToken.sol", "file": "./WToken.sol", - "id": 5928, + "id": 8489, "nodeType": "ImportDirective", - "scope": 5957, - "sourceUnit": 5926, - "src": "26:22:20", + "scope": 8518, + "sourceUnit": 8487, + "src": "26:22:31", "symbolAliases": [], "unitAlias": "" }, @@ -611,97 +611,99 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 5929, + "id": 8490, "name": "WToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5925, - "src": "74:6:20", + "referencedDeclaration": 8486, + "src": "74:6:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, - "id": 5930, + "id": 8491, "nodeType": "InheritanceSpecifier", - "src": "74:6:20" + "src": "74:6:31" } ], "contractDependencies": [ - 5925, - 6940, - 6974, - 7017, - 7049 + 7630, + 8486, + 9688, + 9722, + 9765, + 9797 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 5956, + "id": 8517, "linearizedBaseContracts": [ - 5956, - 5925, - 6940, - 6974, - 7017, - 7049 + 8517, + 8486, + 9688, + 7630, + 9722, + 9765, + 9797 ], "name": "WTokenStub", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 5933, + "id": 8494, "nodeType": "Block", - "src": "177:18:20", + "src": "177:18:31", "statements": [ { - "id": 5932, + "id": 8493, "nodeType": "PlaceholderStatement", - "src": "187:1:20" + "src": "187:1:31" } ] }, "documentation": "@dev Allows for any account besides the owner.", - "id": 5934, + "id": 8495, "name": "onlyOwner", "nodeType": "ModifierDefinition", "parameters": { - "id": 5931, + "id": 8492, "nodeType": "ParameterList", "parameters": [], - "src": "174:2:20" + "src": "174:2:31" }, - "src": "156:39:20", + "src": "156:39:31", "visibility": "internal" }, { "body": { - "id": 5939, + "id": 8500, "nodeType": "Block", - "src": "238:18:20", + "src": "238:18:31", "statements": [ { - "id": 5938, + "id": 8499, "nodeType": "PlaceholderStatement", - "src": "248:1:20" + "src": "248:1:31" } ] }, "documentation": null, - "id": 5940, + "id": 8501, "name": "onlyTrusted", "nodeType": "ModifierDefinition", "parameters": { - "id": 5937, + "id": 8498, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5936, + "id": 8497, "name": "caller", "nodeType": "VariableDeclaration", - "scope": 5940, - "src": "222:14:20", + "scope": 8501, + "src": "222:14:31", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -709,10 +711,10 @@ "typeString": "address" }, "typeName": { - "id": 5935, + "id": 8496, "name": "address", "nodeType": "ElementaryTypeName", - "src": "222:7:20", + "src": "222:7:31", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -722,20 +724,20 @@ "visibility": "internal" } ], - "src": "221:16:20" + "src": "221:16:31" }, - "src": "201:55:20", + "src": "201:55:31", "visibility": "internal" }, { "body": { - "id": 5954, + "id": 8515, "nodeType": "Block", - "src": "362:3:20", + "src": "362:3:31", "statements": [] }, "documentation": null, - "id": 5955, + "id": 8516, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -744,12 +746,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5949, + "id": 8510, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5942, - "src": "328:5:20", + "referencedDeclaration": 8503, + "src": "328:5:31", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -757,12 +759,12 @@ }, { "argumentTypes": null, - "id": 5950, + "id": 8511, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5944, - "src": "335:7:20", + "referencedDeclaration": 8505, + "src": "335:7:31", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -770,49 +772,49 @@ }, { "argumentTypes": null, - "id": 5951, + "id": 8512, "name": "_decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5946, - "src": "344:9:20", + "referencedDeclaration": 8507, + "src": "344:9:31", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } } ], - "id": 5952, + "id": 8513, "modifierName": { "argumentTypes": null, - "id": 5948, + "id": 8509, "name": "WToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5925, - "src": "321:6:20", + "referencedDeclaration": 8486, + "src": "321:6:31", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_WToken_$5925_$", + "typeIdentifier": "t_type$_t_contract$_WToken_$8486_$", "typeString": "type(contract WToken)" } }, "nodeType": "ModifierInvocation", - "src": "321:33:20" + "src": "321:33:31" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 5947, + "id": 8508, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5942, + "id": 8503, "name": "_name", "nodeType": "VariableDeclaration", - "scope": 5955, - "src": "274:12:20", + "scope": 8516, + "src": "274:12:31", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -820,10 +822,10 @@ "typeString": "string" }, "typeName": { - "id": 5941, + "id": 8502, "name": "string", "nodeType": "ElementaryTypeName", - "src": "274:6:20", + "src": "274:6:31", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -834,11 +836,11 @@ }, { "constant": false, - "id": 5944, + "id": 8505, "name": "_symbol", "nodeType": "VariableDeclaration", - "scope": 5955, - "src": "288:14:20", + "scope": 8516, + "src": "288:14:31", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -846,10 +848,10 @@ "typeString": "string" }, "typeName": { - "id": 5943, + "id": 8504, "name": "string", "nodeType": "ElementaryTypeName", - "src": "288:6:20", + "src": "288:6:31", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -860,11 +862,11 @@ }, { "constant": false, - "id": 5946, + "id": 8507, "name": "_decimals", "nodeType": "VariableDeclaration", - "scope": 5955, - "src": "304:15:20", + "scope": 8516, + "src": "304:15:31", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -872,10 +874,10 @@ "typeString": "uint8" }, "typeName": { - "id": 5945, + "id": 8506, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "304:5:20", + "src": "304:5:31", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -885,40 +887,40 @@ "visibility": "internal" } ], - "src": "273:47:20" + "src": "273:47:31" }, "payable": false, "returnParameters": { - "id": 5953, + "id": 8514, "nodeType": "ParameterList", "parameters": [], - "src": "362:0:20" + "src": "362:0:31" }, - "scope": 5956, - "src": "262:103:20", + "scope": 8517, + "src": "262:103:31", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 5957, - "src": "51:316:20" + "scope": 8518, + "src": "51:316:31" } ], - "src": "0:368:20" + "src": "0:368:31" }, "legacyAST": { "absolutePath": "/home/circleci/code/contracts/token/WTokenStub.sol", "exportedSymbols": { "WTokenStub": [ - 5956 + 8517 ] }, - "id": 5957, + "id": 8518, "nodeType": "SourceUnit", "nodes": [ { - "id": 5927, + "id": 8488, "literals": [ "solidity", "^", @@ -926,16 +928,16 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:20" + "src": "0:24:31" }, { "absolutePath": "/home/circleci/code/contracts/token/WToken.sol", "file": "./WToken.sol", - "id": 5928, + "id": 8489, "nodeType": "ImportDirective", - "scope": 5957, - "sourceUnit": 5926, - "src": "26:22:20", + "scope": 8518, + "sourceUnit": 8487, + "src": "26:22:31", "symbolAliases": [], "unitAlias": "" }, @@ -945,97 +947,99 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 5929, + "id": 8490, "name": "WToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5925, - "src": "74:6:20", + "referencedDeclaration": 8486, + "src": "74:6:31", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, - "id": 5930, + "id": 8491, "nodeType": "InheritanceSpecifier", - "src": "74:6:20" + "src": "74:6:31" } ], "contractDependencies": [ - 5925, - 6940, - 6974, - 7017, - 7049 + 7630, + 8486, + 9688, + 9722, + 9765, + 9797 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 5956, + "id": 8517, "linearizedBaseContracts": [ - 5956, - 5925, - 6940, - 6974, - 7017, - 7049 + 8517, + 8486, + 9688, + 7630, + 9722, + 9765, + 9797 ], "name": "WTokenStub", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 5933, + "id": 8494, "nodeType": "Block", - "src": "177:18:20", + "src": "177:18:31", "statements": [ { - "id": 5932, + "id": 8493, "nodeType": "PlaceholderStatement", - "src": "187:1:20" + "src": "187:1:31" } ] }, "documentation": "@dev Allows for any account besides the owner.", - "id": 5934, + "id": 8495, "name": "onlyOwner", "nodeType": "ModifierDefinition", "parameters": { - "id": 5931, + "id": 8492, "nodeType": "ParameterList", "parameters": [], - "src": "174:2:20" + "src": "174:2:31" }, - "src": "156:39:20", + "src": "156:39:31", "visibility": "internal" }, { "body": { - "id": 5939, + "id": 8500, "nodeType": "Block", - "src": "238:18:20", + "src": "238:18:31", "statements": [ { - "id": 5938, + "id": 8499, "nodeType": "PlaceholderStatement", - "src": "248:1:20" + "src": "248:1:31" } ] }, "documentation": null, - "id": 5940, + "id": 8501, "name": "onlyTrusted", "nodeType": "ModifierDefinition", "parameters": { - "id": 5937, + "id": 8498, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5936, + "id": 8497, "name": "caller", "nodeType": "VariableDeclaration", - "scope": 5940, - "src": "222:14:20", + "scope": 8501, + "src": "222:14:31", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1043,10 +1047,10 @@ "typeString": "address" }, "typeName": { - "id": 5935, + "id": 8496, "name": "address", "nodeType": "ElementaryTypeName", - "src": "222:7:20", + "src": "222:7:31", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1056,20 +1060,20 @@ "visibility": "internal" } ], - "src": "221:16:20" + "src": "221:16:31" }, - "src": "201:55:20", + "src": "201:55:31", "visibility": "internal" }, { "body": { - "id": 5954, + "id": 8515, "nodeType": "Block", - "src": "362:3:20", + "src": "362:3:31", "statements": [] }, "documentation": null, - "id": 5955, + "id": 8516, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -1078,12 +1082,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5949, + "id": 8510, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5942, - "src": "328:5:20", + "referencedDeclaration": 8503, + "src": "328:5:31", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -1091,12 +1095,12 @@ }, { "argumentTypes": null, - "id": 5950, + "id": 8511, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5944, - "src": "335:7:20", + "referencedDeclaration": 8505, + "src": "335:7:31", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -1104,49 +1108,49 @@ }, { "argumentTypes": null, - "id": 5951, + "id": 8512, "name": "_decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5946, - "src": "344:9:20", + "referencedDeclaration": 8507, + "src": "344:9:31", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } } ], - "id": 5952, + "id": 8513, "modifierName": { "argumentTypes": null, - "id": 5948, + "id": 8509, "name": "WToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5925, - "src": "321:6:20", + "referencedDeclaration": 8486, + "src": "321:6:31", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_WToken_$5925_$", + "typeIdentifier": "t_type$_t_contract$_WToken_$8486_$", "typeString": "type(contract WToken)" } }, "nodeType": "ModifierInvocation", - "src": "321:33:20" + "src": "321:33:31" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 5947, + "id": 8508, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5942, + "id": 8503, "name": "_name", "nodeType": "VariableDeclaration", - "scope": 5955, - "src": "274:12:20", + "scope": 8516, + "src": "274:12:31", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1154,10 +1158,10 @@ "typeString": "string" }, "typeName": { - "id": 5941, + "id": 8502, "name": "string", "nodeType": "ElementaryTypeName", - "src": "274:6:20", + "src": "274:6:31", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -1168,11 +1172,11 @@ }, { "constant": false, - "id": 5944, + "id": 8505, "name": "_symbol", "nodeType": "VariableDeclaration", - "scope": 5955, - "src": "288:14:20", + "scope": 8516, + "src": "288:14:31", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1180,10 +1184,10 @@ "typeString": "string" }, "typeName": { - "id": 5943, + "id": 8504, "name": "string", "nodeType": "ElementaryTypeName", - "src": "288:6:20", + "src": "288:6:31", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -1194,11 +1198,11 @@ }, { "constant": false, - "id": 5946, + "id": 8507, "name": "_decimals", "nodeType": "VariableDeclaration", - "scope": 5955, - "src": "304:15:20", + "scope": 8516, + "src": "304:15:31", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1206,10 +1210,10 @@ "typeString": "uint8" }, "typeName": { - "id": 5945, + "id": 8506, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "304:5:20", + "src": "304:5:31", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1219,27 +1223,27 @@ "visibility": "internal" } ], - "src": "273:47:20" + "src": "273:47:31" }, "payable": false, "returnParameters": { - "id": 5953, + "id": 8514, "nodeType": "ParameterList", "parameters": [], - "src": "362:0:20" + "src": "362:0:31" }, - "scope": 5956, - "src": "262:103:20", + "scope": 8517, + "src": "262:103:31", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 5957, - "src": "51:316:20" + "scope": 8518, + "src": "51:316:31" } ], - "src": "0:368:20" + "src": "0:368:31" }, "compiler": { "name": "solc", @@ -1249,10 +1253,10 @@ "4": { "events": {}, "links": {}, - "address": "0x6837c728a9e01afc66ae0ef90227db0cda429bd8", - "transactionHash": "0x80d60413eb33157c4fab09e1a7a0e63441efb0137b4ed39450e619d7c9dc0ee3" + "address": "0x9344c375dce0b91a30465b3df41ddd423a86f313", + "transactionHash": "0xe3f9d9c314f1ed7d0914324449def7b6481eea19667a295f7e8de379fae52cbf" } }, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-02T11:57:51.339Z" + "updatedAt": "2018-10-22T07:57:37.183Z" } \ No newline at end of file diff --git a/build/contracts/WTokenTestHelper.json b/build/contracts/WTokenTestHelper.json index f3436b6f..a0d08bcc 100644 --- a/build/contracts/WTokenTestHelper.json +++ b/build/contracts/WTokenTestHelper.json @@ -189,24 +189,24 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50611dd6806100206000396000f3006080604052600436106100745763ffffffff60e060020a60003504166304bc3b1c8114610079578063210f5dda146100ac5780634f64b2be1461016a5780639bb0f59914610182578063a4fa9bbd146101b7578063bd5dc202146101ea578063e4dc2aa41461024f578063f7888aec14610270575b600080fd5b34801561008557600080fd5b5061009a600160a060020a0360043516610297565b60408051918252519081900360200190f35b3480156100b857600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261014e94369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497505050833560ff169450505060209091013590506102a9565b60408051600160a060020a039092168252519081900360200190f35b34801561017657600080fd5b5061014e60043561057c565b34801561018e57600080fd5b506101a3600160a060020a03600435166105a4565b604080519115158252519081900360200190f35b3480156101c357600080fd5b506101a3600160a060020a036004358116906024351660443563ffffffff606435166105f1565b3480156101f657600080fd5b506101ff61071a565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561023b578181015183820152602001610223565b505050509050019250505060405180910390f35b34801561025b57600080fd5b5061009a600160a060020a036004351661077c565b34801561027c57600080fd5b5061009a600160a060020a0360043581169060243516610802565b60016020526000908152604090205481565b60008484846102b66108a6565b60ff82166040820152606080825284519082015283518190602080830191608084019188019080838360005b838110156102fa5781810151838201526020016102e2565b50505050905090810190601f1680156103275780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b8381101561035a578181015183820152602001610342565b50505050905090810190601f1680156103875780820380516001836020036101000a031916815260200191505b5095505050505050604051809103906000f0801580156103ab573d6000803e3d6000fd5b50604080517ff2fde38b0000000000000000000000000000000000000000000000000000000081523360048201529051919250600160a060020a0383169163f2fde38b9160248082019260009290919082900301818387803b15801561041057600080fd5b505af1158015610424573d6000803e3d6000fd5b505060008054600160a060020a0385168083526001602081905260408420839055820183558280527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563909101805473ffffffffffffffffffffffffffffffffffffffff191690911790558411159150610540905057604080517fd0047acf00000000000000000000000000000000000000000000000000000000815233600482015260ff8516600a0a840260248201526000604482018190529151600160a060020a0384169263d0047acf92606480820193602093909283900390910190829087803b15801561051357600080fd5b505af1158015610527573d6000803e3d6000fd5b505050506040513d602081101561053d57600080fd5b50505b604051600160a060020a038216907f0f53e2a811b6fd2d6cd965fd6c27b44fb924ca39f7a7f321115705c22366d62390600090a2949350505050565b600080548290811061058a57fe5b600091825260209091200154600160a060020a0316905081565b60008054811080156105eb5750600160a060020a038216600081815260016020526040812054815481106105d457fe5b600091825260209091200154600160a060020a0316145b92915050565b6000806105fd866105a4565b151561060857600080fd5b85905080600160a060020a031663d0047acf8683600160a060020a031663313ce5676040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561065957600080fd5b505af115801561066d573d6000803e3d6000fd5b505050506040513d602081101561068357600080fd5b50516040805163ffffffff85811660e060020a028252600160a060020a0394909416600482015260ff909216600a0a890260248301529187166044820152905160648083019260209291908290030181600087803b1580156106e457600080fd5b505af11580156106f8573d6000803e3d6000fd5b505050506040513d602081101561070e57600080fd5b50519695505050505050565b6060600080548060200260200160405190810160405280929190818152602001828054801561077257602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610754575b5050505050905090565b6000610787826105a4565b151561079257600080fd5b81600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156107d057600080fd5b505af11580156107e4573d6000803e3d6000fd5b505050506040513d60208110156107fa57600080fd5b505192915050565b600061080d836105a4565b151561081857600080fd5b82600160a060020a03166370a08231836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561087357600080fd5b505af1158015610887573d6000803e3d6000fd5b505050506040513d602081101561089d57600080fd5b50519392505050565b6040516114f4806108b783390190560060806040523480156200001157600080fd5b50604051620014f4380380620014f48339810160409081528151602080840151928401519184018051909493909301928491849184916200005891600091860190620000bf565b5081516200006e906001906020850190620000bf565b506002805433610100810261010060a860020a031960ff90951660ff199384161794909416939093179091556000918252600860205260409091208054909116600117905550620001649350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200010257805160ff191683800117855562000132565b8280016001018555821562000132579182015b828111156200013257825182559160200191906001019062000115565b506200014092915062000144565b5090565b6200016191905b808211156200014057600081556001016200014b565b90565b61138080620001746000396000f3006080604052600436106101325763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610137578063095ea7b3146101c157806318160ddd146101f957806323b872dd1461022057806327e235e31461024a578063313ce5671461026b57806342966c68146102965780634afbf5ee146102b057806366188463146102d457806370a08231146102f8578063715018a61461031957806379cc67901461032e5780638da5cb5b1461035257806395d89b41146103835780639d2e477714610398578063a9059cbb146103c5578063ba0e0f5e146103e9578063d0047acf1461040a578063d294cb0f14610437578063d73dd62314610458578063d88b86761461047c578063dd62ed3e1461049d578063f2fde38b146104c4575b600080fd5b34801561014357600080fd5b5061014c6104e5565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561018657818101518382015260200161016e565b50505050905090810190601f1680156101b35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101cd57600080fd5b506101e5600160a060020a0360043516602435610573565b604080519115158252519081900360200190f35b34801561020557600080fd5b5061020e6105d9565b60408051918252519081900360200190f35b34801561022c57600080fd5b506101e5600160a060020a03600435811690602435166044356105df565b34801561025657600080fd5b5061020e600160a060020a036004351661073f565b34801561027757600080fd5b50610280610751565b6040805160ff9092168252519081900360200190f35b3480156102a257600080fd5b506102ae60043561075a565b005b3480156102bc57600080fd5b5061020e600160a060020a0360043516602435610767565b3480156102e057600080fd5b506101e5600160a060020a0360043516602435610784565b34801561030457600080fd5b5061020e600160a060020a0360043516610873565b34801561032557600080fd5b506102ae61088e565b34801561033a57600080fd5b506102ae600160a060020a0360043516602435610906565b34801561035e57600080fd5b5061036761099c565b60408051600160a060020a039092168252519081900360200190f35b34801561038f57600080fd5b5061014c6109b0565b3480156103a457600080fd5b506101e5600160a060020a036004351660243563ffffffff60443516610a0a565b3480156103d157600080fd5b506101e5600160a060020a0360043516602435610ab6565b3480156103f557600080fd5b506102ae600160a060020a0360043516610b89565b34801561041657600080fd5b506101e5600160a060020a036004351660243563ffffffff60443516610bc6565b34801561044357600080fd5b5061020e600160a060020a0360043516610d0c565b34801561046457600080fd5b506101e5600160a060020a0360043516602435610e11565b34801561048857600080fd5b506102ae600160a060020a0360043516610eaa565b3480156104a957600080fd5b5061020e600160a060020a0360043581169060243516610eea565b3480156104d057600080fd5b506102ae600160a060020a0360043516610f15565b6000805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561056b5780601f106105405761010080835404028352916020019161056b565b820191906000526020600020905b81548152906001019060200180831161054e57829003601f168201915b505050505081565b336000818152600360209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60055490565b60006105ea84610f3a565b600160a060020a03831615156105ff57600080fd5b61060884610d0c565b82111561061457600080fd5b600160a060020a038416600090815260036020908152604080832033845290915290205482111561064457600080fd5b600160a060020a03841660009081526004602052604090205461066d908363ffffffff6110a916565b600160a060020a0380861660009081526004602052604080822093909355908516815220546106a2908363ffffffff6110bb16565b600160a060020a0380851660009081526004602090815260408083209490945591871681526003825282812033825290915220546106e6908363ffffffff6110a916565b600160a060020a0380861660008181526003602090815260408083203384528252918290209490945580518681529051928716939192600080516020611335833981519152929181900390910190a35060019392505050565b60046020526000908152604090205481565b60025460ff1681565b61076433826110ce565b50565b600660209081526000928352604080842090915290825290205481565b336000908152600360209081526040808320600160a060020a03861684529091528120548083106107d857336000908152600360209081526040808320600160a060020a038816845290915281205561080d565b6107e8818463ffffffff6110a916565b336000908152600360209081526040808320600160a060020a03891684529091529020555b336000818152600360209081526040808320600160a060020a0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b600160a060020a031660009081526004602052604090205490565b6002546101009004600160a060020a031633146108aa57600080fd5b600254604051610100909104600160a060020a0316907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26002805474ffffffffffffffffffffffffffffffffffffffff0019169055565b600160a060020a038216600090815260036020908152604080832033845290915290205481111561093657600080fd5b600160a060020a038216600090815260036020908152604080832033845290915290205461096a908263ffffffff6110a916565b600160a060020a038316600090815260036020908152604080832033845290915290205561099882826110ce565b5050565b6002546101009004600160a060020a031681565b60018054604080516020600284861615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561056b5780601f106105405761010080835404028352916020019161056b565b3360008181526008602052604081205490919060ff161515610a2b57600080fd5b610a358585610ab6565b50428363ffffffff161115610a5757610a576000868563ffffffff16876111b6565b60408051338152600160a060020a038716602082015280820186905263ffffffff8516606082015290517f5075049792a88eedfe4e60bb3ffeac77b4fa7f03108b81fb0b460161b983e2009181900360800190a1506001949350505050565b6000610ac133610f3a565b600160a060020a0383161515610ad657600080fd5b610adf33610d0c565b821115610aeb57600080fd5b33600090815260046020526040902054610b0b908363ffffffff6110a916565b3360009081526004602052604080822092909255600160a060020a03851681522054610b3d908363ffffffff6110bb16565b600160a060020a0384166000818152600460209081526040918290209390935580518581529051919233926000805160206113358339815191529281900390910190a350600192915050565b6002546101009004600160a060020a03163314610ba557600080fd5b600160a060020a03166000908152600860205260409020805460ff19169055565b3360008181526008602052604081205490919060ff161515610be757600080fd5b600554610bfa818663ffffffff6110bb16565b11610c0457600080fd5b428363ffffffff161115610c2557610c256000868563ffffffff16876111b6565b600160a060020a038516600090815260046020526040902054610c4e908563ffffffff6110bb16565b600160a060020a038616600090815260046020526040902055600554610c7a908563ffffffff6110bb16565b600555604080518581529051600160a060020a038716916000916000805160206113358339815191529181900360200190a36040805160008152600160a060020a038716602082015280820186905263ffffffff8516606082015290517f5075049792a88eedfe4e60bb3ffeac77b4fa7f03108b81fb0b460161b983e2009181900360800190a1506001949350505050565b600160a060020a038116600090815260046020908152604080832054600683528184208480529092528220549091901515610d4657610e0b565b5060005b600160a060020a038316600090815260076020526040902054811015610e0b57600160a060020a0383166000908152600760205260409020805442919083908110610d9157fe5b9060005260206000200154101515610e0357600160a060020a0383166000908152600660209081526040808320600790925282208054610e0093919085908110610dd757fe5b9060005260206000200154815260200190815260200160002054836110a990919063ffffffff16565b91505b600101610d4a565b50919050565b336000908152600360209081526040808320600160a060020a0386168452909152812054610e45908363ffffffff6110bb16565b336000818152600360209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b6002546101009004600160a060020a03163314610ec657600080fd5b600160a060020a03166000908152600860205260409020805460ff19166001179055565b600160a060020a03918216600090815260036020908152604080832093909416825291909152205490565b6002546101009004600160a060020a03163314610f3157600080fd5b610764816112ab565b600160a060020a03811660009081526006602090815260408083208380529091528120541515610f6957610998565b5060005b600160a060020a03821660009081526007602052604090205481101561099857600160a060020a0382166000908152600760205260409020805442919083908110610fb457fe5b906000526020600020015410156110a157600160a060020a038216600090815260066020908152604080832060079092528220805461103f93919085908110610ff957fe5b60009182526020808320909101548352828101939093526040918201812054600160a060020a03871682526006845282822082805290935220549063ffffffff6110a916565b600160a060020a0383166000818152600660209081526040808320838052808352818420959095559282526007905290812080549192918391908590811061108357fe5b90600052602060002001548152602001908152602001600020819055505b600101610f6d565b6000828211156110b557fe5b50900390565b818101828110156110c857fe5b92915050565b6110d782610f3a565b6110e082610d0c565b8111156110ec57600080fd5b600160a060020a038216600090815260046020526040902054611115908263ffffffff6110a916565b600160a060020a038316600090815260046020526040902055600554611141908263ffffffff6110a916565b600555604080518281529051600160a060020a038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a2604080518281529051600091600160a060020a038516916000805160206113358339815191529181900360200190a35050565b600160a060020a03831660009081526006602090815260408083208380529091529020546111ea908263ffffffff6110bb16565b600160a060020a0384166000908152600660209081526040808320838052909152808220929092558381522054151561124957600160a060020a0383166000908152600760209081526040822080546001810182559083529120018290555b600160a060020a038316600090815260066020908152604080832085845290915290205461127d908263ffffffff6110bb16565b600160a060020a03909316600090815260066020908152604080832094835293905291909120919091555050565b600160a060020a03811615156112c057600080fd5b600254604051600160a060020a0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360028054600160a060020a039092166101000274ffffffffffffffffffffffffffffffffffffffff00199092169190911790555600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582032e10203dcbab0ee1413110ee779200c5145d19d538d974c007e2d373697c5e70029a165627a7a723058204f5bbcea3e971386ffb842655ad5710f28023ac8697c08d64e1f413ee4da307b0029", - "deployedBytecode": "0x6080604052600436106100745763ffffffff60e060020a60003504166304bc3b1c8114610079578063210f5dda146100ac5780634f64b2be1461016a5780639bb0f59914610182578063a4fa9bbd146101b7578063bd5dc202146101ea578063e4dc2aa41461024f578063f7888aec14610270575b600080fd5b34801561008557600080fd5b5061009a600160a060020a0360043516610297565b60408051918252519081900360200190f35b3480156100b857600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261014e94369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497505050833560ff169450505060209091013590506102a9565b60408051600160a060020a039092168252519081900360200190f35b34801561017657600080fd5b5061014e60043561057c565b34801561018e57600080fd5b506101a3600160a060020a03600435166105a4565b604080519115158252519081900360200190f35b3480156101c357600080fd5b506101a3600160a060020a036004358116906024351660443563ffffffff606435166105f1565b3480156101f657600080fd5b506101ff61071a565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561023b578181015183820152602001610223565b505050509050019250505060405180910390f35b34801561025b57600080fd5b5061009a600160a060020a036004351661077c565b34801561027c57600080fd5b5061009a600160a060020a0360043581169060243516610802565b60016020526000908152604090205481565b60008484846102b66108a6565b60ff82166040820152606080825284519082015283518190602080830191608084019188019080838360005b838110156102fa5781810151838201526020016102e2565b50505050905090810190601f1680156103275780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b8381101561035a578181015183820152602001610342565b50505050905090810190601f1680156103875780820380516001836020036101000a031916815260200191505b5095505050505050604051809103906000f0801580156103ab573d6000803e3d6000fd5b50604080517ff2fde38b0000000000000000000000000000000000000000000000000000000081523360048201529051919250600160a060020a0383169163f2fde38b9160248082019260009290919082900301818387803b15801561041057600080fd5b505af1158015610424573d6000803e3d6000fd5b505060008054600160a060020a0385168083526001602081905260408420839055820183558280527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563909101805473ffffffffffffffffffffffffffffffffffffffff191690911790558411159150610540905057604080517fd0047acf00000000000000000000000000000000000000000000000000000000815233600482015260ff8516600a0a840260248201526000604482018190529151600160a060020a0384169263d0047acf92606480820193602093909283900390910190829087803b15801561051357600080fd5b505af1158015610527573d6000803e3d6000fd5b505050506040513d602081101561053d57600080fd5b50505b604051600160a060020a038216907f0f53e2a811b6fd2d6cd965fd6c27b44fb924ca39f7a7f321115705c22366d62390600090a2949350505050565b600080548290811061058a57fe5b600091825260209091200154600160a060020a0316905081565b60008054811080156105eb5750600160a060020a038216600081815260016020526040812054815481106105d457fe5b600091825260209091200154600160a060020a0316145b92915050565b6000806105fd866105a4565b151561060857600080fd5b85905080600160a060020a031663d0047acf8683600160a060020a031663313ce5676040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561065957600080fd5b505af115801561066d573d6000803e3d6000fd5b505050506040513d602081101561068357600080fd5b50516040805163ffffffff85811660e060020a028252600160a060020a0394909416600482015260ff909216600a0a890260248301529187166044820152905160648083019260209291908290030181600087803b1580156106e457600080fd5b505af11580156106f8573d6000803e3d6000fd5b505050506040513d602081101561070e57600080fd5b50519695505050505050565b6060600080548060200260200160405190810160405280929190818152602001828054801561077257602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610754575b5050505050905090565b6000610787826105a4565b151561079257600080fd5b81600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156107d057600080fd5b505af11580156107e4573d6000803e3d6000fd5b505050506040513d60208110156107fa57600080fd5b505192915050565b600061080d836105a4565b151561081857600080fd5b82600160a060020a03166370a08231836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561087357600080fd5b505af1158015610887573d6000803e3d6000fd5b505050506040513d602081101561089d57600080fd5b50519392505050565b6040516114f4806108b783390190560060806040523480156200001157600080fd5b50604051620014f4380380620014f48339810160409081528151602080840151928401519184018051909493909301928491849184916200005891600091860190620000bf565b5081516200006e906001906020850190620000bf565b506002805433610100810261010060a860020a031960ff90951660ff199384161794909416939093179091556000918252600860205260409091208054909116600117905550620001649350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200010257805160ff191683800117855562000132565b8280016001018555821562000132579182015b828111156200013257825182559160200191906001019062000115565b506200014092915062000144565b5090565b6200016191905b808211156200014057600081556001016200014b565b90565b61138080620001746000396000f3006080604052600436106101325763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610137578063095ea7b3146101c157806318160ddd146101f957806323b872dd1461022057806327e235e31461024a578063313ce5671461026b57806342966c68146102965780634afbf5ee146102b057806366188463146102d457806370a08231146102f8578063715018a61461031957806379cc67901461032e5780638da5cb5b1461035257806395d89b41146103835780639d2e477714610398578063a9059cbb146103c5578063ba0e0f5e146103e9578063d0047acf1461040a578063d294cb0f14610437578063d73dd62314610458578063d88b86761461047c578063dd62ed3e1461049d578063f2fde38b146104c4575b600080fd5b34801561014357600080fd5b5061014c6104e5565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561018657818101518382015260200161016e565b50505050905090810190601f1680156101b35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101cd57600080fd5b506101e5600160a060020a0360043516602435610573565b604080519115158252519081900360200190f35b34801561020557600080fd5b5061020e6105d9565b60408051918252519081900360200190f35b34801561022c57600080fd5b506101e5600160a060020a03600435811690602435166044356105df565b34801561025657600080fd5b5061020e600160a060020a036004351661073f565b34801561027757600080fd5b50610280610751565b6040805160ff9092168252519081900360200190f35b3480156102a257600080fd5b506102ae60043561075a565b005b3480156102bc57600080fd5b5061020e600160a060020a0360043516602435610767565b3480156102e057600080fd5b506101e5600160a060020a0360043516602435610784565b34801561030457600080fd5b5061020e600160a060020a0360043516610873565b34801561032557600080fd5b506102ae61088e565b34801561033a57600080fd5b506102ae600160a060020a0360043516602435610906565b34801561035e57600080fd5b5061036761099c565b60408051600160a060020a039092168252519081900360200190f35b34801561038f57600080fd5b5061014c6109b0565b3480156103a457600080fd5b506101e5600160a060020a036004351660243563ffffffff60443516610a0a565b3480156103d157600080fd5b506101e5600160a060020a0360043516602435610ab6565b3480156103f557600080fd5b506102ae600160a060020a0360043516610b89565b34801561041657600080fd5b506101e5600160a060020a036004351660243563ffffffff60443516610bc6565b34801561044357600080fd5b5061020e600160a060020a0360043516610d0c565b34801561046457600080fd5b506101e5600160a060020a0360043516602435610e11565b34801561048857600080fd5b506102ae600160a060020a0360043516610eaa565b3480156104a957600080fd5b5061020e600160a060020a0360043581169060243516610eea565b3480156104d057600080fd5b506102ae600160a060020a0360043516610f15565b6000805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561056b5780601f106105405761010080835404028352916020019161056b565b820191906000526020600020905b81548152906001019060200180831161054e57829003601f168201915b505050505081565b336000818152600360209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60055490565b60006105ea84610f3a565b600160a060020a03831615156105ff57600080fd5b61060884610d0c565b82111561061457600080fd5b600160a060020a038416600090815260036020908152604080832033845290915290205482111561064457600080fd5b600160a060020a03841660009081526004602052604090205461066d908363ffffffff6110a916565b600160a060020a0380861660009081526004602052604080822093909355908516815220546106a2908363ffffffff6110bb16565b600160a060020a0380851660009081526004602090815260408083209490945591871681526003825282812033825290915220546106e6908363ffffffff6110a916565b600160a060020a0380861660008181526003602090815260408083203384528252918290209490945580518681529051928716939192600080516020611335833981519152929181900390910190a35060019392505050565b60046020526000908152604090205481565b60025460ff1681565b61076433826110ce565b50565b600660209081526000928352604080842090915290825290205481565b336000908152600360209081526040808320600160a060020a03861684529091528120548083106107d857336000908152600360209081526040808320600160a060020a038816845290915281205561080d565b6107e8818463ffffffff6110a916565b336000908152600360209081526040808320600160a060020a03891684529091529020555b336000818152600360209081526040808320600160a060020a0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b600160a060020a031660009081526004602052604090205490565b6002546101009004600160a060020a031633146108aa57600080fd5b600254604051610100909104600160a060020a0316907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26002805474ffffffffffffffffffffffffffffffffffffffff0019169055565b600160a060020a038216600090815260036020908152604080832033845290915290205481111561093657600080fd5b600160a060020a038216600090815260036020908152604080832033845290915290205461096a908263ffffffff6110a916565b600160a060020a038316600090815260036020908152604080832033845290915290205561099882826110ce565b5050565b6002546101009004600160a060020a031681565b60018054604080516020600284861615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561056b5780601f106105405761010080835404028352916020019161056b565b3360008181526008602052604081205490919060ff161515610a2b57600080fd5b610a358585610ab6565b50428363ffffffff161115610a5757610a576000868563ffffffff16876111b6565b60408051338152600160a060020a038716602082015280820186905263ffffffff8516606082015290517f5075049792a88eedfe4e60bb3ffeac77b4fa7f03108b81fb0b460161b983e2009181900360800190a1506001949350505050565b6000610ac133610f3a565b600160a060020a0383161515610ad657600080fd5b610adf33610d0c565b821115610aeb57600080fd5b33600090815260046020526040902054610b0b908363ffffffff6110a916565b3360009081526004602052604080822092909255600160a060020a03851681522054610b3d908363ffffffff6110bb16565b600160a060020a0384166000818152600460209081526040918290209390935580518581529051919233926000805160206113358339815191529281900390910190a350600192915050565b6002546101009004600160a060020a03163314610ba557600080fd5b600160a060020a03166000908152600860205260409020805460ff19169055565b3360008181526008602052604081205490919060ff161515610be757600080fd5b600554610bfa818663ffffffff6110bb16565b11610c0457600080fd5b428363ffffffff161115610c2557610c256000868563ffffffff16876111b6565b600160a060020a038516600090815260046020526040902054610c4e908563ffffffff6110bb16565b600160a060020a038616600090815260046020526040902055600554610c7a908563ffffffff6110bb16565b600555604080518581529051600160a060020a038716916000916000805160206113358339815191529181900360200190a36040805160008152600160a060020a038716602082015280820186905263ffffffff8516606082015290517f5075049792a88eedfe4e60bb3ffeac77b4fa7f03108b81fb0b460161b983e2009181900360800190a1506001949350505050565b600160a060020a038116600090815260046020908152604080832054600683528184208480529092528220549091901515610d4657610e0b565b5060005b600160a060020a038316600090815260076020526040902054811015610e0b57600160a060020a0383166000908152600760205260409020805442919083908110610d9157fe5b9060005260206000200154101515610e0357600160a060020a0383166000908152600660209081526040808320600790925282208054610e0093919085908110610dd757fe5b9060005260206000200154815260200190815260200160002054836110a990919063ffffffff16565b91505b600101610d4a565b50919050565b336000908152600360209081526040808320600160a060020a0386168452909152812054610e45908363ffffffff6110bb16565b336000818152600360209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b6002546101009004600160a060020a03163314610ec657600080fd5b600160a060020a03166000908152600860205260409020805460ff19166001179055565b600160a060020a03918216600090815260036020908152604080832093909416825291909152205490565b6002546101009004600160a060020a03163314610f3157600080fd5b610764816112ab565b600160a060020a03811660009081526006602090815260408083208380529091528120541515610f6957610998565b5060005b600160a060020a03821660009081526007602052604090205481101561099857600160a060020a0382166000908152600760205260409020805442919083908110610fb457fe5b906000526020600020015410156110a157600160a060020a038216600090815260066020908152604080832060079092528220805461103f93919085908110610ff957fe5b60009182526020808320909101548352828101939093526040918201812054600160a060020a03871682526006845282822082805290935220549063ffffffff6110a916565b600160a060020a0383166000818152600660209081526040808320838052808352818420959095559282526007905290812080549192918391908590811061108357fe5b90600052602060002001548152602001908152602001600020819055505b600101610f6d565b6000828211156110b557fe5b50900390565b818101828110156110c857fe5b92915050565b6110d782610f3a565b6110e082610d0c565b8111156110ec57600080fd5b600160a060020a038216600090815260046020526040902054611115908263ffffffff6110a916565b600160a060020a038316600090815260046020526040902055600554611141908263ffffffff6110a916565b600555604080518281529051600160a060020a038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a2604080518281529051600091600160a060020a038516916000805160206113358339815191529181900360200190a35050565b600160a060020a03831660009081526006602090815260408083208380529091529020546111ea908263ffffffff6110bb16565b600160a060020a0384166000908152600660209081526040808320838052909152808220929092558381522054151561124957600160a060020a0383166000908152600760209081526040822080546001810182559083529120018290555b600160a060020a038316600090815260066020908152604080832085845290915290205461127d908263ffffffff6110bb16565b600160a060020a03909316600090815260066020908152604080832094835293905291909120919091555050565b600160a060020a03811615156112c057600080fd5b600254604051600160a060020a0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360028054600160a060020a039092166101000274ffffffffffffffffffffffffffffffffffffffff00199092169190911790555600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582032e10203dcbab0ee1413110ee779200c5145d19d538d974c007e2d373697c5e70029a165627a7a723058204f5bbcea3e971386ffb842655ad5710f28023ac8697c08d64e1f413ee4da307b0029", - "sourceMap": "51:1551:21:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;51:1551:21;;;;;;;", - "deployedSourceMap": "51:1551:21:-;;;;;;;;;-1:-1:-1;;;51:1551:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;112:47;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;112:47:21;-1:-1:-1;;;;;112:47:21;;;;;;;;;;;;;;;;;;;;;217:469;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;217:469:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;217:469:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;217:469:21;;;;-1:-1:-1;217:469:21;-1:-1:-1;217:469:21;;-1:-1:-1;217:469:21;;;;;;;;-1:-1:-1;217:469:21;;-1:-1:-1;;;217:469:21;;;;;-1:-1:-1;;;217:469:21;;;;;;-1:-1:-1;217:469:21;;;;;;-1:-1:-1;;;;;217:469:21;;;;;;;;;;;;;;83:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;83:23:21;;;;;781:162;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;781:162:21;-1:-1:-1;;;;;781:162:21;;;;;;;;;;;;;;;;;;;;;;;949:281;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;949:281:21;-1:-1:-1;;;;;949:281:21;;;;;;;;;;;;;;;;692:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;692:83:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;692:83:21;;;;;;;;;;;;;;;;;1430:170;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1430:170:21;-1:-1:-1;;;;;1430:170:21;;;;;1236:188;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1236:188:21;-1:-1:-1;;;;;1236:188:21;;;;;;;;;;112:47;;;;;;;;;;;;;:::o;217:469::-;320:12;363:5;370:7;379:9;352: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;352:37:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;352:37: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;352:37:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;399:35:21;;;;;;423:10;399:35;;;;;;344:45;;-1:-1:-1;;;;;;399:23:21;;;;;:35;;;;;-1:-1:-1;;399:35:21;;;;;;;;-1:-1:-1;399:23:21;:35;;;5:2:-1;;;;30:1;27;20:12;5:2;399:35:21;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;476:6:21;:13;;-1:-1:-1;;;;;445:28:21;;;;;:12;:28;;;;;;;:44;;;23:18:-1;;45:23;;499:27:21;;;;;;;;;-1:-1:-1;;499:27:21;;;;;;541:17;;537:112;;-1:-1:-1;537:112:21;;-1:-1:-1;537:112:21;574:64;;;;;;585:10;574:64;;;;619:15;;;613:2;:21;597:37;;574:64;;;;636:1;574:64;;;;;;;;-1:-1:-1;;;;;574:10:21;;;;;:64;;;;;;;;;;;;;;;;;;:10;:64;;;5:2:-1;;;;30:1;27;20:12;5:2;574:64:21;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;574:64:21;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;537:112:21;664:15;;-1:-1:-1;;;;;664:15:21;;;;;;;;217:469;;;;;;:::o;83:23::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;83:23:21;;-1:-1:-1;83:23:21;:::o;781:162::-;842:4;865:13;;:17;-1:-1:-1;865:71:21;;;;-1:-1:-1;;;;;;886:50:21;;:6;893:26;;;:12;:26;;;;;;886:34;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;886:34:21;:50;865:71;858:78;781:162;-1:-1:-1;;781:162:21:o;949:281::-;1046:4;1104:12;1070:22;1079:12;1070:8;:22::i;:::-;1062:31;;;;;;;;1126:12;1104:35;;1157:5;-1:-1:-1;;;;;1157:10:21;;1168:2;1192:5;-1:-1:-1;;;;;1192:14:21;;:16;;;;;-1:-1:-1;;;1192:16:21;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1192:16:21;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1192:16:21;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1192:16:21;1157:66;;;;;;;-1:-1:-1;;;1157:66:21;;;-1:-1:-1;;;;;1157:66:21;;;;;;;;1187:22;;;;1181:2;:28;1172:37;;1157:66;;;;;;;;;;;;;;;;;;1192:16;;1157:66;;;;;;;-1:-1:-1;1157:66:21;;;;5:2:-1;;;;30:1;27;20:12;5:2;1157:66:21;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1157:66:21;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1157:66:21;;949:281;-1:-1:-1;;;;;;949:281:21:o;692:83::-;734:9;762:6;755:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;755:13:21;;;;;;;;;;;;;;;;;;;;;;;692:83;:::o;1430:170::-;1494:4;1518:22;1527:12;1518:8;:22::i;:::-;1510:31;;;;;;;;1566:12;-1:-1:-1;;;;;1559:32:21;;:34;;;;;-1:-1:-1;;;1559:34:21;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1559:34:21;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1559:34:21;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1559:34:21;;1430:170;-1:-1:-1;;1430:170:21:o;1236:188::-;1314:4;1338:22;1347:12;1338:8;:22::i;:::-;1330:31;;;;;;;;1386:12;-1:-1:-1;;;;;1379:30:21;;1410:6;1379:38;;;;;-1:-1:-1;;;1379:38:21;;;;;;;-1:-1:-1;;;;;1379:38:21;-1:-1:-1;;;;;1379:38:21;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1379:38:21;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1379:38:21;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1379:38:21;;1236:188;-1:-1:-1;;;1236:188:21:o;51:1551::-;;;;;;;;;;:::o", + "bytecode": "0x608060405234801561001057600080fd5b50611da8806100206000396000f3006080604052600436106100745763ffffffff60e060020a60003504166304bc3b1c8114610079578063210f5dda146100ac5780634f64b2be1461016a5780639bb0f59914610182578063a4fa9bbd146101b7578063bd5dc202146101ea578063e4dc2aa41461024f578063f7888aec14610270575b600080fd5b34801561008557600080fd5b5061009a600160a060020a0360043516610297565b60408051918252519081900360200190f35b3480156100b857600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261014e94369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497505050833560ff169450505060209091013590506102a9565b60408051600160a060020a039092168252519081900360200190f35b34801561017657600080fd5b5061014e60043561057c565b34801561018e57600080fd5b506101a3600160a060020a03600435166105a4565b604080519115158252519081900360200190f35b3480156101c357600080fd5b506101a3600160a060020a036004358116906024351660443563ffffffff606435166105f1565b3480156101f657600080fd5b506101ff61071a565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561023b578181015183820152602001610223565b505050509050019250505060405180910390f35b34801561025b57600080fd5b5061009a600160a060020a036004351661077c565b34801561027c57600080fd5b5061009a600160a060020a0360043581169060243516610802565b60016020526000908152604090205481565b60008484846102b66108a6565b60ff82166040820152606080825284519082015283518190602080830191608084019188019080838360005b838110156102fa5781810151838201526020016102e2565b50505050905090810190601f1680156103275780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b8381101561035a578181015183820152602001610342565b50505050905090810190601f1680156103875780820380516001836020036101000a031916815260200191505b5095505050505050604051809103906000f0801580156103ab573d6000803e3d6000fd5b50604080517ff2fde38b0000000000000000000000000000000000000000000000000000000081523360048201529051919250600160a060020a0383169163f2fde38b9160248082019260009290919082900301818387803b15801561041057600080fd5b505af1158015610424573d6000803e3d6000fd5b505060008054600160a060020a0385168083526001602081905260408420839055820183558280527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563909101805473ffffffffffffffffffffffffffffffffffffffff191690911790558411159150610540905057604080517fd0047acf00000000000000000000000000000000000000000000000000000000815233600482015260ff8516600a0a840260248201526000604482018190529151600160a060020a0384169263d0047acf92606480820193602093909283900390910190829087803b15801561051357600080fd5b505af1158015610527573d6000803e3d6000fd5b505050506040513d602081101561053d57600080fd5b50505b604051600160a060020a038216907f0f53e2a811b6fd2d6cd965fd6c27b44fb924ca39f7a7f321115705c22366d62390600090a2949350505050565b600080548290811061058a57fe5b600091825260209091200154600160a060020a0316905081565b60008054811080156105eb5750600160a060020a038216600081815260016020526040812054815481106105d457fe5b600091825260209091200154600160a060020a0316145b92915050565b6000806105fd866105a4565b151561060857600080fd5b85905080600160a060020a031663d0047acf8683600160a060020a031663313ce5676040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561065957600080fd5b505af115801561066d573d6000803e3d6000fd5b505050506040513d602081101561068357600080fd5b50516040805163ffffffff85811660e060020a028252600160a060020a0394909416600482015260ff909216600a0a890260248301529187166044820152905160648083019260209291908290030181600087803b1580156106e457600080fd5b505af11580156106f8573d6000803e3d6000fd5b505050506040513d602081101561070e57600080fd5b50519695505050505050565b6060600080548060200260200160405190810160405280929190818152602001828054801561077257602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610754575b5050505050905090565b6000610787826105a4565b151561079257600080fd5b81600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156107d057600080fd5b505af11580156107e4573d6000803e3d6000fd5b505050506040513d60208110156107fa57600080fd5b505192915050565b600061080d836105a4565b151561081857600080fd5b82600160a060020a03166370a08231836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561087357600080fd5b505af1158015610887573d6000803e3d6000fd5b505050506040513d602081101561089d57600080fd5b50519392505050565b6040516114c6806108b783390190560060806040523480156200001157600080fd5b50604051620014c6380380620014c68339810160409081528151602080840151928401519184018051909493909301928491849184916200005891600091860190620000ba565b5081516200006e906001906020850190620000ba565b506002805460ff90921660ff1992831617905560058054600160a060020a031916339081179091556000908152600b6020526040902080549091166001179055506200015f9350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620000fd57805160ff19168380011785556200012d565b828001600101855582156200012d579182015b828111156200012d57825182559160200191906001019062000110565b506200013b9291506200013f565b5090565b6200015c91905b808211156200013b576000815560010162000146565b90565b611357806200016f6000396000f3006080604052600436106101325763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610137578063095ea7b3146101c157806318160ddd146101f957806323b872dd1461022057806327e235e31461024a578063313ce5671461026b57806342966c68146102965780634afbf5ee146102b057806366188463146102d457806370a08231146102f8578063715018a61461031957806379cc67901461032e5780638da5cb5b1461035257806395d89b41146103835780639d2e477714610398578063a9059cbb146103c5578063ba0e0f5e146103e9578063d0047acf1461040a578063d294cb0f14610437578063d73dd62314610458578063d88b86761461047c578063dd62ed3e1461049d578063f2fde38b146104c4575b600080fd5b34801561014357600080fd5b5061014c6104e5565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561018657818101518382015260200161016e565b50505050905090810190601f1680156101b35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101cd57600080fd5b506101e5600160a060020a0360043516602435610573565b604080519115158252519081900360200190f35b34801561020557600080fd5b5061020e6105d9565b60408051918252519081900360200190f35b34801561022c57600080fd5b506101e5600160a060020a03600435811690602435166044356105df565b34801561025657600080fd5b5061020e600160a060020a036004351661073f565b34801561027757600080fd5b50610280610751565b6040805160ff9092168252519081900360200190f35b3480156102a257600080fd5b506102ae60043561075a565b005b3480156102bc57600080fd5b5061020e600160a060020a0360043516602435610767565b3480156102e057600080fd5b506101e5600160a060020a0360043516602435610784565b34801561030457600080fd5b5061020e600160a060020a0360043516610873565b34801561032557600080fd5b506102ae61088e565b34801561033a57600080fd5b506102ae600160a060020a03600435166024356108fc565b34801561035e57600080fd5b50610367610992565b60408051600160a060020a039092168252519081900360200190f35b34801561038f57600080fd5b5061014c6109a1565b3480156103a457600080fd5b506101e5600160a060020a036004351660243563ffffffff604435166109fb565b3480156103d157600080fd5b506101e5600160a060020a0360043516602435610aa7565b3480156103f557600080fd5b506102ae600160a060020a0360043516610b7a565b34801561041657600080fd5b506101e5600160a060020a036004351660243563ffffffff60443516610bb2565b34801561044357600080fd5b5061020e600160a060020a0360043516610cf8565b34801561046457600080fd5b506101e5600160a060020a0360043516602435610dfd565b34801561048857600080fd5b506102ae600160a060020a0360043516610e96565b3480156104a957600080fd5b5061020e600160a060020a0360043581169060243516610ed1565b3480156104d057600080fd5b506102ae600160a060020a0360043516610efc565b6000805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561056b5780601f106105405761010080835404028352916020019161056b565b820191906000526020600020905b81548152906001019060200180831161054e57829003601f168201915b505050505081565b336000818152600660209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60085490565b60006105ea84610f1c565b600160a060020a03831615156105ff57600080fd5b61060884610cf8565b82111561061457600080fd5b600160a060020a038416600090815260066020908152604080832033845290915290205482111561064457600080fd5b600160a060020a03841660009081526007602052604090205461066d908363ffffffff61108b16565b600160a060020a0380861660009081526007602052604080822093909355908516815220546106a2908363ffffffff61109d16565b600160a060020a0380851660009081526007602090815260408083209490945591871681526006825282812033825290915220546106e6908363ffffffff61108b16565b600160a060020a038086166000818152600660209081526040808320338452825291829020949094558051868152905192871693919260008051602061130c833981519152929181900390910190a35060019392505050565b60076020526000908152604090205481565b60025460ff1681565b61076433826110b0565b50565b600960209081526000928352604080842090915290825290205481565b336000908152600660209081526040808320600160a060020a03861684529091528120548083106107d857336000908152600660209081526040808320600160a060020a038816845290915281205561080d565b6107e8818463ffffffff61108b16565b336000908152600660209081526040808320600160a060020a03891684529091529020555b336000818152600660209081526040808320600160a060020a0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b600160a060020a031660009081526007602052604090205490565b600554600160a060020a031633146108a557600080fd5b600554604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26005805473ffffffffffffffffffffffffffffffffffffffff19169055565b600160a060020a038216600090815260066020908152604080832033845290915290205481111561092c57600080fd5b600160a060020a0382166000908152600660209081526040808320338452909152902054610960908263ffffffff61108b16565b600160a060020a038316600090815260066020908152604080832033845290915290205561098e82826110b0565b5050565b600554600160a060020a031681565b60018054604080516020600284861615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561056b5780601f106105405761010080835404028352916020019161056b565b336000818152600b602052604081205490919060ff161515610a1c57600080fd5b610a268585610aa7565b50428363ffffffff161115610a4857610a486000868563ffffffff1687611198565b60408051338152600160a060020a038716602082015280820186905263ffffffff8516606082015290517f5075049792a88eedfe4e60bb3ffeac77b4fa7f03108b81fb0b460161b983e2009181900360800190a1506001949350505050565b6000610ab233610f1c565b600160a060020a0383161515610ac757600080fd5b610ad033610cf8565b821115610adc57600080fd5b33600090815260076020526040902054610afc908363ffffffff61108b16565b3360009081526007602052604080822092909255600160a060020a03851681522054610b2e908363ffffffff61109d16565b600160a060020a03841660008181526007602090815260409182902093909355805185815290519192339260008051602061130c8339815191529281900390910190a350600192915050565b600554600160a060020a03163314610b9157600080fd5b600160a060020a03166000908152600b60205260409020805460ff19169055565b336000818152600b602052604081205490919060ff161515610bd357600080fd5b600854610be6818663ffffffff61109d16565b11610bf057600080fd5b428363ffffffff161115610c1157610c116000868563ffffffff1687611198565b600160a060020a038516600090815260076020526040902054610c3a908563ffffffff61109d16565b600160a060020a038616600090815260076020526040902055600854610c66908563ffffffff61109d16565b600855604080518581529051600160a060020a0387169160009160008051602061130c8339815191529181900360200190a36040805160008152600160a060020a038716602082015280820186905263ffffffff8516606082015290517f5075049792a88eedfe4e60bb3ffeac77b4fa7f03108b81fb0b460161b983e2009181900360800190a1506001949350505050565b600160a060020a038116600090815260076020908152604080832054600983528184208480529092528220549091901515610d3257610df7565b5060005b600160a060020a0383166000908152600a6020526040902054811015610df757600160a060020a0383166000908152600a60205260409020805442919083908110610d7d57fe5b9060005260206000200154101515610def57600160a060020a0383166000908152600960209081526040808320600a90925282208054610dec93919085908110610dc357fe5b90600052602060002001548152602001908152602001600020548361108b90919063ffffffff16565b91505b600101610d36565b50919050565b336000908152600660209081526040808320600160a060020a0386168452909152812054610e31908363ffffffff61109d16565b336000818152600660209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b600554600160a060020a03163314610ead57600080fd5b600160a060020a03166000908152600b60205260409020805460ff19166001179055565b600160a060020a03918216600090815260066020908152604080832093909416825291909152205490565b600554600160a060020a03163314610f1357600080fd5b6107648161128d565b600160a060020a03811660009081526009602090815260408083208380529091528120541515610f4b5761098e565b5060005b600160a060020a0382166000908152600a602052604090205481101561098e57600160a060020a0382166000908152600a60205260409020805442919083908110610f9657fe5b9060005260206000200154101561108357600160a060020a0382166000908152600960209081526040808320600a9092528220805461102193919085908110610fdb57fe5b60009182526020808320909101548352828101939093526040918201812054600160a060020a03871682526009845282822082805290935220549063ffffffff61108b16565b600160a060020a038316600081815260096020908152604080832083805280835281842095909555928252600a905290812080549192918391908590811061106557fe5b90600052602060002001548152602001908152602001600020819055505b600101610f4f565b60008282111561109757fe5b50900390565b818101828110156110aa57fe5b92915050565b6110b982610f1c565b6110c282610cf8565b8111156110ce57600080fd5b600160a060020a0382166000908152600760205260409020546110f7908263ffffffff61108b16565b600160a060020a038316600090815260076020526040902055600854611123908263ffffffff61108b16565b600855604080518281529051600160a060020a038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a2604080518281529051600091600160a060020a0385169160008051602061130c8339815191529181900360200190a35050565b600160a060020a03831660009081526009602090815260408083208380529091529020546111cc908263ffffffff61109d16565b600160a060020a0384166000908152600960209081526040808320838052909152808220929092558381522054151561122b57600160a060020a0383166000908152600a60209081526040822080546001810182559083529120018290555b600160a060020a038316600090815260096020908152604080832085845290915290205461125f908263ffffffff61109d16565b600160a060020a03909316600090815260096020908152604080832094835293905291909120919091555050565b600160a060020a03811615156112a257600080fd5b600554604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582001f3b8ffebfc578122646c111958154798ff2fde3bc58f72b8cbe911bdfe9e600029a165627a7a7230582089ec3af0fcaab5880a618d21e462c7fbbb65fdf1b4113d67257fbdcb3f9cd9020029", + "deployedBytecode": "0x6080604052600436106100745763ffffffff60e060020a60003504166304bc3b1c8114610079578063210f5dda146100ac5780634f64b2be1461016a5780639bb0f59914610182578063a4fa9bbd146101b7578063bd5dc202146101ea578063e4dc2aa41461024f578063f7888aec14610270575b600080fd5b34801561008557600080fd5b5061009a600160a060020a0360043516610297565b60408051918252519081900360200190f35b3480156100b857600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261014e94369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497505050833560ff169450505060209091013590506102a9565b60408051600160a060020a039092168252519081900360200190f35b34801561017657600080fd5b5061014e60043561057c565b34801561018e57600080fd5b506101a3600160a060020a03600435166105a4565b604080519115158252519081900360200190f35b3480156101c357600080fd5b506101a3600160a060020a036004358116906024351660443563ffffffff606435166105f1565b3480156101f657600080fd5b506101ff61071a565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561023b578181015183820152602001610223565b505050509050019250505060405180910390f35b34801561025b57600080fd5b5061009a600160a060020a036004351661077c565b34801561027c57600080fd5b5061009a600160a060020a0360043581169060243516610802565b60016020526000908152604090205481565b60008484846102b66108a6565b60ff82166040820152606080825284519082015283518190602080830191608084019188019080838360005b838110156102fa5781810151838201526020016102e2565b50505050905090810190601f1680156103275780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b8381101561035a578181015183820152602001610342565b50505050905090810190601f1680156103875780820380516001836020036101000a031916815260200191505b5095505050505050604051809103906000f0801580156103ab573d6000803e3d6000fd5b50604080517ff2fde38b0000000000000000000000000000000000000000000000000000000081523360048201529051919250600160a060020a0383169163f2fde38b9160248082019260009290919082900301818387803b15801561041057600080fd5b505af1158015610424573d6000803e3d6000fd5b505060008054600160a060020a0385168083526001602081905260408420839055820183558280527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563909101805473ffffffffffffffffffffffffffffffffffffffff191690911790558411159150610540905057604080517fd0047acf00000000000000000000000000000000000000000000000000000000815233600482015260ff8516600a0a840260248201526000604482018190529151600160a060020a0384169263d0047acf92606480820193602093909283900390910190829087803b15801561051357600080fd5b505af1158015610527573d6000803e3d6000fd5b505050506040513d602081101561053d57600080fd5b50505b604051600160a060020a038216907f0f53e2a811b6fd2d6cd965fd6c27b44fb924ca39f7a7f321115705c22366d62390600090a2949350505050565b600080548290811061058a57fe5b600091825260209091200154600160a060020a0316905081565b60008054811080156105eb5750600160a060020a038216600081815260016020526040812054815481106105d457fe5b600091825260209091200154600160a060020a0316145b92915050565b6000806105fd866105a4565b151561060857600080fd5b85905080600160a060020a031663d0047acf8683600160a060020a031663313ce5676040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561065957600080fd5b505af115801561066d573d6000803e3d6000fd5b505050506040513d602081101561068357600080fd5b50516040805163ffffffff85811660e060020a028252600160a060020a0394909416600482015260ff909216600a0a890260248301529187166044820152905160648083019260209291908290030181600087803b1580156106e457600080fd5b505af11580156106f8573d6000803e3d6000fd5b505050506040513d602081101561070e57600080fd5b50519695505050505050565b6060600080548060200260200160405190810160405280929190818152602001828054801561077257602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610754575b5050505050905090565b6000610787826105a4565b151561079257600080fd5b81600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156107d057600080fd5b505af11580156107e4573d6000803e3d6000fd5b505050506040513d60208110156107fa57600080fd5b505192915050565b600061080d836105a4565b151561081857600080fd5b82600160a060020a03166370a08231836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561087357600080fd5b505af1158015610887573d6000803e3d6000fd5b505050506040513d602081101561089d57600080fd5b50519392505050565b6040516114c6806108b783390190560060806040523480156200001157600080fd5b50604051620014c6380380620014c68339810160409081528151602080840151928401519184018051909493909301928491849184916200005891600091860190620000ba565b5081516200006e906001906020850190620000ba565b506002805460ff90921660ff1992831617905560058054600160a060020a031916339081179091556000908152600b6020526040902080549091166001179055506200015f9350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620000fd57805160ff19168380011785556200012d565b828001600101855582156200012d579182015b828111156200012d57825182559160200191906001019062000110565b506200013b9291506200013f565b5090565b6200015c91905b808211156200013b576000815560010162000146565b90565b611357806200016f6000396000f3006080604052600436106101325763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610137578063095ea7b3146101c157806318160ddd146101f957806323b872dd1461022057806327e235e31461024a578063313ce5671461026b57806342966c68146102965780634afbf5ee146102b057806366188463146102d457806370a08231146102f8578063715018a61461031957806379cc67901461032e5780638da5cb5b1461035257806395d89b41146103835780639d2e477714610398578063a9059cbb146103c5578063ba0e0f5e146103e9578063d0047acf1461040a578063d294cb0f14610437578063d73dd62314610458578063d88b86761461047c578063dd62ed3e1461049d578063f2fde38b146104c4575b600080fd5b34801561014357600080fd5b5061014c6104e5565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561018657818101518382015260200161016e565b50505050905090810190601f1680156101b35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101cd57600080fd5b506101e5600160a060020a0360043516602435610573565b604080519115158252519081900360200190f35b34801561020557600080fd5b5061020e6105d9565b60408051918252519081900360200190f35b34801561022c57600080fd5b506101e5600160a060020a03600435811690602435166044356105df565b34801561025657600080fd5b5061020e600160a060020a036004351661073f565b34801561027757600080fd5b50610280610751565b6040805160ff9092168252519081900360200190f35b3480156102a257600080fd5b506102ae60043561075a565b005b3480156102bc57600080fd5b5061020e600160a060020a0360043516602435610767565b3480156102e057600080fd5b506101e5600160a060020a0360043516602435610784565b34801561030457600080fd5b5061020e600160a060020a0360043516610873565b34801561032557600080fd5b506102ae61088e565b34801561033a57600080fd5b506102ae600160a060020a03600435166024356108fc565b34801561035e57600080fd5b50610367610992565b60408051600160a060020a039092168252519081900360200190f35b34801561038f57600080fd5b5061014c6109a1565b3480156103a457600080fd5b506101e5600160a060020a036004351660243563ffffffff604435166109fb565b3480156103d157600080fd5b506101e5600160a060020a0360043516602435610aa7565b3480156103f557600080fd5b506102ae600160a060020a0360043516610b7a565b34801561041657600080fd5b506101e5600160a060020a036004351660243563ffffffff60443516610bb2565b34801561044357600080fd5b5061020e600160a060020a0360043516610cf8565b34801561046457600080fd5b506101e5600160a060020a0360043516602435610dfd565b34801561048857600080fd5b506102ae600160a060020a0360043516610e96565b3480156104a957600080fd5b5061020e600160a060020a0360043581169060243516610ed1565b3480156104d057600080fd5b506102ae600160a060020a0360043516610efc565b6000805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561056b5780601f106105405761010080835404028352916020019161056b565b820191906000526020600020905b81548152906001019060200180831161054e57829003601f168201915b505050505081565b336000818152600660209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60085490565b60006105ea84610f1c565b600160a060020a03831615156105ff57600080fd5b61060884610cf8565b82111561061457600080fd5b600160a060020a038416600090815260066020908152604080832033845290915290205482111561064457600080fd5b600160a060020a03841660009081526007602052604090205461066d908363ffffffff61108b16565b600160a060020a0380861660009081526007602052604080822093909355908516815220546106a2908363ffffffff61109d16565b600160a060020a0380851660009081526007602090815260408083209490945591871681526006825282812033825290915220546106e6908363ffffffff61108b16565b600160a060020a038086166000818152600660209081526040808320338452825291829020949094558051868152905192871693919260008051602061130c833981519152929181900390910190a35060019392505050565b60076020526000908152604090205481565b60025460ff1681565b61076433826110b0565b50565b600960209081526000928352604080842090915290825290205481565b336000908152600660209081526040808320600160a060020a03861684529091528120548083106107d857336000908152600660209081526040808320600160a060020a038816845290915281205561080d565b6107e8818463ffffffff61108b16565b336000908152600660209081526040808320600160a060020a03891684529091529020555b336000818152600660209081526040808320600160a060020a0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b600160a060020a031660009081526007602052604090205490565b600554600160a060020a031633146108a557600080fd5b600554604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26005805473ffffffffffffffffffffffffffffffffffffffff19169055565b600160a060020a038216600090815260066020908152604080832033845290915290205481111561092c57600080fd5b600160a060020a0382166000908152600660209081526040808320338452909152902054610960908263ffffffff61108b16565b600160a060020a038316600090815260066020908152604080832033845290915290205561098e82826110b0565b5050565b600554600160a060020a031681565b60018054604080516020600284861615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561056b5780601f106105405761010080835404028352916020019161056b565b336000818152600b602052604081205490919060ff161515610a1c57600080fd5b610a268585610aa7565b50428363ffffffff161115610a4857610a486000868563ffffffff1687611198565b60408051338152600160a060020a038716602082015280820186905263ffffffff8516606082015290517f5075049792a88eedfe4e60bb3ffeac77b4fa7f03108b81fb0b460161b983e2009181900360800190a1506001949350505050565b6000610ab233610f1c565b600160a060020a0383161515610ac757600080fd5b610ad033610cf8565b821115610adc57600080fd5b33600090815260076020526040902054610afc908363ffffffff61108b16565b3360009081526007602052604080822092909255600160a060020a03851681522054610b2e908363ffffffff61109d16565b600160a060020a03841660008181526007602090815260409182902093909355805185815290519192339260008051602061130c8339815191529281900390910190a350600192915050565b600554600160a060020a03163314610b9157600080fd5b600160a060020a03166000908152600b60205260409020805460ff19169055565b336000818152600b602052604081205490919060ff161515610bd357600080fd5b600854610be6818663ffffffff61109d16565b11610bf057600080fd5b428363ffffffff161115610c1157610c116000868563ffffffff1687611198565b600160a060020a038516600090815260076020526040902054610c3a908563ffffffff61109d16565b600160a060020a038616600090815260076020526040902055600854610c66908563ffffffff61109d16565b600855604080518581529051600160a060020a0387169160009160008051602061130c8339815191529181900360200190a36040805160008152600160a060020a038716602082015280820186905263ffffffff8516606082015290517f5075049792a88eedfe4e60bb3ffeac77b4fa7f03108b81fb0b460161b983e2009181900360800190a1506001949350505050565b600160a060020a038116600090815260076020908152604080832054600983528184208480529092528220549091901515610d3257610df7565b5060005b600160a060020a0383166000908152600a6020526040902054811015610df757600160a060020a0383166000908152600a60205260409020805442919083908110610d7d57fe5b9060005260206000200154101515610def57600160a060020a0383166000908152600960209081526040808320600a90925282208054610dec93919085908110610dc357fe5b90600052602060002001548152602001908152602001600020548361108b90919063ffffffff16565b91505b600101610d36565b50919050565b336000908152600660209081526040808320600160a060020a0386168452909152812054610e31908363ffffffff61109d16565b336000818152600660209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b600554600160a060020a03163314610ead57600080fd5b600160a060020a03166000908152600b60205260409020805460ff19166001179055565b600160a060020a03918216600090815260066020908152604080832093909416825291909152205490565b600554600160a060020a03163314610f1357600080fd5b6107648161128d565b600160a060020a03811660009081526009602090815260408083208380529091528120541515610f4b5761098e565b5060005b600160a060020a0382166000908152600a602052604090205481101561098e57600160a060020a0382166000908152600a60205260409020805442919083908110610f9657fe5b9060005260206000200154101561108357600160a060020a0382166000908152600960209081526040808320600a9092528220805461102193919085908110610fdb57fe5b60009182526020808320909101548352828101939093526040918201812054600160a060020a03871682526009845282822082805290935220549063ffffffff61108b16565b600160a060020a038316600081815260096020908152604080832083805280835281842095909555928252600a905290812080549192918391908590811061106557fe5b90600052602060002001548152602001908152602001600020819055505b600101610f4f565b60008282111561109757fe5b50900390565b818101828110156110aa57fe5b92915050565b6110b982610f1c565b6110c282610cf8565b8111156110ce57600080fd5b600160a060020a0382166000908152600760205260409020546110f7908263ffffffff61108b16565b600160a060020a038316600090815260076020526040902055600854611123908263ffffffff61108b16565b600855604080518281529051600160a060020a038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a2604080518281529051600091600160a060020a0385169160008051602061130c8339815191529181900360200190a35050565b600160a060020a03831660009081526009602090815260408083208380529091529020546111cc908263ffffffff61109d16565b600160a060020a0384166000908152600960209081526040808320838052909152808220929092558381522054151561122b57600160a060020a0383166000908152600a60209081526040822080546001810182559083529120018290555b600160a060020a038316600090815260096020908152604080832085845290915290205461125f908263ffffffff61109d16565b600160a060020a03909316600090815260096020908152604080832094835293905291909120919091555050565b600160a060020a03811615156112a257600080fd5b600554604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582001f3b8ffebfc578122646c111958154798ff2fde3bc58f72b8cbe911bdfe9e600029a165627a7a7230582089ec3af0fcaab5880a618d21e462c7fbbb65fdf1b4113d67257fbdcb3f9cd9020029", + "sourceMap": "51:1551:32:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;51:1551:32;;;;;;;", + "deployedSourceMap": "51:1551:32:-;;;;;;;;;-1:-1:-1;;;51:1551: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:469;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;217:469:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;217:469:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;217:469:32;;;;-1:-1:-1;217:469:32;-1:-1:-1;217:469:32;;-1:-1:-1;217:469:32;;;;;;;;-1:-1:-1;217:469:32;;-1:-1:-1;;;217:469:32;;;;;-1:-1:-1;;;217:469:32;;;;;;-1:-1:-1;217:469:32;;;;;;-1:-1:-1;;;;;217:469:32;;;;;;;;;;;;;;83:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;83:23:32;;;;;781:162;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;781:162:32;-1:-1:-1;;;;;781:162:32;;;;;;;;;;;;;;;;;;;;;;;949:281;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;949:281:32;-1:-1:-1;;;;;949:281:32;;;;;;;;;;;;;;;;692:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;692: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;692:83:32;;;;;;;;;;;;;;;;;1430:170;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1430:170:32;-1:-1:-1;;;;;1430:170:32;;;;;1236:188;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1236:188:32;-1:-1:-1;;;;;1236:188:32;;;;;;;;;;112:47;;;;;;;;;;;;;:::o;217:469::-;320:12;363:5;370:7;379:9;352: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;352:37:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;352: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;352:37:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;399:35:32;;;;;;423:10;399:35;;;;;;344:45;;-1:-1:-1;;;;;;399:23:32;;;;;:35;;;;;-1:-1:-1;;399:35:32;;;;;;;;-1:-1:-1;399:23:32;:35;;;5:2:-1;;;;30:1;27;20:12;5:2;399:35:32;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;476:6:32;:13;;-1:-1:-1;;;;;445:28:32;;;;;:12;:28;;;;;;;:44;;;23:18:-1;;45:23;;499:27:32;;;;;;;;;-1:-1:-1;;499:27:32;;;;;;541:17;;537:112;;-1:-1:-1;537:112:32;;-1:-1:-1;537:112:32;574:64;;;;;;585:10;574:64;;;;619:15;;;613:2;:21;597:37;;574:64;;;;636:1;574:64;;;;;;;;-1:-1:-1;;;;;574:10:32;;;;;:64;;;;;;;;;;;;;;;;;;:10;:64;;;5:2:-1;;;;30:1;27;20:12;5:2;574:64:32;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;574:64:32;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;537:112:32;664:15;;-1:-1:-1;;;;;664:15:32;;;;;;;;217:469;;;;;;:::o;83:23::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;83:23:32;;-1:-1:-1;83:23:32;:::o;781:162::-;842:4;865:13;;:17;-1:-1:-1;865:71:32;;;;-1:-1:-1;;;;;;886:50:32;;:6;893:26;;;:12;:26;;;;;;886:34;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;886:34:32;:50;865:71;858:78;781:162;-1:-1:-1;;781:162:32:o;949:281::-;1046:4;1104:12;1070:22;1079:12;1070:8;:22::i;:::-;1062:31;;;;;;;;1126:12;1104:35;;1157:5;-1:-1:-1;;;;;1157:10:32;;1168:2;1192:5;-1:-1:-1;;;;;1192:14:32;;:16;;;;;-1:-1:-1;;;1192:16:32;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1192:16:32;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1192:16:32;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1192:16:32;1157:66;;;;;;;-1:-1:-1;;;1157:66:32;;;-1:-1:-1;;;;;1157:66:32;;;;;;;;1187:22;;;;1181:2;:28;1172:37;;1157:66;;;;;;;;;;;;;;;;;;1192:16;;1157:66;;;;;;;-1:-1:-1;1157:66:32;;;;5:2:-1;;;;30:1;27;20:12;5:2;1157:66:32;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1157:66:32;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1157:66:32;;949:281;-1:-1:-1;;;;;;949:281:32:o;692:83::-;734:9;762:6;755:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;755:13:32;;;;;;;;;;;;;;;;;;;;;;;692:83;:::o;1430:170::-;1494:4;1518:22;1527:12;1518:8;:22::i;:::-;1510:31;;;;;;;;1566:12;-1:-1:-1;;;;;1559:32:32;;:34;;;;;-1:-1:-1;;;1559:34:32;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1559:34:32;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1559:34:32;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1559:34:32;;1430:170;-1:-1:-1;;1430:170:32:o;1236:188::-;1314:4;1338:22;1347:12;1338:8;:22::i;:::-;1330:31;;;;;;;;1386:12;-1:-1:-1;;;;;1379:30:32;;1410:6;1379:38;;;;;-1:-1:-1;;;1379:38:32;;;;;;;-1:-1:-1;;;;;1379:38:32;-1:-1:-1;;;;;1379:38:32;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1379:38:32;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1379:38:32;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1379:38:32;;1236:188;-1:-1:-1;;;1236:188:32:o;51:1551::-;;;;;;;;;;:::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 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 if (amountToIssue > 0) {\n token.mint(msg.sender, amountToIssue * 10 ** uint(_decimals), 0);\n }\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", "sourcePath": "/home/circleci/code/contracts/token/WTokenTestHelper.sol", "ast": { "absolutePath": "/home/circleci/code/contracts/token/WTokenTestHelper.sol", "exportedSymbols": { "WTokenTestHelper": [ - 6156 + 8717 ] }, - "id": 6157, + "id": 8718, "nodeType": "SourceUnit", "nodes": [ { - "id": 5958, + "id": 8519, "literals": [ "solidity", "^", @@ -214,41 +214,41 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:21" + "src": "0:24:32" }, { "absolutePath": "/home/circleci/code/contracts/token/WToken.sol", "file": "./WToken.sol", - "id": 5959, + "id": 8520, "nodeType": "ImportDirective", - "scope": 6157, - "sourceUnit": 5926, - "src": "26:22:21", + "scope": 8718, + "sourceUnit": 8487, + "src": "26:22:32", "symbolAliases": [], "unitAlias": "" }, { "baseContracts": [], "contractDependencies": [ - 5925 + 8486 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 6156, + "id": 8717, "linearizedBaseContracts": [ - 6156 + 8717 ], "name": "WTokenTestHelper", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 5962, + "id": 8523, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 6156, - "src": "83:23:21", + "scope": 8717, + "src": "83:23:32", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -257,19 +257,19 @@ }, "typeName": { "baseType": { - "id": 5960, + "id": 8521, "name": "address", "nodeType": "ElementaryTypeName", - "src": "83:7:21", + "src": "83:7:32", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 5961, + "id": 8522, "length": null, "nodeType": "ArrayTypeName", - "src": "83:9:21", + "src": "83:9:32", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -280,11 +280,11 @@ }, { "constant": false, - "id": 5966, + "id": 8527, "name": "tokenIndexes", "nodeType": "VariableDeclaration", - "scope": 6156, - "src": "112:47:21", + "scope": 8717, + "src": "112:47:32", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -292,28 +292,28 @@ "typeString": "mapping(address => uint256)" }, "typeName": { - "id": 5965, + "id": 8526, "keyType": { - "id": 5963, + "id": 8524, "name": "address", "nodeType": "ElementaryTypeName", - "src": "120:7:21", + "src": "120:7:32", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "112:27:21", + "src": "112:27:32", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 5964, + "id": 8525, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "131:7:21", + "src": "131:7:32", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -326,21 +326,21 @@ { "anonymous": false, "documentation": null, - "id": 5970, + "id": 8531, "name": "NewToken", "nodeType": "EventDefinition", "parameters": { - "id": 5969, + "id": 8530, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5968, + "id": 8529, "indexed": true, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 5970, - "src": "181:28:21", + "scope": 8531, + "src": "181:28:32", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -348,10 +348,10 @@ "typeString": "address" }, "typeName": { - "id": 5967, + "id": 8528, "name": "address", "nodeType": "ElementaryTypeName", - "src": "181:7:21", + "src": "181:7:32", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -361,34 +361,34 @@ "visibility": "internal" } ], - "src": "180:30:21" + "src": "180:30:32" }, - "src": "166:45:21" + "src": "166:45:32" }, { "body": { - "id": 6040, + "id": 8601, "nodeType": "Block", - "src": "334:352:21", + "src": "334:352:32", "statements": [ { "expression": { "argumentTypes": null, - "id": 5990, + "id": 8551, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 5983, + "id": 8544, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5981, - "src": "344:5:21", + "referencedDeclaration": 8542, + "src": "344:5:32", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, @@ -399,12 +399,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5986, + "id": 8547, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5972, - "src": "363:5:21", + "referencedDeclaration": 8533, + "src": "363:5:32", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -412,12 +412,12 @@ }, { "argumentTypes": null, - "id": 5987, + "id": 8548, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5974, - "src": "370:7:21", + "referencedDeclaration": 8535, + "src": "370:7:32", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -425,12 +425,12 @@ }, { "argumentTypes": null, - "id": 5988, + "id": 8549, "name": "_decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5976, - "src": "379:9:21", + "referencedDeclaration": 8537, + "src": "379:9:32", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -452,31 +452,31 @@ "typeString": "uint8" } ], - "id": 5985, + "id": 8546, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "NewExpression", - "src": "352:10:21", + "src": "352:10:32", "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_WToken_$5925_$", + "typeIdentifier": "t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_WToken_$8486_$", "typeString": "function (string memory,string memory,uint8) returns (contract WToken)" }, "typeName": { "contractScope": null, - "id": 5984, + "id": 8545, "name": "WToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5925, - "src": "356:6:21", + "referencedDeclaration": 8486, + "src": "356:6:32", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } } }, - "id": 5989, + "id": 8550, "isConstant": false, "isLValue": false, "isPure": false, @@ -484,21 +484,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "352:37:21", + "src": "352:37:32", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, - "src": "344:45:21", + "src": "344:45:32", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, - "id": 5991, + "id": 8552, "nodeType": "ExpressionStatement", - "src": "344:45:21" + "src": "344:45:32" }, { "expression": { @@ -508,18 +508,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5995, + "id": 8556, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "423:3:21", + "referencedDeclaration": 10042, + "src": "423:3:32", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 5996, + "id": 8557, "isConstant": false, "isLValue": false, "isPure": false, @@ -527,7 +527,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "423:10:21", + "src": "423:10:32", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -543,32 +543,32 @@ ], "expression": { "argumentTypes": null, - "id": 5992, + "id": 8553, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5981, - "src": "399:5:21", + "referencedDeclaration": 8542, + "src": "399:5:32", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, - "id": 5994, + "id": 8555, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transferOwnership", "nodeType": "MemberAccess", - "referencedDeclaration": 6916, - "src": "399:23:21", + "referencedDeclaration": 9664, + "src": "399:23:32", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", "typeString": "function (address) external" } }, - "id": 5997, + "id": 8558, "isConstant": false, "isLValue": false, "isPure": false, @@ -576,20 +576,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "399:35:21", + "src": "399:35:32", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5998, + "id": 8559, "nodeType": "ExpressionStatement", - "src": "399:35:21" + "src": "399:35:32" }, { "expression": { "argumentTypes": null, - "id": 6006, + "id": 8567, "isConstant": false, "isLValue": false, "isPure": false, @@ -598,31 +598,31 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5999, + "id": 8560, "name": "tokenIndexes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5966, - "src": "445:12:21", + "referencedDeclaration": 8527, + "src": "445:12:32", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 6003, + "id": 8564, "indexExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 6001, + "id": 8562, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5981, - "src": "466:5:21", + "referencedDeclaration": 8542, + "src": "466:5:32", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } } @@ -630,24 +630,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } ], - "id": 6000, + "id": 8561, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "458:7:21", + "src": "458:7:32", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 6002, + "id": 8563, "isConstant": false, "isLValue": false, "isPure": false, @@ -655,7 +655,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "458:14:21", + "src": "458:14:32", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -666,7 +666,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "445:28:21", + "src": "445:28:32", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -678,18 +678,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 6004, + "id": 8565, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5962, - "src": "476:6:21", + "referencedDeclaration": 8523, + "src": "476:6:32", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 6005, + "id": 8566, "isConstant": false, "isLValue": true, "isPure": false, @@ -697,21 +697,21 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "476:13:21", + "src": "476:13:32", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "445:44:21", + "src": "445:44:32", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6007, + "id": 8568, "nodeType": "ExpressionStatement", - "src": "445:44:21" + "src": "445:44:32" }, { "expression": { @@ -722,14 +722,14 @@ "arguments": [ { "argumentTypes": null, - "id": 6012, + "id": 8573, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5981, - "src": "519:5:21", + "referencedDeclaration": 8542, + "src": "519:5:32", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } } @@ -737,24 +737,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } ], - "id": 6011, + "id": 8572, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "511:7:21", + "src": "511:7:32", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 6013, + "id": 8574, "isConstant": false, "isLValue": false, "isPure": false, @@ -762,7 +762,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "511:14:21", + "src": "511:14:32", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -778,18 +778,18 @@ ], "expression": { "argumentTypes": null, - "id": 6008, + "id": 8569, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5962, - "src": "499:6:21", + "referencedDeclaration": 8523, + "src": "499:6:32", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 6010, + "id": 8571, "isConstant": false, "isLValue": false, "isPure": false, @@ -797,13 +797,13 @@ "memberName": "push", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "499:11:21", + "src": "499:11:32", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", "typeString": "function (address) returns (uint256)" } }, - "id": 6014, + "id": 8575, "isConstant": false, "isLValue": false, "isPure": false, @@ -811,15 +811,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "499:27:21", + "src": "499:27:32", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6015, + "id": 8576, "nodeType": "ExpressionStatement", - "src": "499:27:21" + "src": "499:27:32" }, { "condition": { @@ -828,19 +828,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6018, + "id": 8579, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6016, + "id": 8577, "name": "amountToIssue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5978, - "src": "541:13:21", + "referencedDeclaration": 8539, + "src": "541:13:32", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -851,14 +851,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 6017, + "id": 8578, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "557:1:21", + "src": "557:1:32", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -866,20 +866,20 @@ }, "value": "0" }, - "src": "541:17:21", + "src": "541:17:32", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 6035, + "id": 8596, "nodeType": "IfStatement", - "src": "537:112:21", + "src": "537:112:32", "trueBody": { - "id": 6034, + "id": 8595, "nodeType": "Block", - "src": "560:89:21", + "src": "560:89:32", "statements": [ { "expression": { @@ -889,18 +889,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 6022, + "id": 8583, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "585:3:21", + "referencedDeclaration": 10042, + "src": "585:3:32", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 6023, + "id": 8584, "isConstant": false, "isLValue": false, "isPure": false, @@ -908,7 +908,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "585:10:21", + "src": "585:10:32", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -920,19 +920,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6030, + "id": 8591, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6024, + "id": 8585, "name": "amountToIssue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5978, - "src": "597:13:21", + "referencedDeclaration": 8539, + "src": "597:13:32", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -946,7 +946,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6029, + "id": 8590, "isConstant": false, "isLValue": false, "isPure": false, @@ -954,14 +954,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3130", - "id": 6025, + "id": 8586, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "613:2:21", + "src": "613:2:32", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", @@ -976,12 +976,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6027, + "id": 8588, "name": "_decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5976, - "src": "624:9:21", + "referencedDeclaration": 8537, + "src": "624:9:32", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -995,20 +995,20 @@ "typeString": "uint8" } ], - "id": 6026, + "id": 8587, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "619:4:21", + "src": "619:4:32", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, - "id": 6028, + "id": 8589, "isConstant": false, "isLValue": false, "isPure": false, @@ -1016,19 +1016,19 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "619:15:21", + "src": "619:15:32", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "613:21:21", + "src": "613:21:32", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "597:37:21", + "src": "597:37:32", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1037,14 +1037,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 6031, + "id": 8592, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "636:1:21", + "src": "636:1:32", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1070,32 +1070,32 @@ ], "expression": { "argumentTypes": null, - "id": 6019, + "id": 8580, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5981, - "src": "574:5:21", + "referencedDeclaration": 8542, + "src": "574:5:32", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, - "id": 6021, + "id": 8582, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mint", "nodeType": "MemberAccess", - "referencedDeclaration": 5587, - "src": "574:10:21", + "referencedDeclaration": 8148, + "src": "574:10:32", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint32_$returns$_t_bool_$", "typeString": "function (address,uint256,uint32) external returns (bool)" } }, - "id": 6032, + "id": 8593, "isConstant": false, "isLValue": false, "isPure": false, @@ -1103,15 +1103,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "574:64:21", + "src": "574:64:32", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 6033, + "id": 8594, "nodeType": "ExpressionStatement", - "src": "574:64:21" + "src": "574:64:32" } ] } @@ -1122,14 +1122,14 @@ "arguments": [ { "argumentTypes": null, - "id": 6037, + "id": 8598, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5981, - "src": "673:5:21", + "referencedDeclaration": 8542, + "src": "673:5:32", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } } @@ -1137,22 +1137,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } ], - "id": 6036, + "id": 8597, "name": "NewToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5970, - "src": "664:8:21", + "referencedDeclaration": 8531, + "src": "664:8:32", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 6038, + "id": 8599, "isConstant": false, "isLValue": false, "isPure": false, @@ -1160,20 +1160,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "664:15:21", + "src": "664:15:32", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6039, + "id": 8600, "nodeType": "EmitStatement", - "src": "659:20:21" + "src": "659:20:32" } ] }, "documentation": null, - "id": 6041, + "id": 8602, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1181,16 +1181,16 @@ "name": "createToken", "nodeType": "FunctionDefinition", "parameters": { - "id": 5979, + "id": 8540, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5972, + "id": 8533, "name": "_name", "nodeType": "VariableDeclaration", - "scope": 6041, - "src": "238:12:21", + "scope": 8602, + "src": "238:12:32", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1198,10 +1198,10 @@ "typeString": "string" }, "typeName": { - "id": 5971, + "id": 8532, "name": "string", "nodeType": "ElementaryTypeName", - "src": "238:6:21", + "src": "238:6:32", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -1212,11 +1212,11 @@ }, { "constant": false, - "id": 5974, + "id": 8535, "name": "_symbol", "nodeType": "VariableDeclaration", - "scope": 6041, - "src": "252:14:21", + "scope": 8602, + "src": "252:14:32", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1224,10 +1224,10 @@ "typeString": "string" }, "typeName": { - "id": 5973, + "id": 8534, "name": "string", "nodeType": "ElementaryTypeName", - "src": "252:6:21", + "src": "252:6:32", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -1238,11 +1238,11 @@ }, { "constant": false, - "id": 5976, + "id": 8537, "name": "_decimals", "nodeType": "VariableDeclaration", - "scope": 6041, - "src": "268:15:21", + "scope": 8602, + "src": "268:15:32", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1250,10 +1250,10 @@ "typeString": "uint8" }, "typeName": { - "id": 5975, + "id": 8536, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "268:5:21", + "src": "268:5:32", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1264,11 +1264,11 @@ }, { "constant": false, - "id": 5978, + "id": 8539, "name": "amountToIssue", "nodeType": "VariableDeclaration", - "scope": 6041, - "src": "285:18:21", + "scope": 8602, + "src": "285:18:32", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1276,10 +1276,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5977, + "id": 8538, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "285:4:21", + "src": "285:4:32", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1289,35 +1289,35 @@ "visibility": "internal" } ], - "src": "237:67:21" + "src": "237:67:32" }, "payable": false, "returnParameters": { - "id": 5982, + "id": 8543, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5981, + "id": 8542, "name": "token", "nodeType": "VariableDeclaration", - "scope": 6041, - "src": "320:12:21", + "scope": 8602, + "src": "320:12:32", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" }, "typeName": { "contractScope": null, - "id": 5980, + "id": 8541, "name": "WToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5925, - "src": "320:6:21", + "referencedDeclaration": 8486, + "src": "320:6:32", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, @@ -1325,43 +1325,43 @@ "visibility": "internal" } ], - "src": "319:14:21" + "src": "319:14:32" }, - "scope": 6156, - "src": "217:469:21", + "scope": 8717, + "src": "217:469:32", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 6049, + "id": 8610, "nodeType": "Block", - "src": "745:30:21", + "src": "745:30:32", "statements": [ { "expression": { "argumentTypes": null, - "id": 6047, + "id": 8608, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5962, - "src": "762:6:21", + "referencedDeclaration": 8523, + "src": "762:6:32", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "functionReturnParameters": 6046, - "id": 6048, + "functionReturnParameters": 8607, + "id": 8609, "nodeType": "Return", - "src": "755:13:21" + "src": "755:13:32" } ] }, "documentation": null, - "id": 6050, + "id": 8611, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1369,23 +1369,23 @@ "name": "tokensList", "nodeType": "FunctionDefinition", "parameters": { - "id": 6042, + "id": 8603, "nodeType": "ParameterList", "parameters": [], - "src": "711:2:21" + "src": "711:2:32" }, "payable": false, "returnParameters": { - "id": 6046, + "id": 8607, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6045, + "id": 8606, "name": "", "nodeType": "VariableDeclaration", - "scope": 6050, - "src": "734:9:21", + "scope": 8611, + "src": "734:9:32", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1394,19 +1394,19 @@ }, "typeName": { "baseType": { - "id": 6043, + "id": 8604, "name": "address", "nodeType": "ElementaryTypeName", - "src": "734:7:21", + "src": "734:7:32", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 6044, + "id": 8605, "length": null, "nodeType": "ArrayTypeName", - "src": "734:9:21", + "src": "734:9:32", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -1416,19 +1416,19 @@ "visibility": "internal" } ], - "src": "733:11:21" + "src": "733:11:32" }, - "scope": 6156, - "src": "692:83:21", + "scope": 8717, + "src": "692:83:32", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 6070, + "id": 8631, "nodeType": "Block", - "src": "848:95:21", + "src": "848:95:32", "statements": [ { "expression": { @@ -1437,7 +1437,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 6068, + "id": 8629, "isConstant": false, "isLValue": false, "isPure": false, @@ -1448,7 +1448,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6060, + "id": 8621, "isConstant": false, "isLValue": false, "isPure": false, @@ -1457,18 +1457,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 6057, + "id": 8618, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5962, - "src": "865:6:21", + "referencedDeclaration": 8523, + "src": "865:6:32", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 6058, + "id": 8619, "isConstant": false, "isLValue": true, "isPure": false, @@ -1476,7 +1476,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "865:13:21", + "src": "865:13:32", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1487,14 +1487,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 6059, + "id": 8620, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "881:1:21", + "src": "881:1:32", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1502,7 +1502,7 @@ }, "value": "0" }, - "src": "865:17:21", + "src": "865:17:32", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1516,7 +1516,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 6067, + "id": 8628, "isConstant": false, "isLValue": false, "isPure": false, @@ -1525,42 +1525,42 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 6061, + "id": 8622, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5962, - "src": "886:6:21", + "referencedDeclaration": 8523, + "src": "886:6:32", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 6065, + "id": 8626, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 6062, + "id": 8623, "name": "tokenIndexes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5966, - "src": "893:12:21", + "referencedDeclaration": 8527, + "src": "893:12:32", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 6064, + "id": 8625, "indexExpression": { "argumentTypes": null, - "id": 6063, + "id": 8624, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6052, - "src": "906:12:21", + "referencedDeclaration": 8613, + "src": "906:12:32", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1571,7 +1571,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "893:26:21", + "src": "893:26:32", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1582,7 +1582,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "886:34:21", + "src": "886:34:32", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1592,38 +1592,38 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 6066, + "id": 8627, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6052, - "src": "924:12:21", + "referencedDeclaration": 8613, + "src": "924:12:32", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "886:50:21", + "src": "886:50:32", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "865:71:21", + "src": "865:71:32", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 6056, - "id": 6069, + "functionReturnParameters": 8617, + "id": 8630, "nodeType": "Return", - "src": "858:78:21" + "src": "858:78:32" } ] }, "documentation": null, - "id": 6071, + "id": 8632, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1631,16 +1631,16 @@ "name": "hasToken", "nodeType": "FunctionDefinition", "parameters": { - "id": 6053, + "id": 8614, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6052, + "id": 8613, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 6071, - "src": "799:20:21", + "scope": 8632, + "src": "799:20:32", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1648,10 +1648,10 @@ "typeString": "address" }, "typeName": { - "id": 6051, + "id": 8612, "name": "address", "nodeType": "ElementaryTypeName", - "src": "799:7:21", + "src": "799:7:32", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1661,20 +1661,20 @@ "visibility": "internal" } ], - "src": "798:22:21" + "src": "798:22:32" }, "payable": false, "returnParameters": { - "id": 6056, + "id": 8617, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6055, + "id": 8616, "name": "", "nodeType": "VariableDeclaration", - "scope": 6071, - "src": "842:4:21", + "scope": 8632, + "src": "842:4:32", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1682,10 +1682,10 @@ "typeString": "bool" }, "typeName": { - "id": 6054, + "id": 8615, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "842:4:21", + "src": "842:4:32", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1695,19 +1695,19 @@ "visibility": "internal" } ], - "src": "841:6:21" + "src": "841:6:32" }, - "scope": 6156, - "src": "781:162:21", + "scope": 8717, + "src": "781:162:32", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 6111, + "id": 8672, "nodeType": "Block", - "src": "1052:178:21", + "src": "1052:178:32", "statements": [ { "expression": { @@ -1718,12 +1718,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6086, + "id": 8647, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6073, - "src": "1079:12:21", + "referencedDeclaration": 8634, + "src": "1079:12:32", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1737,18 +1737,18 @@ "typeString": "address" } ], - "id": 6085, + "id": 8646, "name": "hasToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6071, - "src": "1070:8:21", + "referencedDeclaration": 8632, + "src": "1070:8:32", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view returns (bool)" } }, - "id": 6087, + "id": 8648, "isConstant": false, "isLValue": false, "isPure": false, @@ -1756,7 +1756,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1070:22:21", + "src": "1070:22:32", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1770,21 +1770,21 @@ "typeString": "bool" } ], - "id": 6084, + "id": 8645, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "1062:7:21", + "referencedDeclaration": 10045, + "src": "1062:7:32", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 6088, + "id": 8649, "isConstant": false, "isLValue": false, "isPure": false, @@ -1792,43 +1792,43 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1062:31:21", + "src": "1062:31:32", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6089, + "id": 8650, "nodeType": "ExpressionStatement", - "src": "1062:31:21" + "src": "1062:31:32" }, { "assignments": [ - 6091 + 8652 ], "declarations": [ { "constant": false, - "id": 6091, + "id": 8652, "name": "token", "nodeType": "VariableDeclaration", - "scope": 6112, - "src": "1104:12:21", + "scope": 8673, + "src": "1104:12:32", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" }, "typeName": { "contractScope": null, - "id": 6090, + "id": 8651, "name": "WToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5925, - "src": "1104:6:21", + "referencedDeclaration": 8486, + "src": "1104:6:32", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, @@ -1836,18 +1836,18 @@ "visibility": "internal" } ], - "id": 6095, + "id": 8656, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 6093, + "id": 8654, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6073, - "src": "1126:12:21", + "referencedDeclaration": 8634, + "src": "1126:12:32", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1861,18 +1861,18 @@ "typeString": "address" } ], - "id": 6092, + "id": 8653, "name": "WToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5925, - "src": "1119:6:21", + "referencedDeclaration": 8486, + "src": "1119:6:32", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_WToken_$5925_$", + "typeIdentifier": "t_type$_t_contract$_WToken_$8486_$", "typeString": "type(contract WToken)" } }, - "id": 6094, + "id": 8655, "isConstant": false, "isLValue": false, "isPure": false, @@ -1880,14 +1880,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1119:20:21", + "src": "1119:20:32", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, "nodeType": "VariableDeclarationStatement", - "src": "1104:35:21" + "src": "1104:35:32" }, { "expression": { @@ -1895,12 +1895,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6098, + "id": 8659, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6075, - "src": "1168:2:21", + "referencedDeclaration": 8636, + "src": "1168:2:32", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1912,19 +1912,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6107, + "id": 8668, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6099, + "id": 8660, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6077, - "src": "1172:6:21", + "referencedDeclaration": 8638, + "src": "1172:6:32", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1938,7 +1938,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6106, + "id": 8667, "isConstant": false, "isLValue": false, "isPure": false, @@ -1946,14 +1946,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3130", - "id": 6100, + "id": 8661, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1181:2:21", + "src": "1181:2:32", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", @@ -1973,32 +1973,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 6102, + "id": 8663, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6091, - "src": "1192:5:21", + "referencedDeclaration": 8652, + "src": "1192:5:32", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, - "id": 6103, + "id": 8664, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "decimals", "nodeType": "MemberAccess", - "referencedDeclaration": 6951, - "src": "1192:14:21", + "referencedDeclaration": 9699, + "src": "1192:14:32", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", "typeString": "function () view external returns (uint8)" } }, - "id": 6104, + "id": 8665, "isConstant": false, "isLValue": false, "isPure": false, @@ -2006,7 +2006,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1192:16:21", + "src": "1192:16:32", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -2020,20 +2020,20 @@ "typeString": "uint8" } ], - "id": 6101, + "id": 8662, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1187:4:21", + "src": "1187:4:32", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, - "id": 6105, + "id": 8666, "isConstant": false, "isLValue": false, "isPure": false, @@ -2041,19 +2041,19 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1187:22:21", + "src": "1187:22:32", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1181:28:21", + "src": "1181:28:32", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1172:37:21", + "src": "1172:37:32", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2061,12 +2061,12 @@ }, { "argumentTypes": null, - "id": 6108, + "id": 8669, "name": "vestingTime", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6079, - "src": "1211:11:21", + "referencedDeclaration": 8640, + "src": "1211:11:32", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -2090,32 +2090,32 @@ ], "expression": { "argumentTypes": null, - "id": 6096, + "id": 8657, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6091, - "src": "1157:5:21", + "referencedDeclaration": 8652, + "src": "1157:5:32", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, - "id": 6097, + "id": 8658, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mint", "nodeType": "MemberAccess", - "referencedDeclaration": 5587, - "src": "1157:10:21", + "referencedDeclaration": 8148, + "src": "1157:10:32", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint32_$returns$_t_bool_$", "typeString": "function (address,uint256,uint32) external returns (bool)" } }, - "id": 6109, + "id": 8670, "isConstant": false, "isLValue": false, "isPure": false, @@ -2123,21 +2123,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1157:66:21", + "src": "1157:66:32", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 6083, - "id": 6110, + "functionReturnParameters": 8644, + "id": 8671, "nodeType": "Return", - "src": "1150:73:21" + "src": "1150:73:32" } ] }, "documentation": null, - "id": 6112, + "id": 8673, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -2145,16 +2145,16 @@ "name": "mint", "nodeType": "FunctionDefinition", "parameters": { - "id": 6080, + "id": 8641, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6073, + "id": 8634, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 6112, - "src": "963:20:21", + "scope": 8673, + "src": "963:20:32", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2162,10 +2162,10 @@ "typeString": "address" }, "typeName": { - "id": 6072, + "id": 8633, "name": "address", "nodeType": "ElementaryTypeName", - "src": "963:7:21", + "src": "963:7:32", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2176,11 +2176,11 @@ }, { "constant": false, - "id": 6075, + "id": 8636, "name": "to", "nodeType": "VariableDeclaration", - "scope": 6112, - "src": "985:10:21", + "scope": 8673, + "src": "985:10:32", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2188,10 +2188,10 @@ "typeString": "address" }, "typeName": { - "id": 6074, + "id": 8635, "name": "address", "nodeType": "ElementaryTypeName", - "src": "985:7:21", + "src": "985:7:32", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2202,11 +2202,11 @@ }, { "constant": false, - "id": 6077, + "id": 8638, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 6112, - "src": "997:11:21", + "scope": 8673, + "src": "997:11:32", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2214,10 +2214,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6076, + "id": 8637, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "997:4:21", + "src": "997:4:32", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2228,11 +2228,11 @@ }, { "constant": false, - "id": 6079, + "id": 8640, "name": "vestingTime", "nodeType": "VariableDeclaration", - "scope": 6112, - "src": "1010:18:21", + "scope": 8673, + "src": "1010:18:32", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2240,10 +2240,10 @@ "typeString": "uint32" }, "typeName": { - "id": 6078, + "id": 8639, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "1010:6:21", + "src": "1010:6:32", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -2253,20 +2253,20 @@ "visibility": "internal" } ], - "src": "962:67:21" + "src": "962:67:32" }, "payable": false, "returnParameters": { - "id": 6083, + "id": 8644, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6082, + "id": 8643, "name": "", "nodeType": "VariableDeclaration", - "scope": 6112, - "src": "1046:4:21", + "scope": 8673, + "src": "1046:4:32", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2274,10 +2274,10 @@ "typeString": "bool" }, "typeName": { - "id": 6081, + "id": 8642, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1046:4:21", + "src": "1046:4:32", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2287,19 +2287,19 @@ "visibility": "internal" } ], - "src": "1045:6:21" + "src": "1045:6:32" }, - "scope": 6156, - "src": "949:281:21", + "scope": 8717, + "src": "949:281:32", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 6134, + "id": 8695, "nodeType": "Block", - "src": "1320:104:21", + "src": "1320:104:32", "statements": [ { "expression": { @@ -2310,12 +2310,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6123, + "id": 8684, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6114, - "src": "1347:12:21", + "referencedDeclaration": 8675, + "src": "1347:12:32", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2329,18 +2329,18 @@ "typeString": "address" } ], - "id": 6122, + "id": 8683, "name": "hasToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6071, - "src": "1338:8:21", + "referencedDeclaration": 8632, + "src": "1338:8:32", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view returns (bool)" } }, - "id": 6124, + "id": 8685, "isConstant": false, "isLValue": false, "isPure": false, @@ -2348,7 +2348,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1338:22:21", + "src": "1338:22:32", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2362,21 +2362,21 @@ "typeString": "bool" } ], - "id": 6121, + "id": 8682, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "1330:7:21", + "referencedDeclaration": 10045, + "src": "1330:7:32", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 6125, + "id": 8686, "isConstant": false, "isLValue": false, "isPure": false, @@ -2384,15 +2384,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1330:31:21", + "src": "1330:31:32", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6126, + "id": 8687, "nodeType": "ExpressionStatement", - "src": "1330:31:21" + "src": "1330:31:32" }, { "expression": { @@ -2400,12 +2400,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6131, + "id": 8692, "name": "wallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6116, - "src": "1410:6:21", + "referencedDeclaration": 8677, + "src": "1410:6:32", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2424,12 +2424,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6128, + "id": 8689, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6114, - "src": "1386:12:21", + "referencedDeclaration": 8675, + "src": "1386:12:32", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2443,18 +2443,18 @@ "typeString": "address" } ], - "id": 6127, + "id": 8688, "name": "WToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5925, - "src": "1379:6:21", + "referencedDeclaration": 8486, + "src": "1379:6:32", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_WToken_$5925_$", + "typeIdentifier": "t_type$_t_contract$_WToken_$8486_$", "typeString": "type(contract WToken)" } }, - "id": 6129, + "id": 8690, "isConstant": false, "isLValue": false, "isPure": false, @@ -2462,27 +2462,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1379:20:21", + "src": "1379:20:32", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, - "id": 6130, + "id": 8691, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 5276, - "src": "1379:30:21", + "referencedDeclaration": 7837, + "src": "1379:30:32", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 6132, + "id": 8693, "isConstant": false, "isLValue": false, "isPure": false, @@ -2490,21 +2490,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1379:38:21", + "src": "1379:38:32", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 6120, - "id": 6133, + "functionReturnParameters": 8681, + "id": 8694, "nodeType": "Return", - "src": "1372:45:21" + "src": "1372:45:32" } ] }, "documentation": null, - "id": 6135, + "id": 8696, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2512,16 +2512,16 @@ "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 6117, + "id": 8678, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6114, + "id": 8675, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 6135, - "src": "1255:20:21", + "scope": 8696, + "src": "1255:20:32", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2529,10 +2529,10 @@ "typeString": "address" }, "typeName": { - "id": 6113, + "id": 8674, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1255:7:21", + "src": "1255:7:32", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2543,11 +2543,11 @@ }, { "constant": false, - "id": 6116, + "id": 8677, "name": "wallet", "nodeType": "VariableDeclaration", - "scope": 6135, - "src": "1277:14:21", + "scope": 8696, + "src": "1277:14:32", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2555,10 +2555,10 @@ "typeString": "address" }, "typeName": { - "id": 6115, + "id": 8676, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1277:7:21", + "src": "1277:7:32", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2568,20 +2568,20 @@ "visibility": "internal" } ], - "src": "1254:38:21" + "src": "1254:38:32" }, "payable": false, "returnParameters": { - "id": 6120, + "id": 8681, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6119, + "id": 8680, "name": "", "nodeType": "VariableDeclaration", - "scope": 6135, - "src": "1314:4:21", + "scope": 8696, + "src": "1314:4:32", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2589,10 +2589,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6118, + "id": 8679, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1314:4:21", + "src": "1314:4:32", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2602,19 +2602,19 @@ "visibility": "internal" } ], - "src": "1313:6:21" + "src": "1313:6:32" }, - "scope": 6156, - "src": "1236:188:21", + "scope": 8717, + "src": "1236:188:32", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 6154, + "id": 8715, "nodeType": "Block", - "src": "1500:100:21", + "src": "1500:100:32", "statements": [ { "expression": { @@ -2625,12 +2625,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6144, + "id": 8705, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6137, - "src": "1527:12:21", + "referencedDeclaration": 8698, + "src": "1527:12:32", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2644,18 +2644,18 @@ "typeString": "address" } ], - "id": 6143, + "id": 8704, "name": "hasToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6071, - "src": "1518:8:21", + "referencedDeclaration": 8632, + "src": "1518:8:32", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view returns (bool)" } }, - "id": 6145, + "id": 8706, "isConstant": false, "isLValue": false, "isPure": false, @@ -2663,7 +2663,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1518:22:21", + "src": "1518:22:32", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2677,21 +2677,21 @@ "typeString": "bool" } ], - "id": 6142, + "id": 8703, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "1510:7:21", + "referencedDeclaration": 10045, + "src": "1510:7:32", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 6146, + "id": 8707, "isConstant": false, "isLValue": false, "isPure": false, @@ -2699,15 +2699,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1510:31:21", + "src": "1510:31:32", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6147, + "id": 8708, "nodeType": "ExpressionStatement", - "src": "1510:31:21" + "src": "1510:31:32" }, { "expression": { @@ -2720,12 +2720,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6149, + "id": 8710, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6137, - "src": "1566:12:21", + "referencedDeclaration": 8698, + "src": "1566:12:32", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2739,18 +2739,18 @@ "typeString": "address" } ], - "id": 6148, + "id": 8709, "name": "WToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5925, - "src": "1559:6:21", + "referencedDeclaration": 8486, + "src": "1559:6:32", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_WToken_$5925_$", + "typeIdentifier": "t_type$_t_contract$_WToken_$8486_$", "typeString": "type(contract WToken)" } }, - "id": 6150, + "id": 8711, "isConstant": false, "isLValue": false, "isPure": false, @@ -2758,27 +2758,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1559:20:21", + "src": "1559:20:32", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, - "id": 6151, + "id": 8712, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "totalSupply", "nodeType": "MemberAccess", - "referencedDeclaration": 5132, - "src": "1559:32:21", + "referencedDeclaration": 7693, + "src": "1559:32:32", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, - "id": 6152, + "id": 8713, "isConstant": false, "isLValue": false, "isPure": false, @@ -2786,21 +2786,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1559:34:21", + "src": "1559:34:32", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 6141, - "id": 6153, + "functionReturnParameters": 8702, + "id": 8714, "nodeType": "Return", - "src": "1552:41:21" + "src": "1552:41:32" } ] }, "documentation": null, - "id": 6155, + "id": 8716, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2808,16 +2808,16 @@ "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { - "id": 6138, + "id": 8699, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6137, + "id": 8698, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 6155, - "src": "1451:20:21", + "scope": 8716, + "src": "1451:20:32", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2825,10 +2825,10 @@ "typeString": "address" }, "typeName": { - "id": 6136, + "id": 8697, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1451:7:21", + "src": "1451:7:32", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2838,20 +2838,20 @@ "visibility": "internal" } ], - "src": "1450:22:21" + "src": "1450:22:32" }, "payable": false, "returnParameters": { - "id": 6141, + "id": 8702, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6140, + "id": 8701, "name": "", "nodeType": "VariableDeclaration", - "scope": 6155, - "src": "1494:4:21", + "scope": 8716, + "src": "1494:4:32", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2859,10 +2859,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6139, + "id": 8700, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1494:4:21", + "src": "1494:4:32", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2872,33 +2872,33 @@ "visibility": "internal" } ], - "src": "1493:6:21" + "src": "1493:6:32" }, - "scope": 6156, - "src": "1430:170:21", + "scope": 8717, + "src": "1430:170:32", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 6157, - "src": "51:1551:21" + "scope": 8718, + "src": "51:1551:32" } ], - "src": "0:1603:21" + "src": "0:1603:32" }, "legacyAST": { "absolutePath": "/home/circleci/code/contracts/token/WTokenTestHelper.sol", "exportedSymbols": { "WTokenTestHelper": [ - 6156 + 8717 ] }, - "id": 6157, + "id": 8718, "nodeType": "SourceUnit", "nodes": [ { - "id": 5958, + "id": 8519, "literals": [ "solidity", "^", @@ -2906,41 +2906,41 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:21" + "src": "0:24:32" }, { "absolutePath": "/home/circleci/code/contracts/token/WToken.sol", "file": "./WToken.sol", - "id": 5959, + "id": 8520, "nodeType": "ImportDirective", - "scope": 6157, - "sourceUnit": 5926, - "src": "26:22:21", + "scope": 8718, + "sourceUnit": 8487, + "src": "26:22:32", "symbolAliases": [], "unitAlias": "" }, { "baseContracts": [], "contractDependencies": [ - 5925 + 8486 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 6156, + "id": 8717, "linearizedBaseContracts": [ - 6156 + 8717 ], "name": "WTokenTestHelper", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 5962, + "id": 8523, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 6156, - "src": "83:23:21", + "scope": 8717, + "src": "83:23:32", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2949,19 +2949,19 @@ }, "typeName": { "baseType": { - "id": 5960, + "id": 8521, "name": "address", "nodeType": "ElementaryTypeName", - "src": "83:7:21", + "src": "83:7:32", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 5961, + "id": 8522, "length": null, "nodeType": "ArrayTypeName", - "src": "83:9:21", + "src": "83:9:32", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -2972,11 +2972,11 @@ }, { "constant": false, - "id": 5966, + "id": 8527, "name": "tokenIndexes", "nodeType": "VariableDeclaration", - "scope": 6156, - "src": "112:47:21", + "scope": 8717, + "src": "112:47:32", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2984,28 +2984,28 @@ "typeString": "mapping(address => uint256)" }, "typeName": { - "id": 5965, + "id": 8526, "keyType": { - "id": 5963, + "id": 8524, "name": "address", "nodeType": "ElementaryTypeName", - "src": "120:7:21", + "src": "120:7:32", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "112:27:21", + "src": "112:27:32", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 5964, + "id": 8525, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "131:7:21", + "src": "131:7:32", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3018,21 +3018,21 @@ { "anonymous": false, "documentation": null, - "id": 5970, + "id": 8531, "name": "NewToken", "nodeType": "EventDefinition", "parameters": { - "id": 5969, + "id": 8530, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5968, + "id": 8529, "indexed": true, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 5970, - "src": "181:28:21", + "scope": 8531, + "src": "181:28:32", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3040,10 +3040,10 @@ "typeString": "address" }, "typeName": { - "id": 5967, + "id": 8528, "name": "address", "nodeType": "ElementaryTypeName", - "src": "181:7:21", + "src": "181:7:32", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3053,34 +3053,34 @@ "visibility": "internal" } ], - "src": "180:30:21" + "src": "180:30:32" }, - "src": "166:45:21" + "src": "166:45:32" }, { "body": { - "id": 6040, + "id": 8601, "nodeType": "Block", - "src": "334:352:21", + "src": "334:352:32", "statements": [ { "expression": { "argumentTypes": null, - "id": 5990, + "id": 8551, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 5983, + "id": 8544, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5981, - "src": "344:5:21", + "referencedDeclaration": 8542, + "src": "344:5:32", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, @@ -3091,12 +3091,12 @@ "arguments": [ { "argumentTypes": null, - "id": 5986, + "id": 8547, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5972, - "src": "363:5:21", + "referencedDeclaration": 8533, + "src": "363:5:32", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -3104,12 +3104,12 @@ }, { "argumentTypes": null, - "id": 5987, + "id": 8548, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5974, - "src": "370:7:21", + "referencedDeclaration": 8535, + "src": "370:7:32", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -3117,12 +3117,12 @@ }, { "argumentTypes": null, - "id": 5988, + "id": 8549, "name": "_decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5976, - "src": "379:9:21", + "referencedDeclaration": 8537, + "src": "379:9:32", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -3144,31 +3144,31 @@ "typeString": "uint8" } ], - "id": 5985, + "id": 8546, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "NewExpression", - "src": "352:10:21", + "src": "352:10:32", "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_WToken_$5925_$", + "typeIdentifier": "t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_WToken_$8486_$", "typeString": "function (string memory,string memory,uint8) returns (contract WToken)" }, "typeName": { "contractScope": null, - "id": 5984, + "id": 8545, "name": "WToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5925, - "src": "356:6:21", + "referencedDeclaration": 8486, + "src": "356:6:32", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } } }, - "id": 5989, + "id": 8550, "isConstant": false, "isLValue": false, "isPure": false, @@ -3176,21 +3176,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "352:37:21", + "src": "352:37:32", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, - "src": "344:45:21", + "src": "344:45:32", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, - "id": 5991, + "id": 8552, "nodeType": "ExpressionStatement", - "src": "344:45:21" + "src": "344:45:32" }, { "expression": { @@ -3200,18 +3200,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 5995, + "id": 8556, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "423:3:21", + "referencedDeclaration": 10042, + "src": "423:3:32", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 5996, + "id": 8557, "isConstant": false, "isLValue": false, "isPure": false, @@ -3219,7 +3219,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "423:10:21", + "src": "423:10:32", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3235,32 +3235,32 @@ ], "expression": { "argumentTypes": null, - "id": 5992, + "id": 8553, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5981, - "src": "399:5:21", + "referencedDeclaration": 8542, + "src": "399:5:32", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, - "id": 5994, + "id": 8555, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transferOwnership", "nodeType": "MemberAccess", - "referencedDeclaration": 6916, - "src": "399:23:21", + "referencedDeclaration": 9664, + "src": "399:23:32", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", "typeString": "function (address) external" } }, - "id": 5997, + "id": 8558, "isConstant": false, "isLValue": false, "isPure": false, @@ -3268,20 +3268,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "399:35:21", + "src": "399:35:32", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 5998, + "id": 8559, "nodeType": "ExpressionStatement", - "src": "399:35:21" + "src": "399:35:32" }, { "expression": { "argumentTypes": null, - "id": 6006, + "id": 8567, "isConstant": false, "isLValue": false, "isPure": false, @@ -3290,31 +3290,31 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 5999, + "id": 8560, "name": "tokenIndexes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5966, - "src": "445:12:21", + "referencedDeclaration": 8527, + "src": "445:12:32", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 6003, + "id": 8564, "indexExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 6001, + "id": 8562, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5981, - "src": "466:5:21", + "referencedDeclaration": 8542, + "src": "466:5:32", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } } @@ -3322,24 +3322,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } ], - "id": 6000, + "id": 8561, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "458:7:21", + "src": "458:7:32", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 6002, + "id": 8563, "isConstant": false, "isLValue": false, "isPure": false, @@ -3347,7 +3347,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "458:14:21", + "src": "458:14:32", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3358,7 +3358,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "445:28:21", + "src": "445:28:32", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3370,18 +3370,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 6004, + "id": 8565, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5962, - "src": "476:6:21", + "referencedDeclaration": 8523, + "src": "476:6:32", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 6005, + "id": 8566, "isConstant": false, "isLValue": true, "isPure": false, @@ -3389,21 +3389,21 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "476:13:21", + "src": "476:13:32", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "445:44:21", + "src": "445:44:32", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6007, + "id": 8568, "nodeType": "ExpressionStatement", - "src": "445:44:21" + "src": "445:44:32" }, { "expression": { @@ -3414,14 +3414,14 @@ "arguments": [ { "argumentTypes": null, - "id": 6012, + "id": 8573, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5981, - "src": "519:5:21", + "referencedDeclaration": 8542, + "src": "519:5:32", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } } @@ -3429,24 +3429,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } ], - "id": 6011, + "id": 8572, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "511:7:21", + "src": "511:7:32", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 6013, + "id": 8574, "isConstant": false, "isLValue": false, "isPure": false, @@ -3454,7 +3454,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "511:14:21", + "src": "511:14:32", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3470,18 +3470,18 @@ ], "expression": { "argumentTypes": null, - "id": 6008, + "id": 8569, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5962, - "src": "499:6:21", + "referencedDeclaration": 8523, + "src": "499:6:32", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 6010, + "id": 8571, "isConstant": false, "isLValue": false, "isPure": false, @@ -3489,13 +3489,13 @@ "memberName": "push", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "499:11:21", + "src": "499:11:32", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", "typeString": "function (address) returns (uint256)" } }, - "id": 6014, + "id": 8575, "isConstant": false, "isLValue": false, "isPure": false, @@ -3503,15 +3503,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "499:27:21", + "src": "499:27:32", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 6015, + "id": 8576, "nodeType": "ExpressionStatement", - "src": "499:27:21" + "src": "499:27:32" }, { "condition": { @@ -3520,19 +3520,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6018, + "id": 8579, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6016, + "id": 8577, "name": "amountToIssue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5978, - "src": "541:13:21", + "referencedDeclaration": 8539, + "src": "541:13:32", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3543,14 +3543,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 6017, + "id": 8578, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "557:1:21", + "src": "557:1:32", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3558,20 +3558,20 @@ }, "value": "0" }, - "src": "541:17:21", + "src": "541:17:32", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 6035, + "id": 8596, "nodeType": "IfStatement", - "src": "537:112:21", + "src": "537:112:32", "trueBody": { - "id": 6034, + "id": 8595, "nodeType": "Block", - "src": "560:89:21", + "src": "560:89:32", "statements": [ { "expression": { @@ -3581,18 +3581,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 6022, + "id": 8583, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7294, - "src": "585:3:21", + "referencedDeclaration": 10042, + "src": "585:3:32", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 6023, + "id": 8584, "isConstant": false, "isLValue": false, "isPure": false, @@ -3600,7 +3600,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "585:10:21", + "src": "585:10:32", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3612,19 +3612,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6030, + "id": 8591, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6024, + "id": 8585, "name": "amountToIssue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5978, - "src": "597:13:21", + "referencedDeclaration": 8539, + "src": "597:13:32", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3638,7 +3638,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6029, + "id": 8590, "isConstant": false, "isLValue": false, "isPure": false, @@ -3646,14 +3646,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3130", - "id": 6025, + "id": 8586, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "613:2:21", + "src": "613:2:32", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", @@ -3668,12 +3668,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6027, + "id": 8588, "name": "_decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5976, - "src": "624:9:21", + "referencedDeclaration": 8537, + "src": "624:9:32", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -3687,20 +3687,20 @@ "typeString": "uint8" } ], - "id": 6026, + "id": 8587, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "619:4:21", + "src": "619:4:32", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, - "id": 6028, + "id": 8589, "isConstant": false, "isLValue": false, "isPure": false, @@ -3708,19 +3708,19 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "619:15:21", + "src": "619:15:32", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "613:21:21", + "src": "613:21:32", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "597:37:21", + "src": "597:37:32", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3729,14 +3729,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 6031, + "id": 8592, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "636:1:21", + "src": "636:1:32", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3762,32 +3762,32 @@ ], "expression": { "argumentTypes": null, - "id": 6019, + "id": 8580, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5981, - "src": "574:5:21", + "referencedDeclaration": 8542, + "src": "574:5:32", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, - "id": 6021, + "id": 8582, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mint", "nodeType": "MemberAccess", - "referencedDeclaration": 5587, - "src": "574:10:21", + "referencedDeclaration": 8148, + "src": "574:10:32", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint32_$returns$_t_bool_$", "typeString": "function (address,uint256,uint32) external returns (bool)" } }, - "id": 6032, + "id": 8593, "isConstant": false, "isLValue": false, "isPure": false, @@ -3795,15 +3795,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "574:64:21", + "src": "574:64:32", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 6033, + "id": 8594, "nodeType": "ExpressionStatement", - "src": "574:64:21" + "src": "574:64:32" } ] } @@ -3814,14 +3814,14 @@ "arguments": [ { "argumentTypes": null, - "id": 6037, + "id": 8598, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5981, - "src": "673:5:21", + "referencedDeclaration": 8542, + "src": "673:5:32", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } } @@ -3829,22 +3829,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } ], - "id": 6036, + "id": 8597, "name": "NewToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5970, - "src": "664:8:21", + "referencedDeclaration": 8531, + "src": "664:8:32", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 6038, + "id": 8599, "isConstant": false, "isLValue": false, "isPure": false, @@ -3852,20 +3852,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "664:15:21", + "src": "664:15:32", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6039, + "id": 8600, "nodeType": "EmitStatement", - "src": "659:20:21" + "src": "659:20:32" } ] }, "documentation": null, - "id": 6041, + "id": 8602, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -3873,16 +3873,16 @@ "name": "createToken", "nodeType": "FunctionDefinition", "parameters": { - "id": 5979, + "id": 8540, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5972, + "id": 8533, "name": "_name", "nodeType": "VariableDeclaration", - "scope": 6041, - "src": "238:12:21", + "scope": 8602, + "src": "238:12:32", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3890,10 +3890,10 @@ "typeString": "string" }, "typeName": { - "id": 5971, + "id": 8532, "name": "string", "nodeType": "ElementaryTypeName", - "src": "238:6:21", + "src": "238:6:32", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -3904,11 +3904,11 @@ }, { "constant": false, - "id": 5974, + "id": 8535, "name": "_symbol", "nodeType": "VariableDeclaration", - "scope": 6041, - "src": "252:14:21", + "scope": 8602, + "src": "252:14:32", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3916,10 +3916,10 @@ "typeString": "string" }, "typeName": { - "id": 5973, + "id": 8534, "name": "string", "nodeType": "ElementaryTypeName", - "src": "252:6:21", + "src": "252:6:32", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -3930,11 +3930,11 @@ }, { "constant": false, - "id": 5976, + "id": 8537, "name": "_decimals", "nodeType": "VariableDeclaration", - "scope": 6041, - "src": "268:15:21", + "scope": 8602, + "src": "268:15:32", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3942,10 +3942,10 @@ "typeString": "uint8" }, "typeName": { - "id": 5975, + "id": 8536, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "268:5:21", + "src": "268:5:32", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -3956,11 +3956,11 @@ }, { "constant": false, - "id": 5978, + "id": 8539, "name": "amountToIssue", "nodeType": "VariableDeclaration", - "scope": 6041, - "src": "285:18:21", + "scope": 8602, + "src": "285:18:32", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3968,10 +3968,10 @@ "typeString": "uint256" }, "typeName": { - "id": 5977, + "id": 8538, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "285:4:21", + "src": "285:4:32", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3981,35 +3981,35 @@ "visibility": "internal" } ], - "src": "237:67:21" + "src": "237:67:32" }, "payable": false, "returnParameters": { - "id": 5982, + "id": 8543, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 5981, + "id": 8542, "name": "token", "nodeType": "VariableDeclaration", - "scope": 6041, - "src": "320:12:21", + "scope": 8602, + "src": "320:12:32", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" }, "typeName": { "contractScope": null, - "id": 5980, + "id": 8541, "name": "WToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5925, - "src": "320:6:21", + "referencedDeclaration": 8486, + "src": "320:6:32", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, @@ -4017,43 +4017,43 @@ "visibility": "internal" } ], - "src": "319:14:21" + "src": "319:14:32" }, - "scope": 6156, - "src": "217:469:21", + "scope": 8717, + "src": "217:469:32", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 6049, + "id": 8610, "nodeType": "Block", - "src": "745:30:21", + "src": "745:30:32", "statements": [ { "expression": { "argumentTypes": null, - "id": 6047, + "id": 8608, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5962, - "src": "762:6:21", + "referencedDeclaration": 8523, + "src": "762:6:32", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "functionReturnParameters": 6046, - "id": 6048, + "functionReturnParameters": 8607, + "id": 8609, "nodeType": "Return", - "src": "755:13:21" + "src": "755:13:32" } ] }, "documentation": null, - "id": 6050, + "id": 8611, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -4061,23 +4061,23 @@ "name": "tokensList", "nodeType": "FunctionDefinition", "parameters": { - "id": 6042, + "id": 8603, "nodeType": "ParameterList", "parameters": [], - "src": "711:2:21" + "src": "711:2:32" }, "payable": false, "returnParameters": { - "id": 6046, + "id": 8607, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6045, + "id": 8606, "name": "", "nodeType": "VariableDeclaration", - "scope": 6050, - "src": "734:9:21", + "scope": 8611, + "src": "734:9:32", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4086,19 +4086,19 @@ }, "typeName": { "baseType": { - "id": 6043, + "id": 8604, "name": "address", "nodeType": "ElementaryTypeName", - "src": "734:7:21", + "src": "734:7:32", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 6044, + "id": 8605, "length": null, "nodeType": "ArrayTypeName", - "src": "734:9:21", + "src": "734:9:32", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -4108,19 +4108,19 @@ "visibility": "internal" } ], - "src": "733:11:21" + "src": "733:11:32" }, - "scope": 6156, - "src": "692:83:21", + "scope": 8717, + "src": "692:83:32", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 6070, + "id": 8631, "nodeType": "Block", - "src": "848:95:21", + "src": "848:95:32", "statements": [ { "expression": { @@ -4129,7 +4129,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 6068, + "id": 8629, "isConstant": false, "isLValue": false, "isPure": false, @@ -4140,7 +4140,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6060, + "id": 8621, "isConstant": false, "isLValue": false, "isPure": false, @@ -4149,18 +4149,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 6057, + "id": 8618, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5962, - "src": "865:6:21", + "referencedDeclaration": 8523, + "src": "865:6:32", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 6058, + "id": 8619, "isConstant": false, "isLValue": true, "isPure": false, @@ -4168,7 +4168,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "865:13:21", + "src": "865:13:32", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4179,14 +4179,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 6059, + "id": 8620, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "881:1:21", + "src": "881:1:32", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4194,7 +4194,7 @@ }, "value": "0" }, - "src": "865:17:21", + "src": "865:17:32", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4208,7 +4208,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 6067, + "id": 8628, "isConstant": false, "isLValue": false, "isPure": false, @@ -4217,42 +4217,42 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 6061, + "id": 8622, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5962, - "src": "886:6:21", + "referencedDeclaration": 8523, + "src": "886:6:32", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 6065, + "id": 8626, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 6062, + "id": 8623, "name": "tokenIndexes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5966, - "src": "893:12:21", + "referencedDeclaration": 8527, + "src": "893:12:32", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 6064, + "id": 8625, "indexExpression": { "argumentTypes": null, - "id": 6063, + "id": 8624, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6052, - "src": "906:12:21", + "referencedDeclaration": 8613, + "src": "906:12:32", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4263,7 +4263,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "893:26:21", + "src": "893:26:32", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4274,7 +4274,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "886:34:21", + "src": "886:34:32", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4284,38 +4284,38 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 6066, + "id": 8627, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6052, - "src": "924:12:21", + "referencedDeclaration": 8613, + "src": "924:12:32", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "886:50:21", + "src": "886:50:32", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "865:71:21", + "src": "865:71:32", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 6056, - "id": 6069, + "functionReturnParameters": 8617, + "id": 8630, "nodeType": "Return", - "src": "858:78:21" + "src": "858:78:32" } ] }, "documentation": null, - "id": 6071, + "id": 8632, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -4323,16 +4323,16 @@ "name": "hasToken", "nodeType": "FunctionDefinition", "parameters": { - "id": 6053, + "id": 8614, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6052, + "id": 8613, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 6071, - "src": "799:20:21", + "scope": 8632, + "src": "799:20:32", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4340,10 +4340,10 @@ "typeString": "address" }, "typeName": { - "id": 6051, + "id": 8612, "name": "address", "nodeType": "ElementaryTypeName", - "src": "799:7:21", + "src": "799:7:32", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4353,20 +4353,20 @@ "visibility": "internal" } ], - "src": "798:22:21" + "src": "798:22:32" }, "payable": false, "returnParameters": { - "id": 6056, + "id": 8617, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6055, + "id": 8616, "name": "", "nodeType": "VariableDeclaration", - "scope": 6071, - "src": "842:4:21", + "scope": 8632, + "src": "842:4:32", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4374,10 +4374,10 @@ "typeString": "bool" }, "typeName": { - "id": 6054, + "id": 8615, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "842:4:21", + "src": "842:4:32", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4387,19 +4387,19 @@ "visibility": "internal" } ], - "src": "841:6:21" + "src": "841:6:32" }, - "scope": 6156, - "src": "781:162:21", + "scope": 8717, + "src": "781:162:32", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 6111, + "id": 8672, "nodeType": "Block", - "src": "1052:178:21", + "src": "1052:178:32", "statements": [ { "expression": { @@ -4410,12 +4410,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6086, + "id": 8647, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6073, - "src": "1079:12:21", + "referencedDeclaration": 8634, + "src": "1079:12:32", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4429,18 +4429,18 @@ "typeString": "address" } ], - "id": 6085, + "id": 8646, "name": "hasToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6071, - "src": "1070:8:21", + "referencedDeclaration": 8632, + "src": "1070:8:32", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view returns (bool)" } }, - "id": 6087, + "id": 8648, "isConstant": false, "isLValue": false, "isPure": false, @@ -4448,7 +4448,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1070:22:21", + "src": "1070:22:32", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4462,21 +4462,21 @@ "typeString": "bool" } ], - "id": 6084, + "id": 8645, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "1062:7:21", + "referencedDeclaration": 10045, + "src": "1062:7:32", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 6088, + "id": 8649, "isConstant": false, "isLValue": false, "isPure": false, @@ -4484,43 +4484,43 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1062:31:21", + "src": "1062:31:32", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6089, + "id": 8650, "nodeType": "ExpressionStatement", - "src": "1062:31:21" + "src": "1062:31:32" }, { "assignments": [ - 6091 + 8652 ], "declarations": [ { "constant": false, - "id": 6091, + "id": 8652, "name": "token", "nodeType": "VariableDeclaration", - "scope": 6112, - "src": "1104:12:21", + "scope": 8673, + "src": "1104:12:32", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" }, "typeName": { "contractScope": null, - "id": 6090, + "id": 8651, "name": "WToken", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5925, - "src": "1104:6:21", + "referencedDeclaration": 8486, + "src": "1104:6:32", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, @@ -4528,18 +4528,18 @@ "visibility": "internal" } ], - "id": 6095, + "id": 8656, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 6093, + "id": 8654, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6073, - "src": "1126:12:21", + "referencedDeclaration": 8634, + "src": "1126:12:32", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4553,18 +4553,18 @@ "typeString": "address" } ], - "id": 6092, + "id": 8653, "name": "WToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5925, - "src": "1119:6:21", + "referencedDeclaration": 8486, + "src": "1119:6:32", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_WToken_$5925_$", + "typeIdentifier": "t_type$_t_contract$_WToken_$8486_$", "typeString": "type(contract WToken)" } }, - "id": 6094, + "id": 8655, "isConstant": false, "isLValue": false, "isPure": false, @@ -4572,14 +4572,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1119:20:21", + "src": "1119:20:32", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, "nodeType": "VariableDeclarationStatement", - "src": "1104:35:21" + "src": "1104:35:32" }, { "expression": { @@ -4587,12 +4587,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6098, + "id": 8659, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6075, - "src": "1168:2:21", + "referencedDeclaration": 8636, + "src": "1168:2:32", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4604,19 +4604,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6107, + "id": 8668, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 6099, + "id": 8660, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6077, - "src": "1172:6:21", + "referencedDeclaration": 8638, + "src": "1172:6:32", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4630,7 +4630,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 6106, + "id": 8667, "isConstant": false, "isLValue": false, "isPure": false, @@ -4638,14 +4638,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3130", - "id": 6100, + "id": 8661, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1181:2:21", + "src": "1181:2:32", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", @@ -4665,32 +4665,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 6102, + "id": 8663, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6091, - "src": "1192:5:21", + "referencedDeclaration": 8652, + "src": "1192:5:32", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, - "id": 6103, + "id": 8664, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "decimals", "nodeType": "MemberAccess", - "referencedDeclaration": 6951, - "src": "1192:14:21", + "referencedDeclaration": 9699, + "src": "1192:14:32", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", "typeString": "function () view external returns (uint8)" } }, - "id": 6104, + "id": 8665, "isConstant": false, "isLValue": false, "isPure": false, @@ -4698,7 +4698,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1192:16:21", + "src": "1192:16:32", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -4712,20 +4712,20 @@ "typeString": "uint8" } ], - "id": 6101, + "id": 8662, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1187:4:21", + "src": "1187:4:32", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, - "id": 6105, + "id": 8666, "isConstant": false, "isLValue": false, "isPure": false, @@ -4733,19 +4733,19 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1187:22:21", + "src": "1187:22:32", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1181:28:21", + "src": "1181:28:32", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1172:37:21", + "src": "1172:37:32", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4753,12 +4753,12 @@ }, { "argumentTypes": null, - "id": 6108, + "id": 8669, "name": "vestingTime", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6079, - "src": "1211:11:21", + "referencedDeclaration": 8640, + "src": "1211:11:32", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -4782,32 +4782,32 @@ ], "expression": { "argumentTypes": null, - "id": 6096, + "id": 8657, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6091, - "src": "1157:5:21", + "referencedDeclaration": 8652, + "src": "1157:5:32", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, - "id": 6097, + "id": 8658, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mint", "nodeType": "MemberAccess", - "referencedDeclaration": 5587, - "src": "1157:10:21", + "referencedDeclaration": 8148, + "src": "1157:10:32", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint32_$returns$_t_bool_$", "typeString": "function (address,uint256,uint32) external returns (bool)" } }, - "id": 6109, + "id": 8670, "isConstant": false, "isLValue": false, "isPure": false, @@ -4815,21 +4815,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1157:66:21", + "src": "1157:66:32", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 6083, - "id": 6110, + "functionReturnParameters": 8644, + "id": 8671, "nodeType": "Return", - "src": "1150:73:21" + "src": "1150:73:32" } ] }, "documentation": null, - "id": 6112, + "id": 8673, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -4837,16 +4837,16 @@ "name": "mint", "nodeType": "FunctionDefinition", "parameters": { - "id": 6080, + "id": 8641, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6073, + "id": 8634, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 6112, - "src": "963:20:21", + "scope": 8673, + "src": "963:20:32", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4854,10 +4854,10 @@ "typeString": "address" }, "typeName": { - "id": 6072, + "id": 8633, "name": "address", "nodeType": "ElementaryTypeName", - "src": "963:7:21", + "src": "963:7:32", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4868,11 +4868,11 @@ }, { "constant": false, - "id": 6075, + "id": 8636, "name": "to", "nodeType": "VariableDeclaration", - "scope": 6112, - "src": "985:10:21", + "scope": 8673, + "src": "985:10:32", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4880,10 +4880,10 @@ "typeString": "address" }, "typeName": { - "id": 6074, + "id": 8635, "name": "address", "nodeType": "ElementaryTypeName", - "src": "985:7:21", + "src": "985:7:32", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4894,11 +4894,11 @@ }, { "constant": false, - "id": 6077, + "id": 8638, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 6112, - "src": "997:11:21", + "scope": 8673, + "src": "997:11:32", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4906,10 +4906,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6076, + "id": 8637, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "997:4:21", + "src": "997:4:32", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4920,11 +4920,11 @@ }, { "constant": false, - "id": 6079, + "id": 8640, "name": "vestingTime", "nodeType": "VariableDeclaration", - "scope": 6112, - "src": "1010:18:21", + "scope": 8673, + "src": "1010:18:32", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4932,10 +4932,10 @@ "typeString": "uint32" }, "typeName": { - "id": 6078, + "id": 8639, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "1010:6:21", + "src": "1010:6:32", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -4945,20 +4945,20 @@ "visibility": "internal" } ], - "src": "962:67:21" + "src": "962:67:32" }, "payable": false, "returnParameters": { - "id": 6083, + "id": 8644, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6082, + "id": 8643, "name": "", "nodeType": "VariableDeclaration", - "scope": 6112, - "src": "1046:4:21", + "scope": 8673, + "src": "1046:4:32", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4966,10 +4966,10 @@ "typeString": "bool" }, "typeName": { - "id": 6081, + "id": 8642, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1046:4:21", + "src": "1046:4:32", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4979,19 +4979,19 @@ "visibility": "internal" } ], - "src": "1045:6:21" + "src": "1045:6:32" }, - "scope": 6156, - "src": "949:281:21", + "scope": 8717, + "src": "949:281:32", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 6134, + "id": 8695, "nodeType": "Block", - "src": "1320:104:21", + "src": "1320:104:32", "statements": [ { "expression": { @@ -5002,12 +5002,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6123, + "id": 8684, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6114, - "src": "1347:12:21", + "referencedDeclaration": 8675, + "src": "1347:12:32", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5021,18 +5021,18 @@ "typeString": "address" } ], - "id": 6122, + "id": 8683, "name": "hasToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6071, - "src": "1338:8:21", + "referencedDeclaration": 8632, + "src": "1338:8:32", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view returns (bool)" } }, - "id": 6124, + "id": 8685, "isConstant": false, "isLValue": false, "isPure": false, @@ -5040,7 +5040,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1338:22:21", + "src": "1338:22:32", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5054,21 +5054,21 @@ "typeString": "bool" } ], - "id": 6121, + "id": 8682, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "1330:7:21", + "referencedDeclaration": 10045, + "src": "1330:7:32", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 6125, + "id": 8686, "isConstant": false, "isLValue": false, "isPure": false, @@ -5076,15 +5076,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1330:31:21", + "src": "1330:31:32", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6126, + "id": 8687, "nodeType": "ExpressionStatement", - "src": "1330:31:21" + "src": "1330:31:32" }, { "expression": { @@ -5092,12 +5092,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6131, + "id": 8692, "name": "wallet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6116, - "src": "1410:6:21", + "referencedDeclaration": 8677, + "src": "1410:6:32", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5116,12 +5116,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6128, + "id": 8689, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6114, - "src": "1386:12:21", + "referencedDeclaration": 8675, + "src": "1386:12:32", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5135,18 +5135,18 @@ "typeString": "address" } ], - "id": 6127, + "id": 8688, "name": "WToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5925, - "src": "1379:6:21", + "referencedDeclaration": 8486, + "src": "1379:6:32", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_WToken_$5925_$", + "typeIdentifier": "t_type$_t_contract$_WToken_$8486_$", "typeString": "type(contract WToken)" } }, - "id": 6129, + "id": 8690, "isConstant": false, "isLValue": false, "isPure": false, @@ -5154,27 +5154,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1379:20:21", + "src": "1379:20:32", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, - "id": 6130, + "id": 8691, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 5276, - "src": "1379:30:21", + "referencedDeclaration": 7837, + "src": "1379:30:32", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 6132, + "id": 8693, "isConstant": false, "isLValue": false, "isPure": false, @@ -5182,21 +5182,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1379:38:21", + "src": "1379:38:32", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 6120, - "id": 6133, + "functionReturnParameters": 8681, + "id": 8694, "nodeType": "Return", - "src": "1372:45:21" + "src": "1372:45:32" } ] }, "documentation": null, - "id": 6135, + "id": 8696, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -5204,16 +5204,16 @@ "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 6117, + "id": 8678, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6114, + "id": 8675, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 6135, - "src": "1255:20:21", + "scope": 8696, + "src": "1255:20:32", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5221,10 +5221,10 @@ "typeString": "address" }, "typeName": { - "id": 6113, + "id": 8674, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1255:7:21", + "src": "1255:7:32", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5235,11 +5235,11 @@ }, { "constant": false, - "id": 6116, + "id": 8677, "name": "wallet", "nodeType": "VariableDeclaration", - "scope": 6135, - "src": "1277:14:21", + "scope": 8696, + "src": "1277:14:32", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5247,10 +5247,10 @@ "typeString": "address" }, "typeName": { - "id": 6115, + "id": 8676, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1277:7:21", + "src": "1277:7:32", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5260,20 +5260,20 @@ "visibility": "internal" } ], - "src": "1254:38:21" + "src": "1254:38:32" }, "payable": false, "returnParameters": { - "id": 6120, + "id": 8681, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6119, + "id": 8680, "name": "", "nodeType": "VariableDeclaration", - "scope": 6135, - "src": "1314:4:21", + "scope": 8696, + "src": "1314:4:32", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5281,10 +5281,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6118, + "id": 8679, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1314:4:21", + "src": "1314:4:32", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5294,19 +5294,19 @@ "visibility": "internal" } ], - "src": "1313:6:21" + "src": "1313:6:32" }, - "scope": 6156, - "src": "1236:188:21", + "scope": 8717, + "src": "1236:188:32", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 6154, + "id": 8715, "nodeType": "Block", - "src": "1500:100:21", + "src": "1500:100:32", "statements": [ { "expression": { @@ -5317,12 +5317,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6144, + "id": 8705, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6137, - "src": "1527:12:21", + "referencedDeclaration": 8698, + "src": "1527:12:32", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5336,18 +5336,18 @@ "typeString": "address" } ], - "id": 6143, + "id": 8704, "name": "hasToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6071, - "src": "1518:8:21", + "referencedDeclaration": 8632, + "src": "1518:8:32", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view returns (bool)" } }, - "id": 6145, + "id": 8706, "isConstant": false, "isLValue": false, "isPure": false, @@ -5355,7 +5355,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1518:22:21", + "src": "1518:22:32", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5369,21 +5369,21 @@ "typeString": "bool" } ], - "id": 6142, + "id": 8703, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 7297, - 7298 + 10045, + 10046 ], - "referencedDeclaration": 7297, - "src": "1510:7:21", + "referencedDeclaration": 10045, + "src": "1510:7:32", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 6146, + "id": 8707, "isConstant": false, "isLValue": false, "isPure": false, @@ -5391,15 +5391,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1510:31:21", + "src": "1510:31:32", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 6147, + "id": 8708, "nodeType": "ExpressionStatement", - "src": "1510:31:21" + "src": "1510:31:32" }, { "expression": { @@ -5412,12 +5412,12 @@ "arguments": [ { "argumentTypes": null, - "id": 6149, + "id": 8710, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6137, - "src": "1566:12:21", + "referencedDeclaration": 8698, + "src": "1566:12:32", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5431,18 +5431,18 @@ "typeString": "address" } ], - "id": 6148, + "id": 8709, "name": "WToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 5925, - "src": "1559:6:21", + "referencedDeclaration": 8486, + "src": "1559:6:32", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_WToken_$5925_$", + "typeIdentifier": "t_type$_t_contract$_WToken_$8486_$", "typeString": "type(contract WToken)" } }, - "id": 6150, + "id": 8711, "isConstant": false, "isLValue": false, "isPure": false, @@ -5450,27 +5450,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1559:20:21", + "src": "1559:20:32", "typeDescriptions": { - "typeIdentifier": "t_contract$_WToken_$5925", + "typeIdentifier": "t_contract$_WToken_$8486", "typeString": "contract WToken" } }, - "id": 6151, + "id": 8712, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "totalSupply", "nodeType": "MemberAccess", - "referencedDeclaration": 5132, - "src": "1559:32:21", + "referencedDeclaration": 7693, + "src": "1559:32:32", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, - "id": 6152, + "id": 8713, "isConstant": false, "isLValue": false, "isPure": false, @@ -5478,21 +5478,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1559:34:21", + "src": "1559:34:32", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 6141, - "id": 6153, + "functionReturnParameters": 8702, + "id": 8714, "nodeType": "Return", - "src": "1552:41:21" + "src": "1552:41:32" } ] }, "documentation": null, - "id": 6155, + "id": 8716, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -5500,16 +5500,16 @@ "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { - "id": 6138, + "id": 8699, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6137, + "id": 8698, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 6155, - "src": "1451:20:21", + "scope": 8716, + "src": "1451:20:32", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5517,10 +5517,10 @@ "typeString": "address" }, "typeName": { - "id": 6136, + "id": 8697, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1451:7:21", + "src": "1451:7:32", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5530,20 +5530,20 @@ "visibility": "internal" } ], - "src": "1450:22:21" + "src": "1450:22:32" }, "payable": false, "returnParameters": { - "id": 6141, + "id": 8702, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 6140, + "id": 8701, "name": "", "nodeType": "VariableDeclaration", - "scope": 6155, - "src": "1494:4:21", + "scope": 8716, + "src": "1494:4:32", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5551,10 +5551,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6139, + "id": 8700, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1494:4:21", + "src": "1494:4:32", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5564,20 +5564,20 @@ "visibility": "internal" } ], - "src": "1493:6:21" + "src": "1493:6:32" }, - "scope": 6156, - "src": "1430:170:21", + "scope": 8717, + "src": "1430:170:32", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 6157, - "src": "51:1551:21" + "scope": 8718, + "src": "51:1551:32" } ], - "src": "0:1603:21" + "src": "0:1603:32" }, "compiler": { "name": "solc", @@ -5592,5 +5592,5 @@ } }, "schemaVersion": "2.0.1", - "updatedAt": "2018-10-02T11:57:51.345Z" + "updatedAt": "2018-10-22T07:57:37.187Z" } \ No newline at end of file diff --git a/build/contracts/Wallets.json b/build/contracts/Wallets.json new file mode 100644 index 00000000..088abf6e --- /dev/null +++ b/build/contracts/Wallets.json @@ -0,0 +1,1645 @@ +{ + "contractName": "Wallets", + "abi": [ + { + "constant": false, + "inputs": [], + "name": "renounceOwnership", + "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": "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": [], + "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": 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": "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" + } + ], + "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", + "sourcePath": "/home/circleci/code/contracts/wallets/Wallets.sol", + "ast": { + "absolutePath": "/home/circleci/code/contracts/wallets/Wallets.sol", + "exportedSymbols": { + "Wallets": [ + 9301 + ] + }, + "id": 9302, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 9241, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:40" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", + "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", + "id": 9242, + "nodeType": "ImportDirective", + "scope": 9302, + "sourceUnit": 9689, + "src": "26:63:40", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 9243, + "name": "Ownable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9688, + "src": "111:7:40", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Ownable_$9688", + "typeString": "contract Ownable" + } + }, + "id": 9244, + "nodeType": "InheritanceSpecifier", + "src": "111:7:40" + } + ], + "contractDependencies": [ + 9688 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 9301, + "linearizedBaseContracts": [ + 9301, + 9688 + ], + "name": "Wallets", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 9247, + "name": "SERVICE_WALLET_ID", + "nodeType": "VariableDeclaration", + "scope": 9301, + "src": "125:43:40", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 9245, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "125:5:40", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "31", + "id": 9246, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "167:1:40", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 9251, + "name": "_wallets", + "nodeType": "VariableDeclaration", + "scope": 9301, + "src": "175:35:40", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint8_$_t_address_$", + "typeString": "mapping(uint8 => address)" + }, + "typeName": { + "id": 9250, + "keyType": { + "id": 9248, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "184:5:40", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Mapping", + "src": "175:26:40", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint8_$_t_address_$", + "typeString": "mapping(uint8 => address)" + }, + "valueType": { + "id": 9249, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "193:7:40", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "anonymous": false, + "documentation": null, + "id": 9257, + "name": "NewWallet", + "nodeType": "EventDefinition", + "parameters": { + "id": 9256, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9253, + "indexed": true, + "name": "ID", + "nodeType": "VariableDeclaration", + "scope": 9257, + "src": "233:16:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 9252, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "233:5:40", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9255, + "indexed": false, + "name": "wallet", + "nodeType": "VariableDeclaration", + "scope": 9257, + "src": "251:14:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9254, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "251:7:40", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "232:34:40" + }, + "src": "217:50:40" + }, + { + "body": { + "id": 9266, + "nodeType": "Block", + "src": "294:57:40", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9261, + "name": "SERVICE_WALLET_ID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9247, + "src": "314:17:40", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9262, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10042, + "src": "333:3:40", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "333:10:40", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 9260, + "name": "setWallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9288, + "src": "304:9:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint8_$_t_address_$returns$__$", + "typeString": "function (uint8,address)" + } + }, + "id": 9264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "304:40:40", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9265, + "nodeType": "ExpressionStatement", + "src": "304:40:40" + } + ] + }, + "documentation": null, + "id": 9267, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9258, + "nodeType": "ParameterList", + "parameters": [], + "src": "284:2:40" + }, + "payable": false, + "returnParameters": { + "id": 9259, + "nodeType": "ParameterList", + "parameters": [], + "src": "294:0:40" + }, + "scope": 9301, + "src": "273:78:40", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 9287, + "nodeType": "Block", + "src": "412:75:40", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 9276, + "name": "_wallets", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9251, + "src": "422:8:40", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint8_$_t_address_$", + "typeString": "mapping(uint8 => address)" + } + }, + "id": 9278, + "indexExpression": { + "argumentTypes": null, + "id": 9277, + "name": "ID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9269, + "src": "431:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "422:12:40", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9279, + "name": "wallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9271, + "src": "437:6:40", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "422:21:40", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 9281, + "nodeType": "ExpressionStatement", + "src": "422:21:40" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9283, + "name": "ID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9269, + "src": "469:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 9284, + "name": "wallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9271, + "src": "473:6:40", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 9282, + "name": "NewWallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9257, + "src": "459:9:40", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint8_$_t_address_$returns$__$", + "typeString": "function (uint8,address)" + } + }, + "id": 9285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "459:21:40", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9286, + "nodeType": "EmitStatement", + "src": "454:26:40" + } + ] + }, + "documentation": null, + "id": 9288, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 9274, + "modifierName": { + "argumentTypes": null, + "id": 9273, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9636, + "src": "402:9:40", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "402:9:40" + } + ], + "name": "setWallet", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9272, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9269, + "name": "ID", + "nodeType": "VariableDeclaration", + "scope": 9288, + "src": "376:8:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 9268, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "376:5:40", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9271, + "name": "wallet", + "nodeType": "VariableDeclaration", + "scope": 9288, + "src": "386:14:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9270, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "386:7:40", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "375:26:40" + }, + "payable": false, + "returnParameters": { + "id": 9275, + "nodeType": "ParameterList", + "parameters": [], + "src": "412:0:40" + }, + "scope": 9301, + "src": "357:130:40", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 9299, + "nodeType": "Block", + "src": "551:36:40", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 9295, + "name": "_wallets", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9251, + "src": "568:8:40", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint8_$_t_address_$", + "typeString": "mapping(uint8 => address)" + } + }, + "id": 9297, + "indexExpression": { + "argumentTypes": null, + "id": 9296, + "name": "ID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9290, + "src": "577:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "568:12:40", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 9294, + "id": 9298, + "nodeType": "Return", + "src": "561:19:40" + } + ] + }, + "documentation": null, + "id": 9300, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getWallet", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9291, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9290, + "name": "ID", + "nodeType": "VariableDeclaration", + "scope": 9300, + "src": "512:8:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 9289, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "512:5:40", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "511:10:40" + }, + "payable": false, + "returnParameters": { + "id": 9294, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9293, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9300, + "src": "542:7:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9292, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "542:7:40", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "541:9:40" + }, + "scope": 9301, + "src": "493:94:40", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 9302, + "src": "91:498:40" + } + ], + "src": "0:590:40" + }, + "legacyAST": { + "absolutePath": "/home/circleci/code/contracts/wallets/Wallets.sol", + "exportedSymbols": { + "Wallets": [ + 9301 + ] + }, + "id": 9302, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 9241, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:40" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", + "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", + "id": 9242, + "nodeType": "ImportDirective", + "scope": 9302, + "sourceUnit": 9689, + "src": "26:63:40", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 9243, + "name": "Ownable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9688, + "src": "111:7:40", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Ownable_$9688", + "typeString": "contract Ownable" + } + }, + "id": 9244, + "nodeType": "InheritanceSpecifier", + "src": "111:7:40" + } + ], + "contractDependencies": [ + 9688 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 9301, + "linearizedBaseContracts": [ + 9301, + 9688 + ], + "name": "Wallets", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 9247, + "name": "SERVICE_WALLET_ID", + "nodeType": "VariableDeclaration", + "scope": 9301, + "src": "125:43:40", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 9245, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "125:5:40", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "31", + "id": 9246, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "167:1:40", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 9251, + "name": "_wallets", + "nodeType": "VariableDeclaration", + "scope": 9301, + "src": "175:35:40", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint8_$_t_address_$", + "typeString": "mapping(uint8 => address)" + }, + "typeName": { + "id": 9250, + "keyType": { + "id": 9248, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "184:5:40", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Mapping", + "src": "175:26:40", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint8_$_t_address_$", + "typeString": "mapping(uint8 => address)" + }, + "valueType": { + "id": 9249, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "193:7:40", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "anonymous": false, + "documentation": null, + "id": 9257, + "name": "NewWallet", + "nodeType": "EventDefinition", + "parameters": { + "id": 9256, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9253, + "indexed": true, + "name": "ID", + "nodeType": "VariableDeclaration", + "scope": 9257, + "src": "233:16:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 9252, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "233:5:40", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9255, + "indexed": false, + "name": "wallet", + "nodeType": "VariableDeclaration", + "scope": 9257, + "src": "251:14:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9254, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "251:7:40", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "232:34:40" + }, + "src": "217:50:40" + }, + { + "body": { + "id": 9266, + "nodeType": "Block", + "src": "294:57:40", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9261, + "name": "SERVICE_WALLET_ID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9247, + "src": "314:17:40", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9262, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10042, + "src": "333:3:40", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "333:10:40", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 9260, + "name": "setWallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9288, + "src": "304:9:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint8_$_t_address_$returns$__$", + "typeString": "function (uint8,address)" + } + }, + "id": 9264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "304:40:40", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9265, + "nodeType": "ExpressionStatement", + "src": "304:40:40" + } + ] + }, + "documentation": null, + "id": 9267, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9258, + "nodeType": "ParameterList", + "parameters": [], + "src": "284:2:40" + }, + "payable": false, + "returnParameters": { + "id": 9259, + "nodeType": "ParameterList", + "parameters": [], + "src": "294:0:40" + }, + "scope": 9301, + "src": "273:78:40", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 9287, + "nodeType": "Block", + "src": "412:75:40", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 9276, + "name": "_wallets", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9251, + "src": "422:8:40", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint8_$_t_address_$", + "typeString": "mapping(uint8 => address)" + } + }, + "id": 9278, + "indexExpression": { + "argumentTypes": null, + "id": 9277, + "name": "ID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9269, + "src": "431:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "422:12:40", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9279, + "name": "wallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9271, + "src": "437:6:40", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "422:21:40", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 9281, + "nodeType": "ExpressionStatement", + "src": "422:21:40" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9283, + "name": "ID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9269, + "src": "469:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 9284, + "name": "wallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9271, + "src": "473:6:40", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 9282, + "name": "NewWallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9257, + "src": "459:9:40", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint8_$_t_address_$returns$__$", + "typeString": "function (uint8,address)" + } + }, + "id": 9285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "459:21:40", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9286, + "nodeType": "EmitStatement", + "src": "454:26:40" + } + ] + }, + "documentation": null, + "id": 9288, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 9274, + "modifierName": { + "argumentTypes": null, + "id": 9273, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9636, + "src": "402:9:40", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "402:9:40" + } + ], + "name": "setWallet", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9272, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9269, + "name": "ID", + "nodeType": "VariableDeclaration", + "scope": 9288, + "src": "376:8:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 9268, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "376:5:40", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9271, + "name": "wallet", + "nodeType": "VariableDeclaration", + "scope": 9288, + "src": "386:14:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9270, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "386:7:40", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "375:26:40" + }, + "payable": false, + "returnParameters": { + "id": 9275, + "nodeType": "ParameterList", + "parameters": [], + "src": "412:0:40" + }, + "scope": 9301, + "src": "357:130:40", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 9299, + "nodeType": "Block", + "src": "551:36:40", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 9295, + "name": "_wallets", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9251, + "src": "568:8:40", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint8_$_t_address_$", + "typeString": "mapping(uint8 => address)" + } + }, + "id": 9297, + "indexExpression": { + "argumentTypes": null, + "id": 9296, + "name": "ID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9290, + "src": "577:2:40", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "568:12:40", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 9294, + "id": 9298, + "nodeType": "Return", + "src": "561:19:40" + } + ] + }, + "documentation": null, + "id": 9300, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getWallet", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9291, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9290, + "name": "ID", + "nodeType": "VariableDeclaration", + "scope": 9300, + "src": "512:8:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 9289, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "512:5:40", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "511:10:40" + }, + "payable": false, + "returnParameters": { + "id": 9294, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9293, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9300, + "src": "542:7:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9292, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "542:7:40", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "541:9:40" + }, + "scope": 9301, + "src": "493:94:40", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 9302, + "src": "91:498:40" + } + ], + "src": "0:590:40" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": { + "4": { + "events": {}, + "links": {}, + "address": "0x9fa6140daae59eb93e02ca0972ebb375efe803fb", + "transactionHash": "0x9186c3e4f138bc2fc619fdc42381275172b77b72856809fc516974bd66ea8cb6" + } + }, + "schemaVersion": "2.0.1", + "updatedAt": "2018-10-22T08:01:07.091Z" +} \ No newline at end of file